有时候提示错误:
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()
