我正在嘗試創建一個Web應用程序,它使用一個窗體(WTForms)來獲取兩個svn網址並執行某些操作/顯示它們。這將有,如果點擊就會ONLY顯示與信息的表另一起提交按鈕,做其他功能(使用show=True
給render_template)試圖在render_template()(Flask)之後在另一個作用域中使用訪問變量?
views.py
更新按鈕:
@app.route('/test4', methods=['GET','POST'])
def test4():
form1=SVN_Path()
form2=Inputs()
if request.method=="POST":
if request.form.get('updatepaths')=='Update' and form1.validate_on_submit():
--> basepath=createDir()
svn_url1 = form1.svn_url1.data
svn_url2 = form1.svn_url2.data
--> prev_pdf=PDF_List(svn_url1,basepath,'prev') #function that generates a list
new_pdf=PDF_List(svn_url2,basepath,'new') #function that generates a list
options=[("None","None")]+[(pdf,pdf) for pdf in new_pdf]
for sub_form in form2.files:
sub_form.choices= options
sub_form.default="None"
return render_template('test4.html',form1=form1,form2=form2,show=True,numfiles=len(prev_pdf),pdflist=prev_pdf)
elif request.form.get('batchfiles')=='Submit':
#I WANT TO USE PREV_PDF AND BASEPATH IN THIS PART BUT IT IS OUT OF SCOPE
else:
return render_template('test4.html',form1=form1,form2=form2)
的elif
部分:elif request.form.get('batchfiles')=='Submit':
是第二次提交,僅當第一次提交被點擊時纔會出現,但是,
問題發生在:在代碼段我想使用basepath和prev_pdf超出範圍,因爲我在第一個if
語句的末尾返回了render_template。此外,我無法再訪問form1.svn_url1.data,所以我不能只記得這個函數。
我只是想不出一種方法來格式化代碼或解決方案,將解決我的問題,所以任何幫助表示讚賞。