問題
我在我的Flask app.py檔案中創建了一個動態路由/update/<randomString>,其中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}}">動態頁面</a>
編輯:當我點擊上面定義的鏈接時,我也能夠查看動態路線,我的URL部分顯示了那個長的隨機字串。問題是:當我搜索http://127.0.0.1:5000/update/1
螢屏截圖一


uj5u.com熱心網友回復:
在存盤隨機字串時,你使用的鍵是randomString。所以你要把隨機字串存盤在一個dict中,就像
session['randomString'] = '1234567890'。
當你在/update路由中訪問會話時,你只是在檢查會話是否有一個名為randomString的鍵。你還應該檢查session['randomString'] == '1234567890',并且只有當session中的隨機字串與你在/路徑中創建的隨機字串相同時才渲染頁面。你可以用
if '隨機字串' in session and session['randomString'] == randomString :
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/317192.html
標籤:
