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的更多相关文章

  1. Django重新整理

    1.母版的继承 #base<!DOCTYPE html> <html lang="zh-CN"> <head> <meta charset ...

  2. Django知识点整理

    什么是web框架 框架,即framework,特指为解决一个开放性问题而设计的具有一定约束性的支撑结构,使用框架可以帮你快速开发特定的系统,简单地说,就是你用别人搭建好的舞台来做表演. web应用 访 ...

  3. django笔记整理

    Django复习: MTV模型: manager启动服务→urls找到路径→(找到views视图函数或者做路由分发)→视图函数处理相关逻辑,返回一个模板或者是字符串: ---------------- ...

  4. Django重新整理4---ModelForm-set(批量处理数据)

    1. #引用modelformset from django.forms.models import modelformset_factory #必须继承forms.ModelForm! class ...

  5. Django重新整理3

    Forms组件 1.在models.py中我们建立一个新的表关系: class UserInfo(models.Model): user=models.CharField(max_length=32) ...

  6. Django ORM整理

    字段类型 # 自增长 Auto = models.AutoField() BigAuto = models.BigAutoField() # 二进制 Binary = models.BinaryFie ...

  7. Django(一) 安装使用基础

    大纲 安装Django 1.创建Django工程 2.创建Django app 3.写一个简单的登录注册相应页面 4.获取用户请求信息并处理 5.前后端交互 6.Django 请求 生命周期  跳转到 ...

  8. python学习博客地址集合。。。

    python学习博客地址集合...   老师讲课博客目录 http://www.bootcdn.cn/bootstrap/  bootstrap cdn在线地址 http://www.cnblogs. ...

  9. 老男孩老师的博客地址 - 转自devops1992

    害怕他那天不让人看了,所以我就复制一份到我自己的博客里. http://www.bootcdn.cn/bootstrap/  bootstrap cdn在线地址 http://www.cnblogs. ...

随机推荐

  1. virtualbox复制虚拟机网络问题

    virtulbox复制虚拟机由于mac地址问题会导致网卡不可以用 1:修改mac地址 需要在virtualbox修改虚拟机网络选项卡下面的mac地址 2:修改ifcfg-eth0 把HWADDR的值设 ...

  2. LeetCode第110题:平衡二叉树

    问题描述 给定一个二叉树,判断它是否是高度平衡的二叉树. 本题中,一棵高度平衡二叉树定义为: 一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过1. 示例 1: 给定二叉树 [3,9,20,nu ...

  3. 6678 emif norflash加载

    终于搞定,纪念一下.CCS6很不好用,还是换回CCS5.5吧!

  4. .Net Core下基于NPOI对Excel、Word操作封装

    本库进行了重写,如果需要请转移到下文查看: https://www.cnblogs.com/holdengong/p/10889780.html 框架与依赖 框架:.NET Standard 2.0 ...

  5. Mybatis的输出结果封装

    resultType属性可以指定结果集的类型,它支持基本类型和实体类类型. 需要注意的是,它和parameterType一样,如果注册过类型别名的,可以直接使用别名. 没有注册过的必须使用全限定类名. ...

  6. (原创)Problem B: JRM的自动机

    Description JRM自称是自动机之鼻祖,今天他又发明了一个自动机.人称自动复读机,宣称比LGQ的复读机的性能好无数倍.这个复读机有很多功能,你可以教会他 如何回答一个问题,还可以询问他问题, ...

  7. DevExpress ASP.NET Dev控件客户端事件 ClientSideEvents

    原文地址:http://www.cnblogs.com/allenlf/p/4171189.html

  8. linux脚本遇到的一点问题

    系统环境: # uname -r -.el6.x86_64 # cat /etc/redhat-release CentOS release 6.5 (Final) 对服务器状态监控的一段脚本中使用了 ...

  9. 当我们谈论CloudTable时究竟在谈论什么?

    表格存储服务(CloudTable Service,简称CloudTable)是基于Apache HBase提供的分布式.可伸缩.全托管的毫秒级NoSQL数据存储服务.它提供了毫秒级的随机读写能力,适 ...

  10. 数据结构11: 栈(Stack)的概念和应用及C语言实现

    栈,线性表的一种特殊的存储结构.与学习过的线性表的不同之处在于栈只能从表的固定一端对数据进行插入和删除操作,另一端是封死的. 图1 栈结构示意图 由于栈只有一边开口存取数据,称开口的那一端为“栈顶”, ...