Django Form验证

Form组件
- 对用户请求的验证
- AJax
- Form
- 生成HTML代码
-
a. 创建一个类Fr
b. 类中创建字段(包含正则表达式)

c. GET
    obj = Fr()
    obj.user = > 自动生成HTML
    
d. POST
    obj = Fr(request.POST)
    if obj.is_valid():
        obj.cleaned_data
    else:
        obj.errors
        return .... obj

views.py

from django.shortcuts import render,HttpResponse,redirect
from django import forms
from django.forms import fields

#创建类from验证
class F1Form(forms.Form):
    user=fields.CharField(
        max_length=18,min_length=6,required=True,
        error_messages={'required':'用户名不能为空','max_length':'太长了','min_length':'太短了'}) #不能为空
    pwd=fields.CharField(min_length=8,required=True,
        error_messages={'required': '密码不能为空', 'min_length': '太短了'} )
    age=fields.IntegerField(required=True,
        error_messages={'required': '年龄不能为空', 'invalid': '必须为数字'})
    email=fields.EmailField(required=True,min_length=8,
        error_messages = {'required': '邮箱不能为空', 'invalid': '邮箱格式错误'})


def f1(request):
    if request.method=='GET':
        obj=F1Form()
        return render(request,'f1.html',{'obj':obj})
    else:
        obj=F1Form(request.POST)   #取数据验证
        if obj.is_valid():   #是否验证成功
            #用户提交的数据
            print('成功',obj.cleaned_data)  #拿到字典
            return redirect('http://www.xiaohuar.com')
        else:
            print('失败',obj.errors)  #错误信息
            return render(request, 'f1.html',{"obj":obj})

html文件
f1.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
    <form id="fm" action="/f1" method="POST">
		//{{ obj.user }} 生成HTML对象
        <p>用户名:{{ obj.user }}{{ obj.errors.user.0 }}</p>
        <p>密 码:{{ obj.pwd }}{{ obj.errors.pwd.0 }}</p>
        <p>年 龄:{{ obj.age }}{{ obj.errors.age.0 }}</p>
        <p>邮箱地址:{{ obj.email }}{{ obj.errors.email.0 }}</p>
        <input type="submit" value="提交" />
    </form>

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值