python - Flask 动态路由正在采用我未指定的值

标签 python flask routes dynamic-routing

问题

我创建了一条动态路由 /update/<randomString>在我的Flask app.py 文件,其中 randomString是一个随机生成的字符串,长度为50。但是,如果我搜索 /update/1我能够查看相同的动态路线 /update/<randomString>没有任何错误!谁能解释一下为什么会这样?

看看我到目前为止已经尝试过的内容:

@app.route('/')
def index():
 randomString = ''.join(secrets.choice(string.ascii_uppercase+string.digits+string.ascii_lowercase) for k in range (50))
 session['randomString'] = str(randomString)
 return render_template('index.html')

@app.route('/update/<randomString>')
def update(randomString):
 if 'randomString' in session:
  randomString = session['randomString']
  return render_template('update.html')
 else:
  return 'error...'

update.html页面的动态页面链接,其中借助session(在index.html页面定义)传递随机字符串。

<a href="update/{{randomString}}">Dynamic page</a>

编辑:当我单击上面定义的链接并且我的 URL 部分显示长随机字符串时,我还可以查看动态路线。问题是:当我搜索 http://127.0.0.1:5000/update/1 时,我可以访问相同的路线

截图一

enter image description here

截图二

enter image description here

最佳答案

存储随机字符串时,您使用的 key 是randomString。所以你将随机字符串存储在像

这样的字典中
session['randomString'] = '1234567890'

然后,当您在 /update 路由中访问 session 时,您只需检查 session 是否具有名为 randomString 的 key 。您还应该检查 session['randomString'] == '1234567890' 是否存在,并且仅当 session 中的随机字符串与您在 / 中创建的随机字符串相同时才渲染页面小路。您可以将 if 替换为

if 'randomString' in session and session['randomString'] == randomString :

关于python - Flask 动态路由正在采用我未指定的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69149060/

相关文章:

javascript - python中的CKEditor filemanager

python - Flask-restful:将复杂对象编码为 json

node.js - 为什么链式 get()、post() 和 put() 方法不需要路径参数?

亚马逊云实例之间的 Python 多处理

python - python 中的正则表达式。输出不正确

javascript - Flask - 在按钮 OnClick 事件上调用 python 函数

javascript - 如何 router.navigate 到 Angular 4 中的相同路线并捕获相同的事件?

linux - 两个默认网关上的路由问题

python - 将整数列表、数字字符串转换为整数列表

python - Python matplotlib 作为 cron 作业运行时出现 QxcbConnection 错误