(十)表单的渲染

服务端代码:

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值