gpt4 book ai didi

python - 如何将 View 添加到单独文件中的蓝图

转载 作者:太空宇宙 更新时间:2023-11-04 11:19:50 26 4
gpt4 key购买 nike

我有一个巨大的应用程序,很难更新它的 View 。为了“修复”这个问题,我使用 blueprints 将 View 分成了几个文件。 .问题是蓝图也变得非常大,因为每个 View 都有很长的文档,每个 View 需要不同的验证。

我曾尝试像这样进行导入:

Import

我有一个包含 Flask 应用程序(导入蓝图)的主文件,一个包含蓝图的文件和一个导入蓝图并在其中配置 View 的文件。问题是使用这种方法不会呈现 View ,因为流程原因。

主文件,在文件夹的根目录中:

from flask import Flask

from source import test

application = Flask(__name__)

application.register_blueprint(test)

application.run()

蓝图文件,位于根文件夹的子文件夹中:

from flask import Blueprint

test = Blueprint('test', __name__)

View 文件,位于与蓝图文件相同的子文件夹中:

from .test import test

@test.route('/home', methods=['GET', 'POST'])
def home():
return 'home'

我也曾尝试将蓝图装饰器添加到已声明的函数中,这样 View 就会添加到蓝图文件中的蓝图中,但我认为这不是一个好方法或可扩展的方法 - 而且它没有没工作 ^ - ^。

我希望在文件中创建蓝图,在其他文件中导入蓝图并向蓝图添加 View ,然后导入蓝图并将其添加到 Flask 应用程序中。

最佳答案

您需要在blueprint 文件中导入views 内容。

我已经创建了场景并且能够获取 View 。此外,我还更新了命名约定。

文件夹结构:

.
├── app.py
└── blueprints
├── example_blueprint.py
├── example_views.py
└── __init__.py

app.py:

from flask import Flask
from blueprints.example_blueprint import bp

app = Flask(__name__)
app.register_blueprint(bp)

blueprints/example_blueprint.py:

from flask import Blueprint

bp = Blueprint('bp', __name__,
template_folder='templates')

from .example_views import *

blueprints/example_views.py:

from .example_blueprint import bp

@bp.route('/home', methods=['GET', 'POST'])
def home():
return 'home'

blueprints/__init__.py: 空白文件

输出:

blueprint example

运行应用程序:

export FLASK_APP=app.py
export FLASK_ENV=development
flask run

requirements.txt:

Click==7.0
Flask==1.0.3
itsdangerous==1.1.0
Jinja2==2.10.1
MarkupSafe==1.1.1
pkg-resources==0.0.0
Werkzeug==0.15.4

引用:

关于python - 如何将 View 添加到单独文件中的蓝图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56249922/

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