Django==>Form组件

作者:无名 - 其它综合 -

django ==gt; form 组件

目录:

1.基本使用

2.form中字段和插件

3.自定义验证规则

4.动态加载数据到form中

action:

1.基本使用

django 中的form组件有一下功能:

  1.生成html标签

  2.验证用户数据(显示错误信息)

  3.html form 提交保留上次提交数据

  4.初始化页面显示内容

要使用 form 类,首先需要创建这个类,方法如下:

from django.forms import form
from django.forms import widgets  #插件 可新增属性
from django.forms import fields   #字段

class myform(form):  #继承form类
    user = fields.charfield(
        widget = widgets.textinput(attrs={‘id‘:‘i1‘,‘class‘:‘c1‘})
       #定义生成的html标签类型是input的text框,attrs:添加属性 id 为i1, class为:c1
)

    gender = fields.choicefields(
        choices = ((1,‘男‘),(2,‘女‘),), #定义下来框的选型,元祖第一个值为option的value值,后面为html里面的值
        initial = 2,  #默认选中第二个option
        widget = widgets.radioselect # 插件表现形式为单选按钮
)

    city = fields.charfield(
        initial = 2, # 初始值2
        widget = widgets.select(choices=((1,‘上海‘),(2,‘北京‘),)) #插件表现形式为下来框)

    pwd = fields.charfield(
        widget = widgets.passwordinput(attrs={‘class‘:‘c1‘}, render_value=true)
        #插件形式为密码输入框
)

之后在views视图中定义:

from django.shortcuts import render,redirect
from .forms import myform

def index(request):
    if request.method =="get":
        obj = myform() #没有值 ,在页面上渲染form中的标签
        return render(request,"index.html",{"form":obj})
    elif request.method == "post":
        obj = myform(request.post,request.files) #将post提交出来的数据作为参数传递给自定义的form类
        if obj.is_valid(): # obj.is_valid() 返回一个bool值,如果检查通过返回true,否则返回 false。
            values = obj.clean()  #拿到处理后的所有数据,键值对的形式
            print(values)
        else:
            errors = obj.errors #拿到未通过的错误信息,里面封装的都是对象
            print(errors)
        return render(request,"index.html",{"form":obj}
    else:
        return redirect("http://www.baidu.com")

模板定义:

lt;form action="/" method="post" enctype="multipart/form-data"gt;
    lt;pgt;{{form.user}} {{form.errors.user.0}}lt;pgt;  
    # {{form.user}} 生成标签, {{form.user.errors}} 生成第一个错误信息

    lt;pgt;{{form.gender}} {{form.errors.gender.0}} lt;/pgt;
    lt;pgt;{{ form.city }} {{ form.errors.city.0 }}lt;/pgt;
    lt;pgt;{{ form.pwd }} {{ form.errors.pwd.0 }}lt;/pgt;
lt;/formgt;

其他相关的标签

lt;form method="post" enctype="multipart/form-data"gt;
        {% csrf_token %}
            {{ form.xxoo.label }}
            {{ form.xxoo.id_for_label }}
            {{ form.xxoo.label_tag }}
            {{ form.xxoo.errors }}
            lt;pgt;{{ form.user }} {{ form.user.errors }}lt;/pgt;
            lt;input type="submit" /gt;
    lt;/formgt;

2.form中字段和插件

3.自定义验证规则

4.动态加载数据到form中

django ==gt; form 组件

原文地址:http://www.cnblogs.com/zhongbokun/p/8035618.html

IT人知识库 原文链接:http://www.itpeo.net/9999/4539853.html





标签 组件

AndroidStudio解决ADB检测不到手机导致无法连接的问题

adb的全称是android debug bridge,是用来管理模拟器和真机的通用调试工具。   开usb调试 ...

iOS的match函数

1.求余 extern double fmod(double,double); fmod(10.2,3) =1.2 ...

.Net基础之3——运算符

(3)convert类型转换 1、类型如果相兼容的两个变量,可以使用自动类型转换或者显示类型转换。 但是如果两个类型的变 ...

c++string去除首尾空格、\n、\r、\t

string s = " test "; size_t n = s.find_last_not ...

安装使用Hadoop遇到的一些问题

安装完后却不能运行hadoop,仔细查看日志信息,hadoop记录了详尽的日志信息,日志文件保存在logs文件夹内。 ...

PHP代码规范之PSR-1

1.概述 1. 必须使用lt;php gt; 或是lt;=gt;这两种标签 2. php代码中必须使用utf-8 wit ...

python3之深浅copy对比

一、赋值对比1、列表l1=[1,2,3] l2=l1 l1.append(#39;a#39;) print(l1,l2) ...

JSP基础--九大内置对象

jsp九大内置对象 object findattribute(string name):依次在page、request ...

Markdown:Syntax

markdown: syntax main basics syntax license ...

docker部署nginx服务器

1,下载nginx镜像 docker pull nginx 2,启动 docker run --name runo ...

「mysql优化专题」详解引擎(InnoDB,MyISAM)的内存优化攻略?(9)

注意:以下都是在mysql目录下的my.ini文件中改写(技术文)。 一、innodb内存优化 innodb用一块内存区 ...

新媒体的冲击,传统企业的出路在哪?

新媒体冲击,传统企业的出路在哪? 在二零壹伍克强总理提出我们进入互联网+时代起,我国正式宣布进入后互联网时代,在互联网新 ...

西南seo大神理解的互联网+

“农村将成为互联网领域的‘沃土’,而非信息时代失联的‘孤岛’。大力发展农村互联网,打造现代智慧农村。在农村产业结构调整、 ...

[poj]3281Dining

原题 题目大意 n头奶牛,只能吃某种食物和饮料(而且只能吃特定的一份) 一种食物被一头牛吃了之后,其余牛就不能吃了 第一 ...

0x5A~0x5B

目录 0x5a~0x5b 0x5a 斜率优化 ...

安全的企业邮箱如何选择

目前市场上能说得上品牌的企业邮箱超过30个,如果计算上没有品牌的,或者是主营业务是网站建设也在做企业邮箱的,可以用多如牛 ...

springboot学习总结(三)RestTemplate用法

(一)配置类 package com.vincent.demo.config; import org.springf ...

C#Emgu类型转换

bitmap:   bitmap位图文件,是windows标准格式,也是.net主要的图像存储格式。   bitmap ...

BS4库详解

1 from bs4 import beautifulsoup 2 3 4 5 6 ...

微信小程序(五)

javascript:   javascript 是一种轻量的,解释型的,面对对象的头等函数语言,是一种动态的基于原型和 ...