TEL:400-8793-956
当前位置:程序、服务器

包含链接时的 Flask BuildError

提问者: 近期获赞: 浏览人数: 发布时间:2021-07-13 08:44:44

 问:背景:我正在构建这个应用程序,主要是在课程中出现。到目前为止唯一真正的区别是我使用的是“条目”而不是“帖子”。

 
当我包含为经过身份验证的用户创建指向新入口页面的链接的代码时,我不断收到 BuildError。这是导致错误出现的代码(它位于“layout.html”文件中):
 
< a  href = "{{ url_for('entry') }}" >发布新条目</ a >
每当我省略此代码时,应用程序都会按预期运行,这很奇怪,因为所有这些代码应该做的是创建一个指向“新条目”页面的链接,对吗?
 
考虑到我的路线可能有问题,这是主应用程序文件的那部分(fs_app.py正如我所命名的):
 
# 创建条目
@app.route('/newentry', methods=('GET', 'POST'))
 @login_required
 def new_entry():
     form = forms.EntryForm()
     if form.validate_on_submit():
         models.Entry. create(user=g.user._get_current_object(),
                             title=form.title.data.strip(),
                             content=form.content.data.strip())
         flash("Entry Posted.", "success")
        返回重定向(url_for('index'))
    返回 render_template('entry.html', form=form)
这是正在生成的错误:
 
werkzeug.routing.BuildError
 BuildError: ('entry', {}, None)
回溯(最近一次调用最后一次)
文件“/usr/local/lib/python2.7/dist-packages/flask/app.py”,第 1836 行, in __call__
 return self.wsgi_app(environ, start_response)
 File "/usr/local/lib/python2.7/dist-packages/flask/app.py", line 1820, in wsgi_app
 response = self.make_response(self.handle_exception (e))
文件“/usr/local/lib/python2.7/dist-packages/flask/app.py”,第 1403 行,在
handle_exception reraise(exc_type, exc_value, tb)
文件“/usr/local/lib/ python2.7/dist-packages/flask/app.py", line 1817, in wsgi_app
 response = self.full_dispatch_request()
 
文件“/usr/local/lib/python2.7/dist-packages/flask/app.py”,第 1477 行,在 full_dispatch_request
 rv = self.handle_user_exception(e)
文件“/usr/local/lib/python2.7/ dist-packages/flask/app.py”,第 1381 行,在 handle_user_exception reraise
 (exc_type, exc_value, tb)
文件“/usr/local/lib/python2.7/dist-packages/flask/app.py”,第 1475 行, 在 full_dispatch_request
 rv = self.dispatch_request()
 File "/usr/local/lib/python2.7/dist-packages/flask/app.py", line 1461, in dispatch_request
 return self.view_functions[rule.endpoint](* *req.view_args)文件“/usr/local/lib/python2.7/dist-packages/flask_login.py”,第 792 行,在装饰视图
返回 func(*args, **kwargs)
文件“/home/kylebarney/LEARN/flasksocial/fs_app.py”,第 100 行,在 new_entry 中
return render_template('entry.html', form=form)
文件“/usr/local/lib/python2.7/dist-packages /flask/templating.py”,第 128 行,在 render_template
上下文中,ctx.app)
文件“/usr/local/lib/python2.7/dist-packages/flask/templating.py”,第 110 行,在 _render
 rv = template.render(context)
 File "/usr/local/lib/python2.7/dist-packages/jinja2/environment.py", line 989, in render
 return self.environment.handle_exception(exc_info, True)
 File "/usr /local/lib/python2.7/dist-packages/jinja2/environment.py", line 754, in
 handle_exception reraise(exc_type, exc_value, tb)
文件“/home/kylebarney/LEARN/flasksocial/templates/entry.html”,第 2 行,顶级模板代码
{% from 'macros.html' import render_field %}
文件“/home/kylebarney/LEARN/flasksocial/模板/的layout.html “线路70,在顶层模板代码
<一个 HREF = ”{{url_for( '条目')}}“ >发新条目</一>
文件”的/ usr /本地/ LIB / python2 .7/dist-packages/flask/helpers.py", line 312, in url_for
 return appctx.app.handle_url_build_error(error, endpoint, values)
 File "/usr/local/lib/python2.7/dist-packages/flask /app.py", line 1641, in handle_url_build_error reraise
 (exc_type, exc_value, tb)
文件“/usr/local/lib/python2.7/dist-packages/flask/helpers.py”,第 305 行,在 url_for
 force_external=external 中)
文件“/usr/local/lib/python2.7/dist-packages/ werkzeug/routing.py", line 1678, in build
 raise BuildError(endpoint, values, method)
 BuildError: ('entry', {}, None)
有任何想法吗?
 
 
答:您正在使用“{{ url_for('entry') }}”,但您的函数名称是“new_entry”。论文需要匹配
上一篇: 我在完成创建选择菜单的 HTML 表单上
下一篇: 我不断收到一条消息,告诉我为 numbers-01 添加图像标签