简单的flask-wtf 表单设置及后台获取

 

简单的flask-wtf 表单设置及后台获取

 

复制代码
#!/usr/bin/env python

from flask import Flask, render_template_string
from flask_wtf import FlaskForm
from wtforms.fields import BooleanField, DecimalField, IntegerField, \
    PasswordField, RadioField, SelectMultipleField, SelectField, StringField, \
    SubmitField, TextAreaField

application = app = Flask('wsgi')
app.config['SECRET_KEY'] = '1234567890'


class LanguageForm(FlaskForm):
    string = StringField(label="文本字段")
    boolean = BooleanField(label='布尔选择')
    decimal = DecimalField(label='小数数字')
    integer = IntegerField(label='整数')
    radio = RadioField(label='单选', choices=[('M', ''), ('F', '')])  # 不能重新赋值。
    select = SelectField(label='下拉单选', choices=[('a', 'A'), ('b', 'B'), ('c', 'C')])  # 下拉单选,重新赋值出错。
    textarea = TextAreaField(label='多行文本')
    password = PasswordField(label='密码')
    submit = SubmitField(label='按钮')
    selectmultiple = SelectMultipleField(label='多选', choices=[('a', 'A'), ('b', 'B'), ('c', 'C')])  # 使用ctrl进行的多选


template_form = """
{% block content %}
<h1>测试flask-wtf</h1>
<form method="POST" action="/">
    {{ form.csrf_token }}
    <div>{{ form.string.label }} {{ form.string }}</div>
    <div>{{ form.boolean.label }} {{ form.boolean }}</div>
    <div>{{ form.decimal.label }} {{ form.decimal }}</div>
    <div>{{ form.integer.label }} {{ form.integer }}</div>
    <div>{{ form.radio.label }} {{ form.radio }}</div>
    <div>{{ form.select.label }} {{ form.select }}</div>
    <div>{{ form.textarea.label }} {{ form.textarea }}</div>
    <div>{{ form.password.label }} {{ form.password }}</div>
    <div>{{ form.selectmultiple.label }} {{ form.selectmultiple }}</div>
    <div>{{ form.submit.label }} {{ form.submit }}</div>
    <button type="submit" class="btn">提交</button>    
</form>
{% endblock %}

"""


@app.route('/', methods=['GET', 'POST'])
def index():
    form = LanguageForm()
    if form.validate_on_submit():
        print(form.string.data)
        print(form.boolean.data)
        print(form.decimal.data)
        print(form.integer.data)
        print(form.radio.data)
        print(form.select.data)
        print(form.textarea.data)
        print(form.password.data)
        print(form.submit.data)
        print(form.selectmultiple.data)
        return render_template_string(template_form, form=form)
    else:
        print('GET')
        return render_template_string(template_form, form=form)


if __name__ == '__main__':
    app.run(
        host='0.0.0.0',
        debug=True)
复制代码

作者:上官飞鸿

出处:https://www.cnblogs.com/jackadam/p/12167430.html

版权:本作品采用「知识共享-署名-非商业性-禁止演绎(CC-BY-NC-ND)」许可协议进行许可。

posted @   上官飞鸿  阅读(937)  评论(0编辑  收藏  举报
编辑推荐:
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!
more_horiz
keyboard_arrow_up light_mode palette
选择主题
点击右上角即可分享
微信分享提示