首页 > 解决方案 > flask route 函数将“None”注入 url 并发出两个 GET 请求

问题描述

这有点奇怪,我有一个路由功能profile,它从 url 获取用户名并重定向到该用户的个人资料 -

@app.route('/profiles/<username>', methods=['GET', 'POST'])
@login_required
def profile(username):
    if username == "None":
        print("wtf")
    print(username + "<<<<<<<<<<<<<<<<<<<")
    visited_user = User.query.filter_by(username=username).first()
    if visited_user:
        return render_template('profile.html', visited_user=visited_user)
    else:
        return abort(404)
`

从我在调试中的创造性尝试可以看出,如果用户名是 None,而不是 null,只是一个“None”字符串,终端应该记录一个“wtf”消息。它确实在它的第二个 GET 请求中,它一开始就不应该这样做。这是输入网址“ http://localhost:5000/profiles/a ”后的终端

a<<<<<<<<<<<<<<<<<<<
127.0.0.1 - - [05/Aug/2018 11:38:56] "GET /profiles/a HTTP/1.1" 200 -
wtf
None<<<<<<<<<<<<<<<<<<<
127.0.0.1 - - [05/Aug/2018 11:38:56] "GET /profiles/None HTTP/1.1" 404 -

标签: pythonflasksqlalchemybackend

解决方案


问题定位我在onerrorimg 标签内有一个属性,它刷新页面以更新 img 源


推荐阅读