首页 > 其他 > 详细

Django的Form表单验证

时间:2020-07-23 22:55:30      阅读:112      评论:0      收藏:0      [点我收藏+]

Form

简短理解:后端提供了一个类:from django import forms,继承此类定义子类。子类中定义和form表单中提交到name名称一样的字段。django就可以帮做验证。验证后返回三个信息:是否通过;所有正确信息;所有错误信息。

例如:

自己写前端html后端Form类进行验证

views.py

from django.shortcuts import render, HttpResponse
from django.views import View

# Create your views here.
from django import forms

# 用来验证前端post提交过来数据的类
class MyFm(forms.Form):
    username = forms.CharField()
    pwd = forms.CharField()
    email = forms.EmailField()

# 请求处理
class FormTest(View):
    def get(self, request):
        return render(request, fm.html)
    def post(self, request):
        # 获取所有数据
        # 每条数据请求的验证
        # 成功显示正确信息
        # 失败,给出错误提示
        # 验证时将request.POST 传递给验证类,实例化验证对象
        verify_obj = MyFm(request.POST)
        # 开始验证,返回True/False
        verify_result = verify_obj.is_valid()
        return HttpResponse(verify_result)

对应html

<form action="/formtest/" method="post"> {% csrf_token %} <input type="text" placeholder="用户名" name="username"> <input type="password" placeholder="密码" name="pwd"> <input type="text" placeholder="邮箱" name="email"> <input type="submit" value="提交"> </form>

Form对象验证POST请求返回值详解:

 verify_obj = MyFm(request.POST)

 


 

django中的Form一般有两种功能:

  • 生成html标签
  • 验证用户输入内容

Form 对象生成html标签写法

views.py

from django.shortcuts import render, HttpResponse
from django.views import View

# Create your views here.
from django import forms

# 用来验证前端post提交过来数据的类
class MyFm(forms.Form):
    username = forms.CharField()
    pwd = forms.CharField()
    email = forms.EmailField()

# 请求处理
class FormTest(View):
    def get(self, request):
        verify_obj = MyFm()
        return render(request, fm.html, {verify_obj:verify_obj})

fm.html

    <form action="/formtest/" method="post">
        {% csrf_token %}
        <p>{{ verify_obj.username }} {{ verify_obj.errors.username.0 }}</p>
        <p>{{ verify_obj.pwd }} {{ verify_obj.errors.pwd.0 }}</p>
        <p>{{ verify_obj.email }} {{ verify_obj.errors.email.0 }}</p>
        <input type="submit" value="提交">
    </form>

django渲染后html

    <form action="/formtest/" method="post">
        <input type="hidden" name="csrfmiddlewaretoken" value="WhvU9JWIRIuk8Mjq0JJ1xCnId1ek6Rbee8kVgzyA0oHhUSIK3qZPu76opft70DPa">
        <p><input type="text" name="username" required id="id_username"> </p>
        <p><input type="text" name="pwd" required id="id_pwd"> </p>
        <p><input type="email" name="email" required id="id_email"> </p>
        <input type="submit" value="提交">
    </form>

 

Django的Form表单验证

原文:https://www.cnblogs.com/zhangmingda/p/13368361.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!