ste*_*fan 2 python werkzeug url-for
我在一个非常简单的应用程序中遇到了一个烧瓶url_for('')错误.
from flask import Blueprint, render_template, abort
from jinja2 import TemplateNotFound
base = Blueprint('main', __name__)
@base.route('/', defaults={'page':'home'})
@base.route('/<page>')
def show(page):
try:
return render_template('%s.html'%page, name='my name is')
except TemplateNotFound:
abort(404)
Run Code Online (Sandbox Code Playgroud)
以上是我的蓝图文件,这些路线工作正常,但如果我尝试做
with flask.test_request_context():
print url_for('home') #home.html or any other forms
Run Code Online (Sandbox Code Playgroud)
我刚收到这个错误:
raise BuildError(endpoint, values, method)
werkzeug.routing.BuildError: ('home', {}, None)
Run Code Online (Sandbox Code Playgroud)
任何人都可以帮我弄清楚这里发生了什么?在我的html页面中,我可以打印出静态文件的位置:
{{ url_for('static', filename='style.css') }}
Run Code Online (Sandbox Code Playgroud)
但如果我试着这样做:
{{ url_for('home') }}
Run Code Online (Sandbox Code Playgroud)
我再次得到同样的错误.任何人都有一些建议如何继续?
我想你正试图用url_for错误的方法.
url_for通常将端点(即python函数/方法)映射到url.在您的情况下home是参数的值,而不是端点.
所以,相反,使用你想要url的python函数的名称:
url_for('show', page='home')
Run Code Online (Sandbox Code Playgroud)
应该是你正在寻找的.
| 归档时间: |
|
| 查看次数: |
4424 次 |
| 最近记录: |