Я начал создавать приложение на основе Flask. Идея в том, чтобы немного поиграть с REST API, без HTML и т. Д., Просто с помощью простых ответов JSON.
Кажется, все работает, если у меня все в одном файле.
tasks = [ # pylint: disable=C0103
{
'id': 1,
'title': 'First',
'content': u'First task'
},
{
'id': 2,
'title': 'Second',
'content': u'Second task'
}
]
app = Flask(__name__)
@app.route('/api/v1.0/tasks/', methods=['GET'])
def get_tasks():
"""
[GET] Retrieves all tasks
"""
return jsonify({'tasks': tasks})
if __name__ == '__main__':
app.run(debug=True)
Это прекрасно работает, когда я запускаю свое приложение фляги. Проблема начинается, когда я хочу переместить его в другой файл. Я только что переместил get_tasks метод в /my_app/views.py и объявил app = Flask ( name ) в my_app / init .py , Конечно, я добавил импорт в свой основной файл app.py. Сервер запускается нормально, но я не могу получить результат. Когда я возвращаюсь к методу app.py, он работает. Что мне здесь не хватает?
EDIT
app.py
from my_app import app
if __name__ == '__main__':
app.run(debug=True, host='0.0.0.0')
views.py
from flask import jsonify
from my_app import app
@app.route('/api/v1.0/tasks/', methods=['GET'])
def get_tasks():
"""
[GET] Retrieves all tasks
"""
tasks = [ # pylint: disable=C0103
{
'id': 1,
'title': 'First',
'content': u'First task'
},
{
'id': 2,
'title': 'Second',
'content': u'Second task'
}
]
return jsonify({'tasks': tasks})
структура dir:
project_name/
--- my_app/
----- __init__.py
----- views.py
--- app.py
РЕДАКТИРОВАТЬ 2
Как я упоминал в комментарии, я переместил все из init .py в файл app.py, и он все еще не работает, но когда я добавил в app.py один дополнительный импорт, после app = Колба ( имя ), все работает. Импорт
from my_app import views
Когда я пытаюсь добавить этот импорт раньше, у меня есть круговой импорт