python - 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 -
解决方案
问题定位我在onerror
img 标签内有一个属性,它刷新页面以更新 img 源
推荐阅读
- elixir - 带有 Absinthe 后端的其他正确 GraphQL 查询中的未知参数
- c++ - 编译器如何操作同一行中的两个递归函数?
- keycloak - Keycloak 6.0.1 - 入门 - 保护 servlet 应用程序无法加载
- typescript - 如何在谷歌云功能中使用 geofirex
- c++ - using 语句和受保护的构造函数
- woocommerce - 尝试使用创建的新客户字段获取运输字段
- java - My AWS Rekognition sample code doesn't run
- flutter - disappear of the text written in the text field after pressing done
- android - Why can't Android release the finished activity from memory after AsyncTask finishes?
- python-3.x - Linux 上的 python 中的 openCV 在显示图像时爆炸