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/')
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模版:


怎么会这样呢,经过仔细分析,发现,就算写了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()

你可能感兴趣的:(Flask提示错误werkzeug.routing.BuildError)