Tat*_*nho 5 python rest routes flask
我开始构建一个基于 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)
Run Code Online (Sandbox Code Playgroud)
当我运行我的烧瓶应用程序时,这非常有效。当我想将其移动到其他文件时,问题就开始了。我刚刚将get_tasks方法移至 /my_app/views.py 并将声明app = Flask( name )移至 my_app/ init .py 中。当然,我在主 app.py 文件中添加了导入。服务器正常启动,但我无法得到结果。当我将方法移回 app.py 时,它就起作用了。我在这里缺少什么?
编辑
应用程序.py
from my_app import app
if __name__ == '__main__':
app.run(debug=True, host='0.0.0.0')
Run Code Online (Sandbox Code Playgroud)
视图.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})
Run Code Online (Sandbox Code Playgroud)
目录结构:
project_name/
--- my_app/
----- __init__.py
----- views.py
--- app.py
Run Code Online (Sandbox Code Playgroud)
编辑2 正如我在评论中提到的,我将所有内容从init .py 移至 app.py 文件中,但它仍然不起作用,但是当我在 app.py 中添加一个额外的导入时,在 app = Flask( name )之后, 有用。导入是
from my_app import views
Run Code Online (Sandbox Code Playgroud)
当我之前尝试添加此导入时,我有循环导入