Gunicorn 和 Flask 蓝图
Gunicorn and Flask blueprints
我将 Gunicorn(在 nginx 上)与 Flask 一起使用。假设我有两个 Python 文件,与 Flask 蓝图链接:app.py
和 api.py
,其中 api.py
具有 url 前缀 /api
。 尽管所有蓝图(即 /api
)路由 return 404s,为什么 app.py
中的任何路由都有效?
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')
和api.py
from flask import Blueprint, jsonify
api = Blueprint('/api', __name__)
@api.route('/')
def index():
return jsonify({'bread' : 'cheese, please'})
wsgi.py
越简单越好
from app import app
if __name__ == "__main__":
app.run()
启动脚本不相关,因为在 运行 使用 gunicorn -b 0.0.0.0:8000 wsgi:app
进行开发时会出现 404
如有任何帮助,我们将不胜感激。
您需要在 if __name__ == "__main__"
之外注册蓝图,因为当您说 from app import app
它不会 运行 guardblock
中的任何代码
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')
这样当你在 wsgi 中导入它时它也注册了蓝图...
或者您可以在 wsgi.py
中注册蓝图
我将 Gunicorn(在 nginx 上)与 Flask 一起使用。假设我有两个 Python 文件,与 Flask 蓝图链接:app.py
和 api.py
,其中 api.py
具有 url 前缀 /api
。 尽管所有蓝图(即 /api
)路由 return 404s,为什么 app.py
中的任何路由都有效?
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')
和api.py
from flask import Blueprint, jsonify
api = Blueprint('/api', __name__)
@api.route('/')
def index():
return jsonify({'bread' : 'cheese, please'})
wsgi.py
越简单越好
from app import app
if __name__ == "__main__":
app.run()
启动脚本不相关,因为在 运行 使用 gunicorn -b 0.0.0.0:8000 wsgi:app
如有任何帮助,我们将不胜感激。
您需要在 if __name__ == "__main__"
之外注册蓝图,因为当您说 from app import app
它不会 运行 guardblock
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')
这样当你在 wsgi 中导入它时它也注册了蓝图...
或者您可以在 wsgi.py
中注册蓝图