Django重新整理2
Auth认证:
1.分配路由和创建视图函数
2.在视图函数中引用Django为我们提供的用户认证组建Auth
3.直接进行判断:
def login(request):
if request.method =='GET':
return render(request,'login.html')
else:
user = request.POST.get('user')
pwd= request.POST.get('pwd')
auth_obj=auth.authenticate(username=user,password=pwd)
if auth_obj:
#保存用户信息
auth.login(request,user_obj)
return redirect("/index/")
else:
return redirect("/login/") #login.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<form action="" method="post">
{% csrf_token %}
<input type="text" name="uer">
<input type="password" name="pwd">
<input type="submit">
</form>
</body>
</html> #index.html
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<title>Title</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
</head>
<body>
当前用户:{{ name }}
当前用户:{{ request.user.username }}
<a href="/logout/">注销</a>
<a href="/set_password/">修改密码</a>
</body>
</html>
session的设置
1.分配路由和创建视图函数
2.
Django默认支持Session,并且默认是将Session数据存储在数据库中,即:django_session 表中。 def login_session(request):
if request.method=='GET':
return render(request,'login.html')
else:
user=request.POST.get('uer')
pwd=request.POST.get('pwd')
print(user,pwd)
user_obj=UserInfo.objects.filter(user=user,pwd=pwd).first()
if user_obj: # 用户认证信息存储
request.session["susername"]=user
request.session["slogin"]=True '''
if request.COOKIE.get("sessionid"):
random_str=request.COOKIE.get("sessionid")
在django-seesion表中过滤session-key=random_str的记录进行update else: 1 生成一个随机字符串 23423hkjsf890234sd
2 向django-session表中插入记录
session-key session-data
23423hkjsf890234sd {"susername":"egon","slogin":True} 3 响应set_cookie : {"sessionid":23423hkjsf890234sd} '''
return redirect("/index_session/") else:
return HttpResponse('error') #取session
def index_session(request): '''
request.session
1 request.COOKIE.get("sessionid") :23423hkjsf890234sd
2 在django-session表过滤session-key=23423hkjsf890234sd的记录
3 取过滤记录的session-data反序列化成数据字典:{"susername":"egon","slogin":True} ''' slogin=request.session.get("slogin") if not slogin:
return redirect("/login_session/") susername=request.session.get("susername")
name=""
shangpin = "香蕉"
shangpin_list = ["苹果", "荔枝", "榴莲"]
return render(request, 'index.html', {'name': susername, 'shangpin': shangpin, 'shangpin_list': shangpin_list})
Django重新整理2的更多相关文章
- 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重新整理3
Forms组件 1.在models.py中我们建立一个新的表关系: class UserInfo(models.Model): user=models.CharField(max_length=32) ...
- 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. ...
随机推荐
- 数据结构 lucky_ming幸运的小明
问题描述 在快速排序过程中, 每次会找一个划分值, 将小于划分值的放到其左边, 大于划分值的放右边, 然后再依次递归左右两边, 对子序列进行同样的操作, 直到子序列为空则停止操作.最后就得到了有序的序 ...
- 存储类型auto,static,extern,register的区别 <转>
变量和函数的属性包括数据类型和数据的存储类别,存储类别指数据在内存中存储方式(静态和动态),包含auto,static,register,extern四种. 内存中.具体点来说内存分为三块:静态区,堆 ...
- adobe flash player 过期问题
在百度搜索 " adobe flash player debugger",如图打开官网 https://www.adobe.com/support/flashplayer/debu ...
- GUID介绍
GUID介绍 GUID(Global unique identifier)全局唯一标识符,它是由网卡上的标识数字(每个网卡都有唯一的标识号)以及 CPU 时钟的唯一数字生成的的一个 16 字节的二进制 ...
- for循环 break
for (int i = 1; i <= 8;i++) {} for (int i=10; i>=1;i--) i的起始值是10 着次递减 for(){}嵌套放便控制行列的长短 break ...
- 扫描线-小Z的桌子
大概题意:在一个01矩阵中找到一个周长最大的全0矩形. 这道题用的是扫描线,O(n^2),求最大面积的思路完全可以放在这里.下面说说思路. 首先,一个最大周长子矩形(最大周长全0矩形),左右两侧的列上 ...
- 【洛谷2324】[SCOI2005]骑士精神 IDA*
[SCOI2005]骑士精神 描述 在一个\(5×5\)的棋盘上有\(12\)个白色的骑士和\(12\)个黑色的骑士, 且有一个空位.在任何时候一个骑士都能按照骑 士的走法(它可以走到和它横坐标相差为 ...
- 梯度下降&随机梯度下降&批梯度下降
梯度下降法 下面的h(x)是要拟合的函数,J(θ)损失函数,theta是参数,要迭代求解的值,theta求解出来了那最终要拟合的函数h(θ)就出来了.其中m是训练集的记录条数,j是参数的个数. 梯 ...
- uwsgi01---uwsgi文件
1. 安装 pip install uwsgi //测试uWSGI是否安装成功 在终端中输入以下命令查看uwsgi的版本:uwsgi --version 2.简单运行 运行uwsgi:uwsgi -- ...
- vs已停止工作的解决方案
解决办法 第一步: 开始-->所有程序-->Microsoft Visual Studio 2013(2015)-->VisualStudio Tools-->VS2013(2 ...