gpt4 book ai didi

python - Flask 蓝图没有前缀就无法工作

转载 作者:行者123 更新时间:2023-11-28 22:25:36 24 4
gpt4 key购买 nike

您好,我有一个按以下方式构建的 Flask 应用程序,但我在蓝图设置方面遇到了问题。无论我做什么,它们都只适用于 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({ ... })

最佳答案

据我所知,您没有注册没有前缀的 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)

希望这对您有所帮助。

关于python - Flask 蓝图没有前缀就无法工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45444732/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com