问题
我创建了一条动态路由 /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
时,我可以访问相同的路线
截图一
截图二
最佳答案
存储随机字符串时,您使用的 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/