• django表单 用表单验证数据是否合法


    作用:

    1.  渲染表单模板。
    2. 表单验证数据是否合法。

    django中表单使用流程:

    1.    像模版一样。首先我们要先定义一个表单类,继承自django.forms.Form。
      #新建一个forms.py.
      from
      django import forms class MessageBoarForm(forms.Form): title = forms.CharField(max_length=100,min_length=2,label='标题',error_messages={'min_lenth':'至少要写一个字符'}) content = forms.CharField(widget=forms.Textarea,label='内容') email = forms.EmailField(label='邮箱') reply = forms.BooleanField(required=False,label='是否回复') #label时定义网页上显示的内容,error_messages是定义如果输入错误后提示的内容
    2. 接下来就是在view视图里,根据get或post请求操作。
      from django.shortcuts import render
      from django.shortcuts import HttpResponse
      from django.views.generic import View
      from .forms import MessageBoarForm
      from django.forms.utils import ErrorDict
      # Create your views here.
      
      class IndexView(View):
          def get(self,request):
              form = MessageBoarForm() #获取表单内容 需引入
              return render(request,'index.html',context={
                  'form':form
              })
          def post(self,request):
              form = MessageBoarForm(request.POST)
              if form.is_valid():     #用post方法在网页上输入内容  提交时
                  title = form.cleaned_data.get('title')    #clean_data用来获取验证成功后(合法)的
                  content= form.cleaned_data.get('content')
                  email = form.cleaned_data.get('email')
                  reply = form.cleaned_data.get('reply')
                  print('$'*30)
                  print(title)
                  print(content)
                  print(email)
                  print(reply)
                  return HttpResponse('success')
              else:             #如果不符合定义的需求,即输入不合法时
                  print(form.errors.get_json_data())  #获取输入时所显示的
                  return HttpResponse('failed')
    3. 在使用GET请求时,我们传递了一个form模板,那么以后就可以使用form来生成一个表单的html代码,使用post请求时,我们根据前端上传来的数据,构建了一个表单,来验证是否合法,如果通过我们可以用clean_data来获取相应的数据。
      <form action="" method="post">
          <table>                 # table用来美化模板 #}
              {{ form.as_table }}   {# form表单里所定义的内容 #}
              <tr>
                  <td></td>
                  <td><input type="submit" value="提交"></td>
              </tr>
          </table>
      </form>

    用表单验证数据是否合法:

    1.CharField:(用来接收文本)

    • 参数:
    1. max_length:这个字段的最大长度。
    2. min_length:这个字段的最小长度。
    3. required:这个字段是否为必须的,默认为是
    4. error_messages:再某个条件验证失败时给的错误信息

    2.EmailField(用来接受邮件,会自动验证邮件是否合法)

    from django import forms
    class MyForm(forms.Form):
        email = forms.EmailField(error_messages={"invalid":"请输入正确的邮箱"})

    视图里写:

    class IndexView(View):
        def get(self,request):
            return render(request,'index.html')
        def post(self,request):
            form = MyForm(request.POST)
            if form.is_valid():
                form = form.cleaned_data.get('email')
                return HttpResponse('success')
            else:
                print(form.errors.get_json_data)
                return HttpResponse('shibai')

    3.FloatField(接受浮点类型)

    • 参数
    1. max_value:最大的值
    2. min_value:最小的值
    3. error_messages:验证失败显示的信息。

    4.IntegerField(接收整形,并且验证通过后,会将这个字段的值转换成整型。)

    • 参数
    1. max_value:最大的值
    2. min_value:最小的值。

    5.URLField:(接收url格式的字符串)

  • 相关阅读:
    Java8新特性一览表
    FastDFS 单机部署指南
    EntityManager的Clear方法的使用
    元类
    python中的函数的分类
    python中的多任务
    正则表达式
    GIL和copy
    文件管理
    logging日志模块配置
  • 原文地址:https://www.cnblogs.com/nihao2/p/12268574.html
Copyright © 2020-2023  润新知