我在Flask上使用Gunicorn(在Nginx上)。假设我有两个与Flask Blueprint链接的Python文件:app.py,api.py其中api.pyurl前缀为/api。为什么app.py所有蓝图(即/api)路线都返回404,但仍在工作的路线为何?
app.py 看起来像这样:
from flask import Flask, Blueprint
app = Flask(__name__)
@app.route('/')
def index():
return '''cheese-bread'''
if __name__ == '__main__':
app.register_blueprint(api, url_prefix='/api')
app.run(host='0.0.0.0')
Run Code Online (Sandbox Code Playgroud)
和 api.py
from flask import Blueprint, jsonify
api = Blueprint('/api', __name__)
@api.route('/')
def index():
return jsonify({'bread' : 'cheese, please'})
Run Code Online (Sandbox Code Playgroud)
wsgi.py 尽可能简单
from app import app
if __name__ == "__main__":
app.run()
Run Code Online (Sandbox Code Playgroud)
启动脚本与之无关,因为在使用以下命令进行开发时会显示404。 gunicorn -b 0.0.0.0:8000 wsgi:app
任何帮助将不胜感激。
您需要在之外注册该蓝图if __name__ == "__main__",因为当您说它from app import app不会在保护块中运行任何代码时
from flask import Flask, Blueprint
app = Flask(__name__)
@app.route('/')
def index():
return '''cheese-bread'''
app.register_blueprint(api, url_prefix='/api')
if __name__ == '__main__':
app.run(host='0.0.0.0')
Run Code Online (Sandbox Code Playgroud)
这样,当您将其导入到wsgi中时,它也已注册了蓝图...
或者,您可以在wsgi.py中注册蓝图
| 归档时间: |
|
| 查看次数: |
1552 次 |
| 最近记录: |