2017-08-01 66 views
0

嗨,我有一個燒瓶應用程序結構以下面的方式,我有藍圖設置的問題。無論我做什麼,他們只能使用url_prefix設置。它目前的作品爲/main/verify,但因爲它是一個小應用程序,我很想擁有像/verify這樣的端點。有趣的是,我設法使其與/路線一起工作,但對於相同的配置,它不適用於/verify。我現在很無能,我可以像現在一樣生活,但我真的很想知道我做錯了什麼。燒瓶藍圖無法使用前綴

下面是代碼:

__init__.py

from flask import Flask 
from flask_sqlalchemy import SQLAlchemy 
from config import config 


db = SQLAlchemy() 


def create_app(config_name): 
    app = Flask(__name__) 
    app.config.from_object(config[config_name]) 
    config[config_name].init_app(app) 

    db.init_app(app) 

    from main import main 
    app.register_blueprint(main) 

    return app 

main/__init__.py

from flask import Blueprint 
main = Blueprint('main', __name__, url_prefix='/main') 
from . import views 

main/views.py

from flask import request, jsonify 
from . import main 


@main.route('/') 
def index(): 
    return "Hello world" 


@main.route('/verify') 
def verify(): 
    url = request.args['url'] 
    query = request.args['query'] 

    return jsonify({ ... }) 

回答

1

正如我看到你沒有註冊blueprint沒有前綴。如果您需要註冊沒有前綴的端點必須創建Blueprint

main = Blueprint('main', __name__, url_prefix='/main') 
# main endpoints(with prefix /main)... 
@main.route('/') 
def index_main(): 
    return "Hello world from /main/" 
# routes without any prefix 
default = Blueprint('default', __name__) 

@default.route('/') 
def index(): 
    return "Hello world from /" 

app = Flask(__name__) 
app.register_blueprint(main) 
app.register_blueprint(default) 

希望這有助於一個新的實例。