2015-06-03 110 views
2

我在燒瓶上使用Gunicorn(on nginx)。假設我有兩個Python文件,與Flask藍圖鏈接:app.pyapi.py,其中api.py的網址前綴爲/api爲什麼app.py中的任何路由都能正常工作,儘管所有Blueprinted(即/api)路由都返回404s?Gunicorn和燒瓶藍圖

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() 

啓動腳本是不相關的404顯示貴ñ與gunicorn -b 0.0.0.0:8000 wsgi:app

跑開發任何幫助將不勝感激。

回答

4

您需要註冊的if __name__ == "__main__",外面的藍圖,因爲當你說from app import app當你將其導入WSGI它也有註冊的藍圖,它不會在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.py

+0

優秀。對不起,錯過了。 – SXibolet