Flask创建表单

本文介绍了如何使用Flask框架配合Flask-Bootstrap库,通过一行代码快速生成不修改默认样式的表单,简化web应用的开发过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

使用flask提交表单的方式

1、 前端html:
{% extends "base.html" %}
{% import "bootstrap/wtf.html" as wtf %}

{% block title %}Flasky{% endblock %}

{% block page_content %}
<div class="page-header">
    <h1>Hello, {% if name %}{{ name }}{% else %}Stranger{% endif %}!</h1>
    {% if not known %}
    <p>Pleased to meet you!</p>
    {% else %}
    <p>Happy to see you again!</p>
    {% endif %}
</div>
<form action="/testrun" class="form" method="POST">
    {{ form.hidden_tag() }}
    {{ wtf.form_field(form.name) }}
    {{ wtf.form_field(form.submit) }}
</form>
{% endblock %}
不使用Flask-WTF,直接把表单写在HTML模板里。这在一些特殊情况下,反而会比使用Flask-WTF更加方便。比如在小项目里,或是需要高度自定义的情况下。需要注意的是,这时要给表单添加一个action属性,属性值填写要处理表单数据的视图函数。

注意:如果不需要调整Boostrap的默认表单样式,只想要快速生成表单,那么Flask-Bootstrap还提供了一个强大的函数,只需要一行就可以快速生成表单:

{% import "bootstrap/wtf.html" as wtf %}
{{ wtf.quick_form(form) }}

2、前端这时候可以不用绑定操作了,但需要新建一个form对象,用这种方式的好处就是flask有很多内置的方式帮你校验你的提交
from flask_wtf import Form
from wtforms import StringField, SubmitField
from wtforms.validators import Required


class NameForm(Form):
    name = StringField('What is your name?', validators=[Required()])
    submit = SubmitField('Submit')

3、这是处理表单数据的函数:
# -*- coding: utf-8 -*-
import sys
reload(sys)
sys.setdefaultencoding('utf-8')
import six

from flask import render_template, session, redirect, url_for, current_app
from .. import db
from ..models import User
from ..email import send_email
from . import main
from .forms import NameForm

@main.route('/testrun', methods=['GET', 'POST'])
def custom():
    return render_template('testrun.html',data=six.text_type("提交按钮后调用testrun函数,返回数据"))


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值