Flask提示错误werkzeug.routing.BuildError

有时候提示错误:
werkzeug.routing.BuildError: Could not build url for endpoint 'main.user'. Did you forget to specify values ['username']?
如图


屏幕快照 2016-07-15 下午3.37.32.png

检查路由参数有username,模版中写传入了username参数
views.py视图:

@main.route('/user/<username>')
def user(username):
    user = User.query.filter_by(username=username).first()
    if user is None:
        abort(404)
    posts=user.posts.order_by(Post.timestamp.desc()).all()
    return render_template('user.html',user=user,posts=posts)

user.html模版:

<a href="{{ url_for('.user', username=post.author.username) }}">

怎么会这样呢,经过仔细分析,发现,就算写了username参数,假如post.author.username是None,也就是为空,也会出现这样,所以以后出现这种情况,还要检查传入的参数值是否为None,
我这里是数据库中有一个用户数据出错的,username为空的,所以出现这个错误。

在shell中执行以下命令就添上了username

u=User.query.filter_by(username=None).first()
u.username='blacknone'
db.session.add(u)
db.session.commit()
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容