Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/322.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 烧瓶表单。在提交时验证未响应_Python_Flask_Form Submit - Fatal编程技术网

Python 烧瓶表单。在提交时验证未响应

Python 烧瓶表单。在提交时验证未响应,python,flask,form-submit,Python,Flask,Form Submit,我正在尝试创建一个Flask应用程序,您可以在其中搜索“car_name”术语,它将返回一个HTML模板,其中car_name替换为“car_name”。form.validate_on_submit()没有错误,但是当您单击submit按钮时,什么也没有发生。 我看过类似的问题,但都是关于错误的,而在我的问题中,什么都没有发生(没有错误,但也没有回答)。 非常感谢您的帮助,谢谢 这是我的主要应用程序代码: from flask_wtf import FlaskForm from flask i

我正在尝试创建一个Flask应用程序,您可以在其中搜索“car_name”术语,它将返回一个HTML模板,其中car_name替换为“car_name”。form.validate_on_submit()没有错误,但是当您单击submit按钮时,什么也没有发生。 我看过类似的问题,但都是关于错误的,而在我的问题中,什么都没有发生(没有错误,但也没有回答)。 非常感谢您的帮助,谢谢

这是我的主要应用程序代码:

from flask_wtf import FlaskForm
from flask import Flask, flash, render_template, request, redirect
from wtforms import Form, StringField, SelectField, SubmitField
from wtforms.validators import Required


#Flask application object
app = Flask(__name__)
app.config['SECRET_KEY'] = 'jacky'


class SearchForm(FlaskForm):
    motor_name = StringField("", validators=[Required()])
    submit = SubmitField('Submit')

@app.route('/', methods=['GET', 'POST'])
@app.route('/home') 
def index():
    form = SearchForm()
    print(form.errors)
    motor_name = None
    if form.validate_on_submit():
        motor_name = form.motor_name.data
        return redirect(url_for('car', car_name=motor_name))
    return render_template('homepage.html', form=form)


@app.route('/car/<car_name>', methods=['GET', 'POST'])
def car(car_name):
return render_template('carpage.html', car_name=car_name)

我在代码中发现了3个错误,在console/termina/cmd.exe中运行代码时看到了错误消息

第一:您在模板中使用了
proteine\u name
而不是
motor\u name

第二:你忘了

第三:您忘记为

奇怪的是你没有看到错误


我使用了
render\u template\u string
而不是
render\u template
只是为了更容易地在一个文件中运行代码

from flask_wtf import FlaskForm
from flask import Flask, flash, render_template, request, redirect, url_for, render_template_string
from wtforms import Form, StringField, SelectField, SubmitField
from wtforms.validators import Required


#Flask application object
app = Flask(__name__)
app.config['SECRET_KEY'] = 'jacky'


class SearchForm(FlaskForm):
    motor_name = StringField("", validators=[Required()])
    submit = SubmitField('Submit')

@app.route('/', methods=['GET', 'POST'])
@app.route('/home') 
def index():
    form = SearchForm()
    print(form.errors)
    motor_name = None
    if form.validate_on_submit():
        motor_name = form.motor_name.data
        return redirect(url_for('car', car_name=motor_name))
    return render_template_string('''<form method="POST">
{{ form.csrf_token }}
{{ form.motor_name.label }} {{ form.motor_name() }}
{{ form.submit() }}
</form>''', form=form)


@app.route('/car/<car_name>', methods=['GET', 'POST'])
def car(car_name):
    print('car_name:', car_name)
    #return render_template('carpage.html', car_name=car_name)
    return render_template_string('car_name: {{car_name }}', car_name=car_name)

app.run()
来自烧瓶\ wtf进口烧瓶表单
从flask导入flask、flash、呈现模板、请求、重定向、url、呈现模板字符串
从wtforms导入表单、StringField、SelectField、SubmitField
需要从wtforms.validators导入
#烧瓶应用程序对象
app=烧瓶(名称)
app.config['SECRET_KEY']='jacky'
类搜索表单(烧瓶表单):
motor_name=StringField(“,验证器=[Required()]))
submit=SubmitField('submit')
@app.route('/',方法=['GET','POST'])
@应用程序路径(“/home”)
def index():
form=SearchForm()
打印(表单错误)
电机名称=无
if form.validate_on_submit():
电机名称=form.motor\u name.data
返回重定向(url\u用于('car',car\u name=电机名称))
返回渲染模板字符串(“”)
{{form.csrf_token}
{{form.motor_name.label}{{form.motor_name()}}
{{form.submit()}}
'',形式=形式)
@app.route('/car/',方法=['GET','POST'])
def车辆(车辆名称):
打印('车辆名称:',车辆名称)
#返回渲染模板('carpage.html',car\u name=car\u name)
返回渲染模板字符串('car\u name:{{{car\u name}}',car\u name=car\u name)
app.run()

您有
吗?您有错误-您在模板中使用了
蛋白质名称
,但形式是您定义的
电机名称
非常感谢!在添加和导入url_for后,当我单击“提交”时,它将重定向到carpage.html,但它不会显示我的搜索词car_name所在的位置(motor_name=form.motor_name.data),返回重定向(url_for('car',car_name=motor_name))并返回呈现_模板('carpage.html',car_name=car_name),这意味着在回顾中,carpage.html中的car_name应该是form.motor_name.data)),你知道这为什么不起作用吗?
car_name=car_name
in
render_模板('carpage.html',car_name=car_name)
意味着它可以作为
{car car name}
,而不是
{form motor_name}
-就像我的代码中的
呈现模板字符串('car\u name:{{{car\u name}}},…)
明白了!谢谢:)
from flask_wtf import FlaskForm
from flask import Flask, flash, render_template, request, redirect, url_for, render_template_string
from wtforms import Form, StringField, SelectField, SubmitField
from wtforms.validators import Required


#Flask application object
app = Flask(__name__)
app.config['SECRET_KEY'] = 'jacky'


class SearchForm(FlaskForm):
    motor_name = StringField("", validators=[Required()])
    submit = SubmitField('Submit')

@app.route('/', methods=['GET', 'POST'])
@app.route('/home') 
def index():
    form = SearchForm()
    print(form.errors)
    motor_name = None
    if form.validate_on_submit():
        motor_name = form.motor_name.data
        return redirect(url_for('car', car_name=motor_name))
    return render_template_string('''<form method="POST">
{{ form.csrf_token }}
{{ form.motor_name.label }} {{ form.motor_name() }}
{{ form.submit() }}
</form>''', form=form)


@app.route('/car/<car_name>', methods=['GET', 'POST'])
def car(car_name):
    print('car_name:', car_name)
    #return render_template('carpage.html', car_name=car_name)
    return render_template_string('car_name: {{car_name }}', car_name=car_name)

app.run()