(十)表单的渲染

服务端代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
#学会了写表单类,如何将表单类渲染成HTML呢,此处可以结合前面学过的模板标签来进行渲染。
 
#一、服务端代码
#1、test_corms.py 文件
#coding:utf-8
from flask import Flask, render_template
from forms import LoginForm
app = Flask(__name__)
 
@app.route('/')
def login():
    '''访问首页'''
    form = LoginForm()
    return render_template("from1.html",form=form)
 
#预防重复提交
app.config['SECRET_KEY'= 'ddu384783274*%%Hgdiwre@#$%^&*de'
 
if __name__ == '__main__':
    app.run(debug=True)
 
#2、forms.py文件
#coding:utf-8
from flask_wtf import FlaskForm
from wtforms import StringField, SubmitField, SelectField, RadioField,TextAreaField, \
    DateField, BooleanField
from wtforms.validators import DataRequired
from wtforms.widgets import CheckboxInput, PasswordInput
 
class LoginForm(FlaskForm):
    '''定义登录表单'''
    username = StringField('用户名',validators=[DataRequired()],
                           render_kw={"required":"required","class":"form-controal"})
    password = StringField('密码', validators=[DataRequired()], widget=PasswordInput())
    language = SelectField('编程语言',
        choices = [('cpp','c++'),('py','python'),('java','Java')])
    code = TextAreaField('代码')
    date = DateField('日期')
    is_checked = BooleanField('是否已经通过验证')
    submit = SubmitField('登录')

前端代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
<!DOCTYPE HTML>
<html>
    <head>
        <title>
            flask-wtf 表单渲染
        </title>
    </head>
    <body>
        <form action=""method="get"accept-charset="utf-8">
            <div>
                {{ form.username.label }} : {{ form.username(id="id-username") }}
                <small>{{ form.username.description }}</small>
            </div>
            <div>
                {{ form.password.label}} : {{ form.password }}
            </div>
            <div>
                {{ form.language.label }} : {{ form.language }}
            </div>
            <div>
                {{ form.code.label }} : {{ form.code }}
            </div>
            <div>
                {{ form.date.label }} : {{ form.date }}
            </div>
            <div>
                {{ form.is_checked.label}} : {{ form.is_checked}} 
            </div>
            <div>
                {{ form.submit.label }} : {{ form.submit }}
                {{ form.csrf_token }}
            </div>
        </form>
    </body>
 
</html>


本文转自 TtrToby 51CTO博客,原文链接:http://blog.51cto.com/freshair/1927432

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值