Django Form组件验证功能

Django Form验证

前端:form表单

后台:创建form类,当请求到来时,先匹配,匹配出正确和错误信息

 

实例:

1.创建Django项目

2.创建app, 名称:'formtest'

3.urls.py

from django.contrib import admin
from django.urls import path
from formTest import views as fm

urlpatterns = [
    path('admin/', admin.site.urls),
    path('formtest.html', fm.formtest ),
]

4.formtest/views.py

from django.shortcuts import render, HttpResponse

from django.forms import Form, fields

class MyForm(Form):
    user = fields.CharField(
     label='用户名', min_length
=6, max_length=32, required=True, error_messages={ 'min_length': '用户名最少6个字符', 'max_length': '用户名最多32个字符', 'required': '用户名不能为空' } ) age = fields.IntegerField(
     label='年龄', max_value
=200, min_value=0, required=True, error_messages={ 'max_value': '年龄超过限制', 'min_value': '年龄低于限制', 'invalid': '必须为整数类型', 'required': '年龄不能为空' } ) pwd = fields.CharField(
     label='密码', min_length
=8, required=True, error_messages={ 'min_length': '至少8个字符', 'required': '密码不能为空' } ) email = fields.EmailField(
     label='邮箱', required
=True, error_messages={ 'required': '邮箱不能为空', 'invalid': '邮箱格式错误' } ) phone = fields.IntegerField(
     label='手机号', required
=True, error_messages={ 'required': '手机号不能为空', 'invalid': '必须为整数类型' } ) def formtest(request): if request.method == 'GET': obj = MyForm() return render(request, 'formtest.html', {'obj': obj}) elif request.method == 'POST': obj = MyForm(request.POST) if obj.is_valid():
       print(obj.cleaned_data)
return HttpResponse('验证成功') else: return render(request, 'formtest.html', {'obj': obj})

5.前端 /templates/formtest.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
    <form action="/formtest.html" method="POST">
        <p>{{obj.user.label}}{{ obj.user }}{{ obj.errors.user.0 }}</p>
        <p>{{obj.age.label}}{{ obj.age }}{{ obj.errors.age.0 }}</p>
        <p>{{obj.pwd.label}}{{ obj.pwd }}{{ obj.errors.pwd.0 }}</p>
        <p>{{obj.email.label}}{{ obj.email }}{{ obj.errors.email.0 }}</p>
        <p>{{obj.phone.label}}{{ obj.phone }}{{ obj.errors.phone.0 }}</p>
        <p><input type="submit" value="提交"></p>
    </form>
</body>
</html>

 

posted on 2019-02-22 19:11  KK_GG  阅读(133)  评论(0)    收藏  举报