form的主要作用:1.在html中生成表单框架,2.验证数据(实话实说,很简洁,但不实用,灵活性差)

from django.db import models

# Create your models here.

class UserInfo(models.Model):
name = models.CharField(max_length=32,verbose_name='用户名')
email = models.EmailField(max_length=32,verbose_name='邮箱',default='123@live.com')
pwd = models.CharField(max_length=32,verbose_name='密码',default='')
ut = models.ForeignKey(to='UserType',default=1,verbose_name='用户类型',on_delete=models.CASCADE)
def __str__(self):
return self.name class Role(models.Model):
title = models.CharField(max_length=32,verbose_name='用户角色')
users = models.ForeignKey(to='UserInfo',verbose_name='用户职位',on_delete=models.CASCADE) def __str__(self):
return self.title class UserType(models.Model):
title = models.CharField(max_length=32,verbose_name='用户类型') def __str__(self):
return self.title

2. 在model目录下新建forms.py

有两种写法:
a. 定义表单模型
from django import  forms
class UserInfoForm(forms.Form):
ame = forms.CharField(max_length=100, label='用户名')
email = forms.EmailField(label='电子邮件')
pwd = forms.CharField(label='密码', widget=forms.Textarea)

b. 继承model

from django.forms import ModelForm
from myblog.users.models import Users class TestModeForm(ModelForm):
class Meta:
model = UserInfo
fields = "__all__" # 或者fields = ('name','pwd','email')
3.在view视图中 ,做表单验证
def contact(request):
if request.method == 'POST':
form = ContactForm(request.POST)
if form.is_valid():
username = form.cleaned_data['uname']
pwd = form.cleaned_data['pwd']
email = form.cleaned_data['email']return HttpResponseRedirect('/index/')
else:
return render_to_response('contact.html', {'form': form, })

4. 在html页面,代码超简单,这点django做的不错

<form id="your-profile" action="/contact" method="post">
<table class="form-table">
<!--{{ form.as_ul }}--> # 这是第一种写法,在
<ul> 显示表单
<!-- {{ form.as_p }}--> # 这是第二种写法,在<p> 显示表单
<!--{{ form.as_table }}--> # 这是第三种写法,在
<table>显示表单
{% for field in form %} # 这是第四种写法,以循环形式显示表单
{{ field.label_tag }}:{{ field }}
{{ field.errors }}
{% endfor %}
</table>
<p class="submit"><input type="submit" name="submit" id="submit" class="button-primary" value="注册信息"/></p>
</form>

# 注意是记录一下form.as_* 系列的操作是什么意思

Django 中form的用法的更多相关文章

  1. Django中Form验证

    Django的Form主要具有一下几大功能: 生成HTML标签 验证用户数据(显示错误信息) HTML Form提交保留上次提交数据 初始化页面显示内容 一,Form验证 第一种操作:主要是这三个函数 ...

  2. django中form表单的提交:

    一,关于表单: 表单在百度百科的解释:   表单在网页中主要负责数据采集功能.一个表单有三个基本组成部分: 表单标签:这里面包含了处理表单数据所用CGI程序的URL以及数据提交到服务器的方法. 表单域 ...

  3. Django中模板的用法简介

    1. 模板系统的介绍 Django作为一个Web框架,其模板所需的HTML输出静态部分以及动态内容插入 模板由HTML代码和逻辑控制代码构成 Django框架的模板语言的语法格式: {{var_nam ...

  4. Django中Form的基本使用

    from django import forms from django.forms import fields class UserInfo(forms.Form): username = fiel ...

  5. Django 中 form 介绍

    目录 Form介绍 我们之前在HTML页面中利用form表单向后端提交数据时,都会写一些获取用户输入的标签并且用form标签把它们包起来. 与此同时我们在好多场景下都需要对用户的输入做校验,比如校验用 ...

  6. Django中Form组件的使用

    Form介绍 HTML页面中利用form表单向后端提交数据时,都会写一些获取用户输入的标签并且用form标签把它们包起来. 与此同时我们在好多场景下都需要对用户的输入做校验,比如校验用户是否输入,输入 ...

  7. django中form组件

    Form介绍 我们之前在HTML页面中利用form表单向后端提交数据时,都会写一些获取用户输入的标签并且用form标签把它们包起来. 与此同时我们在好多场景下都需要对用户的输入做校验,比如校验用户是否 ...

  8. 如何写django中form的测试用例

    可简可繁, 可插库,可字符, 要测试valid,也要测试invalid, 可用csrf,也可用context. 放一个全面的, 实践中,找一个最优的组合就好. class NewTopicTests( ...

  9. Django中Form的Textarea字段

    开始以为是这个样子: class BlogForm(forms.Form): title    = forms.CharField(required = True) content  = forms. ...

随机推荐

  1. Redis的String、Hash类型命令

    String是最简单的类型,一个Key对应一个Value,string类型是二进制安全的.Redis的string可以包含任何数据,比如jpg图片或者序列化的对象.最大上限是1G字节.    Hash ...

  2. windows2016上如何通过攻击ETERNALBLUE获得meterpreter反弹

    windows2016上如何通过攻击ETERNALBLUE获得meterpreter反弹 译:by  backlion 0x00前言 当微软发布MS17-010漏洞的补丁时,该漏洞影响的范围是从Win ...

  3. https的通信过程

    https的特点 1. https有 握手阶段 和 请求阶段2. 握手阶段 使用 非对称加密算法 请求阶段 使用 对称加密算法3. 保证数据的完整性使用数字签名4. 握手阶段有两组非对称加密,数字证书 ...

  4. bzoj3748 Kwadraty

    Claris 当然是要用来%的 但是,,其他dalao,,比如JL的红太阳commonc.题解能不能稍微加几句话,蒟蒻看不懂啊. 在这里解释一下,Claris的题解.(因为我弱,想了半天才明白,所以觉 ...

  5. bundle adjustment原理(1)转载

    转自菠菜僵尸 http://www.cnblogs.com/shepherd2015/p/5848430.html bundle adjustment原理(1) 那些光束平差的工具,比如SBA.SSB ...

  6. [应用篇]第五篇 JSTL之fmt标签日期和数字格式化

    fmt标签个人用的比较少,但是我还是在这里简单的留一下笔记,也是算是学习了一下!这样方便你们课设的时候能用的上,要学会进步的学习,不要停留! 引入该标签库的方法为: <%@ taglib pre ...

  7. Tensorflow在CIFAR-10构建CNN

    使用Tensorflow在CIFAR-10二进制数据集上构建CNN 觉得有用的话,欢迎一起讨论相互学习~Follow Me 参考文献 Tensorflow机器学习实战指南 利用Tensorflow读取 ...

  8. Eclipse 使用mybatis generator插件自动生成代码

    Eclipse 使用mybatis generator插件自动生成代码 标签: mybatis 2016-12-07 15:10 5247人阅读 评论(0) 收藏 举报 .embody{ paddin ...

  9. 1.redis设计与实现--简单动态字符串

    1.redis没有使用c语言的字符串表示,而是使用更加适合自己的SDS(simple dynamic string),简单动态字符串,结构如下: 2.sys与c字符串的对比: 3.总结: redis采 ...

  10. Python学习笔记(五十)爬虫的自我修养(三)爬取漂亮妹纸图

    import random import urllib from urllib import request import os ################################### ...