Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/79.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Form.term.data不返回任何内容_Python_Html_Flask_Jinja2_Cjk - Fatal编程技术网

Python Form.term.data不返回任何内容

Python Form.term.data不返回任何内容,python,html,flask,jinja2,cjk,Python,Html,Flask,Jinja2,Cjk,我正在为在线词典制作一个Flask应用程序,但是我制作的FlaskForm在提交时没有返回任何内容。这是我的app.py: 从flask导入flask,呈现模板,url,重定向,请求 来自flask_wtf进口FlaskForm 从wtforms导入StringField、SubmitField 需要从wtforms.validators导入数据 app=烧瓶(名称) app.config['SECRET_KEY']=“bbe039da711aa33120ffe25823ae104d1daa0d

我正在为在线词典制作一个Flask应用程序,但是我制作的FlaskForm在提交时没有返回任何内容。这是我的app.py:

从flask导入flask,呈现模板,url,重定向,请求
来自flask_wtf进口FlaskForm
从wtforms导入StringField、SubmitField
需要从wtforms.validators导入数据
app=烧瓶(名称)
app.config['SECRET_KEY']=“bbe039da711aa33120ffe25823ae104d1daa0d8efc3e8b3ceb37a4819bf3f695”
类搜索表单(烧瓶表单):
term=StringField(标签=('Search for:'),验证器=[DataRequired()])
submit=SubmitField(标签=('Search'))
d={
"我": {
“eng”:“我,我”,
“pin”:“ng4”
},
"你": {
“eng”:“you”,
“pin”:“nyi4”
}
}
@app.route(“/”,方法=['GET','POST'])
def search():
form=SearchForm()
如果request.method==“POST”:
hanterm=form.term.data
postdata=d[hanterm]
返回render_模板(“results.html”,title=hanterm,postdata=postdata)
返回渲染模板(“index.html”,title=“Search”,form=form)
如果uuuu name uuuuuu='\uuuuuuu main\uuuuuuu':
app.run(debug=True)
My index.html(包含results.html扩展的模板):


{%if title%}
烧瓶博客-{{title}
{%else%}
烧瓶博客
{%endif%}
搜索词:
{{form.csrf_token()}}
{{form.term.label(class=“form control label”)}
{{form.term(class=“form control form control lg”)}
{{form.submit(class=“btn btn outline info”)}
和my results.html:

{%extends“index.html”%}
{%block content%}
读取:{postdata[“pin”]}

中文:{postdata[“eng”]}

{%endblock%}
用户在输入字段中输入一个汉字并提交,然后将该汉字关联到
hanterm
,并将其字典分配给
postdata
,然后将
postdata
发送到results.html,以便打印其值

如果我打字我, <代码>hanterm=我'

postdata={
“eng”:“我,我”,
“pin”:“ng4”
}
其值将打印在results.html中

然而,当我提交时,什么也没有发生。当我试图打印form.term.data时,我什么也没有得到。我以前有两条路径——一条用于主页,另一条用于结果页面,但我不断得到keyrerrors,并认为这是hanterm变量无法进入结果函数的原因(其中包含以下位:

hanterm=form.term.data
postdata=d[hanterm]
返回render_模板(“results.html”,title=hanterm,postdata=postdata)

和results.html的render_模板),所以我尝试使用全局变量、会话变量等。我应该怎么做才能解决这个问题?

问题是,当Python检查
if request.method==“POST”:

如果您使用的是
GET
,那么表单数据包含在请求URL中,因此您应该使用类似
request.args.GET(“term”)
的内容在Flask中访问它

我建议不要使用flask表单作为搜索函数,而是使用一个简单的HTML
GET
表单,并在页面的每个请求上检查请求参数,如下所示:

@app.route(“/”,方法=[“GET”])
def search():
hanterm=request.args.get(“术语”)
如果是hanterm:
返回渲染模板(
“results.html”,
title=hanterm,
postdata=d[hanterm],
)
返回渲染模板(“index.html”,title=“Search”)