如何从 route() 装饰器导入变量到 Flask 中的表单文件?
How to import a variable from a route() decorator to form file in Flask?
我想将在我的程序的一个路由装饰器中声明的变量导入表单,但该表单在路由内部使用。
来自我的 views.py
函数
@app.route('/test4', methods=['GET','POST'])
def test4():
form1=SVN_Path()
form2=Inputs()
if request.method=="POST" and form1.validate_on_submit():
prev_pdf=["test1.pdf","test2.pdf","test3.pdf","test4.pdf","test5.pdf"]
----> new_pdf=["ex1.pdf","ex2.pdf"]
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)
我想将 new_pdf 的长度导入到我的表单文件中,该文件与我的 views.py 位于同一目录中。我知道我可以使用像 lengthpdf=len(new_pdf)
这样的语句来获取长度,但我不确定如何将它导入到包含
的 forms.py
class Inputs(Form):
files = FieldList(SelectField(u'File', validators =[Required()]),min_entries = 2)
其中 min_entries 应等于 new_pdf
的长度
一种解决方案是使用 FieldList.append_entry()。因此,无需在 files
定义时指定 min_entries
,您只需添加一个条目(就像您对 select 字段进行选择一样)。
例如
def test4():
form2 = Inputs()
if request.method == "POST" and form1.validate_on_submit():
prev_pdf = ["test1.pdf", "test2.pdf", "test3.pdf","test4.pdf", "test5.pdf"]
new_pdf = ["ex1.pdf","ex2.pdf"]
options = [("None","None")] + [(pdf, pdf) for pdf in new_pdf]
for i in range(len(new_pdf)):
form2.files.append_entry()
form2.files[i].choices = options
form2.files[i].default = "None"
return render_template('test4.html', form1=form1, form2=form2, show=True, numfiles=len(prev_pdf), pdflist=prev_pdf)
我想将在我的程序的一个路由装饰器中声明的变量导入表单,但该表单在路由内部使用。
来自我的 views.py
函数
@app.route('/test4', methods=['GET','POST'])
def test4():
form1=SVN_Path()
form2=Inputs()
if request.method=="POST" and form1.validate_on_submit():
prev_pdf=["test1.pdf","test2.pdf","test3.pdf","test4.pdf","test5.pdf"]
----> new_pdf=["ex1.pdf","ex2.pdf"]
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)
我想将 new_pdf 的长度导入到我的表单文件中,该文件与我的 views.py 位于同一目录中。我知道我可以使用像 lengthpdf=len(new_pdf)
这样的语句来获取长度,但我不确定如何将它导入到包含
forms.py
class Inputs(Form):
files = FieldList(SelectField(u'File', validators =[Required()]),min_entries = 2)
其中 min_entries 应等于 new_pdf
的长度一种解决方案是使用 FieldList.append_entry()。因此,无需在 files
定义时指定 min_entries
,您只需添加一个条目(就像您对 select 字段进行选择一样)。
例如
def test4():
form2 = Inputs()
if request.method == "POST" and form1.validate_on_submit():
prev_pdf = ["test1.pdf", "test2.pdf", "test3.pdf","test4.pdf", "test5.pdf"]
new_pdf = ["ex1.pdf","ex2.pdf"]
options = [("None","None")] + [(pdf, pdf) for pdf in new_pdf]
for i in range(len(new_pdf)):
form2.files.append_entry()
form2.files[i].choices = options
form2.files[i].default = "None"
return render_template('test4.html', form1=form1, form2=form2, show=True, numfiles=len(prev_pdf), pdflist=prev_pdf)