美文网首页
django_Form组件基本用法

django_Form组件基本用法

作者: 两点半的杂货铺 | 来源:发表于2018-02-05 11:17 被阅读118次

一、Form组件初识

  • 引用类from django import forms
  • 继承forms.Form
  • 继承后里面的变量名和html标签name属性,一一对应关系
class FM(forms.Form):
    user = forms.CharField()
    pwd = forms.CharField()
    email = forms.EmailField()
  • view中方法使用,创建对象obj = FM(request.POST),判断是否为真Valid = obj.is_valid(),获取对象全部内容obj.cleaned_data,获取展示页面的提示信息obj.errors
def login(request):
    if request.method == "GET":
        return render(request,"login.html")
    elif request.method == "POST":
        obj = FM(request.POST)
        Valid = obj.is_valid()
        if Valid:
            print(obj.cleaned_data)
        else:
            #print(obj.errors.as_json)
            erro_msg = obj.errors
            return render(request,'login.html',{"erro":erro_msg})
  • 其中obj.errors.as_json打印的格式为
<bound method ErrorDict.as_json of {'pwd': ['密码不能为空'], 'email': ['邮箱不能为空'], 'user': ['用户名不能为空']}>
  • 如何让默认提示变成英文
  • error_messages 错误信息的属性
  • required是否为空
  • max_length 最长
  • min_length 最短
  • invalid 格式
    user = forms.CharField(error_messages={'required':'用户名不能为空'})
    pwd = forms.CharField(
        max_length=12,
        min_length=6,
        error_messages={'required':'密码不能为空','max_length':'密码长度小于12','min_length':'密码长度大于6'}
    )
    email = forms.EmailField(error_messages={'required':'邮箱不能为空','invalid' :'邮箱格式不对'})

view 层的代码

<form action="/login/" method="post">
        {% csrf_token %}
        <p><input name="user" type="text">{{ erro.user.0 }}</p>
        <p><input name="pwd" type="password">{{ erro.pwd.0 }}</p>
        <p><input name="email" type="text">{{ erro.email.0 }}</p>
        <input type="submit">

二、Form组件升级

from django.shortcuts import render,redirect
from django import forms
# Create your views here.
class FM(forms.Form):
    user = forms.CharField(error_messages={'required':'用户名不能为空'})
    pwd = forms.CharField(
        max_length=12,
        min_length=6,
        error_messages={'required':'密码不能为空','max_length':'密码长度小于12','min_length':'密码长度大于6'}
    )
    email = forms.EmailField(error_messages={'required':'邮箱不能为空','invalid' :'邮箱格式不对'})
def login(request):
    if request.method == "GET":
        obj = FM()
        return render(request,"login.html",{"obj":obj})
    elif request.method == "POST":
        obj = FM(request.POST)
        Valid = obj.is_valid()
        if Valid:
            print(obj.cleaned_data)
        else:
            return render(request,'login.html',{"obj":obj})

html

<form action="/login/" method="post">
        {% csrf_token %}
        <p>{{ obj.user }}{{ obj.erros.user.0 }}</p>
        <p>{{ obj.pwd }}{{ obj.erros.pwd.0 }}</p>
        <p>{{ obj.email }}{{ obj.erros.email.0 }}</p>
        <input type="submit">
    </form>

其中在html页面中ul展示{{obj.as_ul}},p标签展示{{obj.as_p}}
table展示

<table>
        {{obj.as_table}
</table>

相关文章

  • django_Form组件基本用法

    一、Form组件初识 引用类from django import forms 继承forms.Form 继承后里面...

  • 高阶组件

    Hoc(高阶组件) 概念 hoc基本用法 hoc链式调用 hoc装饰器用法 概念 概念: 接受组件, 返回新组件,...

  • Router路由

    基本用法: 详细用法 在脚手架组件中使用路由: main.js:

  • ReactNative网络fetch数据并展示在listview

    看完全文并且do it你将收获: fetch获取网络数据的基本用法ListView的基本用法RN中组件的生命周期(...

  • vue中ref的作用

    基本用法 1 本页面获取dom元素 2 获取子组件中的data子组件 父组件 3 调用子组件中的方法子组件 父组件...

  • 【Vue】组件 - 插槽默认值

    基础知识 【Vue】组件 - 插槽的基本用法 【Vue】组件 - 多个插槽 子组件里,在 里写上默认的内容。 在父...

  • 插槽的使用

    1. 插槽和组件的区别 插槽和组件的用法基本相同,主要的区别是父组件可以在插槽中自定义子组件的DOM 2.基本使用...

  • SimpleLog文档

    simpleLog 基于封装,基本的用法如下: 1. 用法: 在页面写入组件,给其指定相应的...

  • 深入浅析Vue中的Prop

    Prop 基本用法 Prop的基本用法很简单,只需要在子组件的Vue实例中定义该属性并把值设为目标属性的数组即可 ...

  • useState 的原理及模拟实现 —— React Hooks

    基本用法 原理 按照 React 16.8.0 版本之前的机制,我们知道如果某个组件是函数组件,则这个 funct...

网友评论

      本文标题:django_Form组件基本用法

      本文链接:https://www.haomeiwen.com/subject/cyjbzxtx.html