form组件+cookie+session总结
1、forms 组件
-数据校验功能
1、定义
-新建一个py文件
-导入from django import forms
-写一个类继承 forms.Form
-把你需要校验的(字段的条件)属性写到类里面
-比如:name = forms.CharField(max_length=8,min_length=3,label="用户名",
error_messages={"max_length":"超出范围",
"min_length":"太短了","required":"该项不能为空"},)
-局部钩子函数
-def clean_name(self):
-name=self.cleaned_data.get("name")
if name.startswith("sb")
-raise ValidationError("不能以sb开头")
else:
#切记,如果正确,一定要返回name
return name
-全局钩子函数
-使用ValidationError需导入
-from django.core.exceptions import ValidationError
-def clean(self):
-pwd = self.cleaned_data.get("pwd")
-re_pwd = self.cleaned_data.get("re_pwd")
-if pwd ==re_pwd:
-# 正确,返回cleaned_data
-return None
-else:
#校验不通过:raise ValidationError('两次密码不一致'),错误放到__all__
-return ValidationError("两次密码不一致")
2 views中使用:
def test(request):
if request.method=='GET':
regform=RegForm()
else:
regform=RegForm(request.POST)
if regform.is_valid():
#一般情况需要存数据库了
pass
else:
error_all=regform.errors.get('__all__')
# error_all=regform.errors['__all__']
return render(request,'register.html',locals())
3 模板中使用
<form action="">
{% for foo in regform %}
{{ foo.label }}:{{ foo }} <span>{{ foo.errors.0 }}</span>
{% endfor %}
<input type="submit"> <span>{{ error_all }}</span>
</form>
2、cookie和session
-1、cookie:由服务器产生,存放在客户端浏览器上的键值对
-2、django中使用:
-设置值:
obj = HttpResponse(“ok”)
obj.set.cookie("key","value")
return obj
-取值:
request.COOKIES.get("key")
request.COOKIES["key"]
-删除值:
obj = HttpResponse(“ok”)
obj.datele_cookie("key")
-3、session:保存在服务器上的键值对
-设置值:
-request.session["key"]="value"
干了的事:
1、生成一个随机字符串:dasfjdfks
2、在django——session表中存入dasfjdfks {"key":"value"} 超市时间
3、把sessionid:dasfjdfks写入到cookie
-取值:
-request.session.get("key")
-删除值:
-request.session.flush():全删除
-request.session.detele():只删除数据库
-其他配置参数:
-了解
3、Auth模块
1、Django自带的用户认证模块,可以快速实现都登录,注销,修改密码....
#from django.contrib.auth.models import AbstractUser
2、扩展auth表,需要继AbstractUser
3、一定不要忘记在setting中配置:AUTH_USER_MODEL = "app01.UserInfo"
-# 指定以后再作用户认证,都用这个表
4、它提供的功能:
-from django.contrib.auth import authenticate,login,logout
-用户认证:authenticate(username=lqz,password=123)
-用户一旦认证通过,调用login(request,user),以后从reuqest.user 中就能取出当前登录人对象
-退出:logout(request),request.user就是匿名用户
-校验是否通过认证(是否登录):request.user.is_authenticated()
-创建普通用户
-models.UserInfo.objects.create_user(username=lqz)
-创建超级用户
-models.UserInfo.objects.create_superuser(username=lqz)
-修改密码
-用user对象.set_password(新密码)
-一定要记住sava
-校验密码
-check_password(password)
-登录认证装饰器
# @login_required(login_url='/login/')
-login_required(login_uel="/login/")
is_staff: 用户是否拥有网站管理权限:create_superuser: is_staff 是 1
id_active: 是否允许用户登录,设置为False,可以在不删除用户的前提下禁止用户登录。
form组件+cookie+session总结的更多相关文章
- day09 Django: 组件cookie session
day09 Django: 组件cookie session 一.cookie和session都是会话跟踪技术 1.什么是会话 可以理解为客户端和服务端之间的一次会 ...
- Form组件 cookie和session
django form组件 1.渲染标签 2.校验数据 3.展示信息 第一步需要一个form类 from django import forms class MyForm(forms.Form): n ...
- python 全栈开发,Day76(Django组件-cookie,session)
昨日内容回顾 1 json 轻量级的数据交换格式 在python 序列化方法:json.dumps() 反序列化方法:json.loads() 在JS中: 序列化方法:JSON.stringfy() ...
- Django组件-cookie,session
昨日内容回顾: json 轻量级的数据交换格式 在python 序列化方法:json.dumps() 反序列化方法:json.loads() 在JS中: 序列化方法:JSON.stringfy() 反 ...
- django form组件 cookies,session
django form组件 渲染标签 就是组件里面的字段在前端展示叫做渲染标签 校验数据 用户输入的数据提交给后端组件叫做校验数据 forms组件中定义的字段都是必须传值的(required=Tr ...
- Django--form组件cookie/session
Field required=True, 是否允许为空 widget=None, HTML插件 label=None, 用于生成Label标签或显示内容 initial=None, 初始值 help_ ...
- django之forms组件,cookie&session
forms组件 先自己实现注册功能,并且对用户输入的信息加限制条件如果用户输入的信息不符合条件,前端展示报错信息 from django.shortcuts import render,HttpRes ...
- Web框架之Django_08 重要组件(form组件、cookie和session组件)
摘要: form组件 cookie组件 session组件 一.form组件 form介绍我们之前在html页面中利用form表单向后端提交数据时候,都需要对用户的输入进行校验,比如校验用户是否输入正 ...
- Ajax cookie session form组件
. Cookie是什么 保存在浏览器端的键值对 为什么要有Cookie? 因为HTTP请求是无状态的 Cookie的原理? 服务端可以在返回响应的时候 做手脚 在浏览器上写入键值对(Cookie) 浏 ...
随机推荐
- Vcomputer简介
1.Vcompter存储程序式计算机虚拟机软件简介 Vcompter存储程序式计算机虚拟机软件的文件名为comp_alpha(一般要先安装java运行环境,然后双击该软件即可运行),该软件是桂林电 ...
- C# 连接/查询Jira
查询jira数据,如果是前端,可以按照如下格式直接访问,获取数据 http://jira.company.com/rest/api/2/search?jql=project = REM AND res ...
- CentOS下MySQL的安装
MySQL数据库是一款比较常用的数据库,大家在练习安装时,可能会遇到各种各样的问题,请大家参考在CentOS系统下MySQL数据库的安装方式.如有任何问题,欢迎留言,本人随时解答. MySQL安装步骤 ...
- 浅谈C#中的for循环与foreach循环
for循环和foreach循环其实可以算得上是从属关系的,即foreach循环是可以转化成for循环,但是for循环不一定能转换成foreach循环. 下面简单介绍一下两种循环: 1.for循环 代码 ...
- Dynamics 365 启用跟踪及读取跟踪文件工具
微软动态CRM专家罗勇 ,回复315或者20190313可方便获取本文,同时可以在第一间得到我发布的最新博文信息,follow me!我的网站是 www.luoyong.me . 当根据错误提示排查问 ...
- 一、Snapman多人协作电子表格之——Snapman自我介绍
一.Snapman系统介绍 Snapman是一个真正现代化的电子表格系统:QQ是即时通讯软件,那Snapman就是一个即时工作系统. 微软CEO纳德拉说:Excel才是微软最伟大的产品,Excel将所 ...
- dotnet core如何编译exe
dotnet core 有一个转变,他用dll格式来代替exe作为通用执行格式,然后要命令行dotnet yourApp.dll 来运行程序.为了提高逼格,双击可以运行,可以采用以下方案: 方案一 用 ...
- 从PM到非洲酋长,得人心者得天下
说正事之前,先唠10块钱儿的…… 偶然看到房一波的故事,这个PM了不得了! 房兄是山东电建三公司,派驻到尼日利亚建设燃机电站的PM.本来在非洲,这种“万丈高楼平地起”的项目是很好干的,可是房兄却遭遇了 ...
- MySQL 基础知识梳理学习(五)----半同步复制
1.半同步复制的特征 (1)从库会在连接到主库时告诉主库,它是不是配置了半同步. (2)如果半同步复制在主库端是开启了的,并且至少有一个半同步复制的从节点,那么此时主库的事务线程在提交时会被阻塞并等待 ...
- ubuntu如何安装chromium浏览器并设置成中文版
在Ubuntu上使用APT安装Chromium有3种方法: 1.在Ubuntu软件中心输入chromium,然后在结果中选择安装即可. 2.在新立得软件包管理器中输入chromium,然后标记安装即可 ...