python form_Python基础(Django二——Form)

六、Form

说明:Django中的From有两种功能,一是将自己显示成HTML,二是校验数据。

个人认为显示成HTML这个功能不太方便,因为显示样式不太好调整,建议只使用Form的校验数据的功能,所以这里对于样式的设置不做介绍,着重介绍校验数据的功能。

Form的使用大概分为三个步骤:

首先定义一个类:类中的每一个字段都是Form的一个属性

然后根据类创建对象并定义校验方法:将创建的对象返回给前端的HTML页面引用,可生成相应的HTML代码。(同时通过调用类的方法可以校验和获取前端用户提交的数据。)

最后在HTML中引用:如果HTML中的标签和样式是自定义的,那么标签的name属性的值必须和Form中的字段名称一致,否则后台将无法获取和进行数据检验。

举例:

1、定义一个类:

文件名:account.pyfrom django import forms        #导入forms类

class Userinfo(forms.Form):    #新创建的类必须继承forms.Form

email = forms.EmailField(required=False)    #默认是不允许为空,如果加上required=False参数则表示允许为空

username = forms.CharField()    #forms有多种字段类型,每种代表不同的校验规则

password = forms.CharField()

2、根据类创建对象并定义校验方法

文件名:views.pyfrom django.shortcuts import render,HttpResponseRedirect

from app01 import account as AccountForm    #导入事先定义的类文件

def login(req):    #定义校验方法

obj = AccountForm.Userinfo(req.POST)    #获取用户提交的数据

if req.method == 'POST':                #如果用户的请求类型是POST

error = ''

if obj.is_valid():            #校验用户提交的数据是否合法

all_data = obj.clean()    #获取用户提交的数据内容(字典形式)

if all_data['username'] == 'test' and all_data['password'] == '123':

return HttpResponseRedirect('/index/')    #验证通过则跳转到URL:/index/

else:

error = obj.errors    #若数据不合法则获取错误信息

return render(req,'account/login.html',{'error':error})    #在页面上显示数据校验失败后的提示信息。

# return render(req,'account/login.html',{'obj':obj}) #这种方式表示把创建的对象返回给前端的HTML页面引用,可生成相应的HTML代码。

return render(req,'account/login.html')    #这种方式表示自定义页面标签及样式,而不使用后台返回的对象来生成HTML代码。

3、在HTML中引用html>

Login

{{ error.username }} 

{{ error.password }}

{{ error.email }}

七、Model(待续)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值