gpt4 book ai didi

python - 对一些静态页面使用 flask/blueprint

转载 作者:太空狗 更新时间:2023-10-30 01:52:13 26 4
gpt4 key购买 nike

所以我对如何使用 Flask 构建页面而不必声明每个 View 感到有点困惑。

我如何制作蓝图以在我要加载的页面上拾取?

假设这些是我的示例页面

templates/
layout.html
section1/
subsection/index.html
subsection2/index.html
section2
subsection/index.html
childofsubsection/index.html

我想假设如果我去 example.com/section1/subsection/它会知道寻找其对应的页面而不必特别说明。文档 http://flask.pocoo.org/docs/blueprints/非常接近解释这一点,但我仍然有点迷茫。

from flask import Flask
from yourapplication.simple_page import simple_page

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

另外,不确定这应该去哪里?这看起来像是在 application.py 中,但要求从“yourapplication”导入

对 Flask 很陌生,也不是 Python 专家。真的只是需要一些简化 :)

最佳答案

如果您想查看Blueprint 用法示例,可以查看this answer。 .

关于您的问题的“模板自动查找”部分:如文档所述,蓝图允许指定将查找静态文件和/或模板的文件夹,这样您就不必指定完整的文件夹render_template() 调用中模板文件的路径,但只有文件名。

如果您想让您的 View “神奇地”知道它们应该选择哪个文件,您必须做一些修改。例如,一个解决方案可能是在您的 View 上应用一个装饰器,使其根据函数名称选择模板文件,这样的装饰器看起来像这样:

from functools import wraps
from flask import render_template

def autorender(func):
@wraps(func)
def wrapper(*args, **kwargs):
context = func(*args, **kwargs)
return render_template('%s.html' % func.func_name, **context)
return wrapper

然后您只需将 View 中的上下文作为字典返回(如果没有上下文,则返回空字典):

@my_blueprint.route('/')
@autorender
def index():
return {'name': 'John'} # or whatever your context is

它会自动选择名为 index.html 的模板。

关于python - 对一些静态页面使用 flask/blueprint,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7054099/

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