Django重新整理3
Forms组件
1.在models.py中我们建立一个新的表关系:
class UserInfo(models.Model):
user=models.CharField(max_length=32)
pwd=models.CharField(max_length=32)
email=models.CharField(max_length=32)
2.进行数据的迁移
3.路由和视图函数
4.
from app01.models import UserInfo
def reg(request):
if request.method == "POST":
form = UserForm(request.POST)
#校验数据
if form.is_valid():
print(form.cleaned_data)
UserInfo.objects.create(**form.cleaned_data)
return HttpResponse("OK")
else:
errors=form.errors
print(form.errors.get('__all__'))
if form.errors.get("__all__"):
g_errors = form.errors.get('__all__')[0]
return render(request,"reg.html",locals()) else:
form=UserForm()
return render(request,"reg.html",locals()) #在views中直接创建UserForm表
from django.forms import widgets class UserForm(forms.Form):
msg={"required":"该字段不能为空"}
user=forms.CharField(min_length=5,
label="用户名",
error_messages=msg,
widget=widgets.TextInput(attrs={"class":"form-control"})
)
pwd=forms.CharField(error_messages=msg,
label="密码",
min_length=5,
widget=widgets.PasswordInput(attrs={"class":"form-control"})
)
r_pwd = forms.CharField(error_messages=msg,
min_length=5,
label="确认密码",
widget=widgets.PasswordInput(attrs={"class": "form-control"})
)
email=forms.EmailField(error_messages={"invalid":"邮箱格式错误"},
label="邮箱",
widget=widgets.EmailInput(attrs={"class":"form-control"})
)
#定义钩子
def clean_user(self):
val=self.cleaned_data.get("user")
ret=UserInfo.objects.filter(user=val).first()
if not ret:
return val
else:
raise ValidationError("用户名已存在!") def clean_pwd(self):
val=self.cleaned_data.get("pwd")
if val.isdigit():
raise ValidationError("密码不能是纯数字!")
else:
return val
def clean(self):
pwd=self.cleaned_data.get("pwd")
r_pwd=self.cleaned_data.get("r_pwd") if pwd and r_pwd:
if pwd==r_pwd:
return self.cleaned_data
else:
raise ValidationError("两次密码不一致!")
else:
return self.cleaned_data
Django重新整理3的更多相关文章
- Django重新整理
1.母版的继承 #base<!DOCTYPE html> <html lang="zh-CN"> <head> <meta charset ...
- Django知识点整理
什么是web框架 框架,即framework,特指为解决一个开放性问题而设计的具有一定约束性的支撑结构,使用框架可以帮你快速开发特定的系统,简单地说,就是你用别人搭建好的舞台来做表演. web应用 访 ...
- django笔记整理
Django复习: MTV模型: manager启动服务→urls找到路径→(找到views视图函数或者做路由分发)→视图函数处理相关逻辑,返回一个模板或者是字符串: ---------------- ...
- Django重新整理4---ModelForm-set(批量处理数据)
1. #引用modelformset from django.forms.models import modelformset_factory #必须继承forms.ModelForm! class ...
- Django重新整理2
Auth认证: 1.分配路由和创建视图函数 2.在视图函数中引用Django为我们提供的用户认证组建Auth 3.直接进行判断: def login(request): if request.meth ...
- Django ORM整理
字段类型 # 自增长 Auto = models.AutoField() BigAuto = models.BigAutoField() # 二进制 Binary = models.BinaryFie ...
- Django(一) 安装使用基础
大纲 安装Django 1.创建Django工程 2.创建Django app 3.写一个简单的登录注册相应页面 4.获取用户请求信息并处理 5.前后端交互 6.Django 请求 生命周期 跳转到 ...
- python学习博客地址集合。。。
python学习博客地址集合... 老师讲课博客目录 http://www.bootcdn.cn/bootstrap/ bootstrap cdn在线地址 http://www.cnblogs. ...
- 老男孩老师的博客地址 - 转自devops1992
害怕他那天不让人看了,所以我就复制一份到我自己的博客里. http://www.bootcdn.cn/bootstrap/ bootstrap cdn在线地址 http://www.cnblogs. ...
随机推荐
- spark sql建表的异常
在使用spark sql创建表的时候提示如下错误: missing EOF at 'from' near ')' 可以看下你的建表语句中是不是create external table .... ...
- GetResponse() 基础连接已经关闭:服务器关闭了本应保持活动状态的连接
1.原因: (1)KeepAlive默认为true,与internet保持持续连接 ,服务器关闭了连接,使用HttpWebResponse.GetResponse()出错 (2)HttpWebRequ ...
- UIColor
UIColor.CIColor 和 CGColor 出现在不同的类库里面,其实就是颜色存储方式不同而已,比如 999 可以用 10 进制.2 进制.16 进制等存储.三者之间都是能够方便转换的,特别是 ...
- 安卓手机牛逼软件Termux中安装Archlinux,安装Jdk
说出来你可能不信,手机上居然装了两个linux系统,和真实的linux有些许些差别. 首先安装了Termux以后你发现,好多linux常用功能都有,什么Pyhton,gcc,g++,ruby,Php, ...
- memcache_helper
class memcache_helper extends memcache { private $host = "127.0.0.1"; private $port = &quo ...
- 洛谷 P1036 选数
嗯.... 这种类型的题在新手村出现还是比较正常的, 但是不知道为什么它的分类竟然是过程函数与递归!!!(难道这不是一个深搜题吗??? 好吧这就是一道深搜题,所以千万别被误导... 先看一下题目: 题 ...
- github的使用 sourceTree
http://www.cnblogs.com/Jenaral/p/5655958.html
- 2-28 if...else
- apache htaccess 一个 例子
<Files ~ "^.(htaccess|htpasswd)$"> deny from all </Files> DirectoryIndex index ...
- python 根据 数据库创建java 文件
#coding=utf-8 import pymysql import os import re # 包全路径 packagepath=r'E:\idea工程\dc-exam\dc-exam\src\ ...