gpt4 book ai didi

python - 有没有一种方法可以轻松地在 Flask 中为多个标准页面定义路由?

转载 作者:太空宇宙 更新时间:2023-11-03 14:14:16 25 4
gpt4 key购买 nike

在 Flask 中制作网络应用程序时,我发现我有一大堆看起来完全像下面这样的 View :

@app.route('/home', methods=['GET'])
@require_login
def home():
return render_template("home.html")

@app.route('/files', methods=['GET'])
@require_login
def files():
return render_template("files.html")

有没有什么方法可以创建一个像 ['home','files'] 这样的列表,并从中生成所有这些简单的 View ?

最佳答案

如果 routestemplates 名称匹配,您可以执行以下操作:

@app.route('/home', methods=['GET'])
@app.route('/files', methods=['GET'])
@require_login
def just_render():
file_name = request.path.replace('/', '')
template = '{file_name}.html'.format(file_name=file_name)

return render_template(template)

即从 request.path 获取请求的路径, 删除不需要的 / 然后格式化模板名称。


编辑

从评论中回答你的问题:

Is there any way I could compress the list of routes?

我会根据评论修改一点@Sean Vieira的回答:

@app.route('/<path>', methods=['GET'])
@require_login
def just_render(path):
if path in ['home', 'files', 'about', 'contact']:
template = '{file_name}.html'.format(file_name=path)
return render_template(template)

关于python - 有没有一种方法可以轻松地在 Flask 中为多个标准页面定义路由?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34776877/

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