2017-08-01 8 views
0

Hallo Ich habe eine Flask App in folgender Weise strukturiert und ich habe Probleme mit Blueprints Setup. Was auch immer ich mache, sie arbeiten nur mit url_prefix eingerichtet. Es funktioniert derzeit als /main/verify aber da es eine kleine App ist würde ich gerne einen Endpunkt wie /verify haben. Was interessant ist, habe ich geschafft, es mit / Route zu arbeiten, aber für die gleiche Konfiguration hat es nicht für die /verify funktioniert. Ich bin gerade ziemlich ahnungslos, ich kann damit leben wie es ist, aber ich frage mich wirklich, was mache ich falsch. HierFlask Blueprint funktioniert nicht ohne Präfix

ist der Code:

__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({ ... }) 

Antwort

1

Wie ich sehen Sie nicht blueprint ohne Präfix registriert. Wenn Sie Endpunkte ohne Präfix registrieren müssen, müssen Sie eine neue Instanz von 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) 

Hoffnung schaffen, das hilft.

Verwandte Themen