Flask和WTFormsFlask是如何工作的?

2024-09-26 18:19:50 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在学习Flask,我很难从Flask WTF中理解FlaskForm。 这个例子来自Miguel Grinberg的《Flask Web Development:使用Python开发Web应用程序》一书。 代码如下

你好,派伊

class NameForm(FlaskForm):
    name = StringField('What is your name?', validators=[DataRequired()])
    submit = SubmitField('Submit')
 
@app.route('/', methods=['GET', 'POST'])
def index():
    name = None
    form = NameForm()
    if form.validate_on_submit():
        name = form.name.data
    return render_template('index.html', form=form, name=name)

index.html

{% import "bootstrap/wtf.html" as wtf %}
{% block page_content %}
<div class="page-header">
    <h1>Hello, {% if name %}{{ name }}{% else %}Stranger{% endif %}!</h1>
</div>
{{ wtf.quick_form(form) }}
{% endblock %}

这个简单的应用程序从用户那里获取名称并显示个性化消息。 假设我输入了我的名字并点击提交按钮。如何从表单对象(名称表单的实例)接收输入的名称并发送到渲染

name = form.name.data

在此之前,NameFormnew实例分配给form变量

form = NameForm()

Tags: nameform名称web应用程序flaskdataindex
1条回答
网友
1楼 · 发布于 2024-09-26 18:19:50

没有烧瓶。 您可以使用Flask.request获取用户提交的name,如下所示:

@app.route('/', methods=['GET', 'POST'])
def index():
    name = None
    name = request.form.get('name', None)

(您需要追加from Flask import request

这意味着当从处理程序调用Flask.request对象时,任何库都可以通过该对象获取请求值。这就是为什么FlaskForm不需要任何参数来获取请求值(只要它是从请求处理程序调用的)

相关问题 更多 >

    热门问题