通过 session 保存 个人 信息

登录的视图函数中:

def login(request):
''' 登录 '''
err, user, pwd = '', '', ''
if request.method == 'POST':
user = request.POST.get('user')
pwd = request.POST.get('pwd') ret = models.UserProfile.objects.filter(username=user, password=my_md5(user, pwd), is_active=True).first()
# ret = models.UserProfile.objects.filter(username=user, password=pwd, is_active=True).values()
print(ret)
if ret:
return_url = request.GET.get('return_url')
request.session['user_pk'] = ret.pk
if return_url:
return redirect(return_url)
return redirect(reverse('show:public_customer'))
else:
err = '账号或密码错误!'
return render(request, 'login.html', {'err': err, 'user': user, "pwd": pwd})

中间件中

# 白名单
w_list = ['/login/', '/reg/', '/verification_username/']
# 黑名单
b_list = [] def process_request(self, request):
# 获取请求的路径
return_url = request.path_info
# 判断 白名单
if return_url in self.w_list or return_url.startswith('/admin/'):
return if return_url in self.b_list:
return HttpResponse('<h1>This is an illegal URL</h1>') # 获取session 的值
user_pk = request.session.get("user_pk")
# 判断是否有session
if user_pk:
# session 保存的是 用户的id 通过id 获取对象
user = models.UserProfile.objects.filter(pk=user_pk).first()
# 将对象保存到 request 中 用于保存用户
request.user_object = user
return

Django 通过 session 保存个人信息的更多相关文章

  1. session保存用户信息

    前台jsp-------------- <%@ page import="com.manager.form.User" %><%User user = reque ...

  2. django使用session来保存用户登录状态

    先建好登录用的model,其次理解使用cookie和session的原理,一个在本机保存,一个在服务器保存 使用session好处,可以设置登录过期的时间, 编写views中login的函数 def ...

  3. 浅析Django之session与cookie

    浅析Django之session与cookie 1 session与cookie概述 原理: 由于HTTP协议是无状态,无连接的,当用户发起网路请求时,需要服务端能标识用户ID,用以存储用户相关信息, ...

  4. django会话session

    因为因特网HTTP协议的特性,每一次来自于用户浏览器的请求(request)都是无状态的.独立的.通俗地说,就是无法保存用户状态,后台服务器根本就不知道当前请求和以前及以后请求是否来自同一用户.对于静 ...

  5. 在Django中Session的那点事!

    1.session是什么 首先引入度娘的解释:Session:在计算机中,尤其是在网络应用中,称为“会话控制”.Session 对象存储特定用户会话所需的属性及配置信息.这样,当用户在应用程序的 We ...

  6. 转:django中session的实现机制

    转:www.jianshu.com 要理解session,首先要搞清楚cookie的概念.由于http是无状态的,服务器不能记住用户的信息状态,因此若由同一个客户端发起的多条请求,服务器不能辨别这些请 ...

  7. 【Django】Session

    目录 介绍 Django中操作Session @ 介绍 Cookie虽然在一定程度上解决了"保持状态"的需求,但是由于Cookie本身最大支持4096字节,以及Cookie本身保存 ...

  8. Django之session详解

    好文章来自追风的小蚂蚁:https://www.cnblogs.com/zhuifeng-mayi/p/9099811.html cookie:Cookie,有时也用其复数形式 Cookies,指某些 ...

  9. Django 用Session和Cookie分别实现记住用户登录状态

    简介 由于http协议的请求是无状态的.故为了让用户在浏览器中再次访问该服务端时,他的登录状态能够保留(也可翻译为该用户访问这个服务端其他网页时不需再重复进行用户认证).我们可以采用Cookie或Se ...

随机推荐

  1. Tirgger SimpleTrigger CronTrigger(四)

    触发器通用属性: jobKey:表示job实例的标识,触发器被触发时,指定的job实例会被执行. startTime:表示触发器的时间表 首次被触发的时间,他的值类型为java.uti.Date. e ...

  2. C# 反射和Type类

    一.元数据和反射 1.1 定义 大多数程序都要处理数据,包括读.写.操作和显示数据.然而,对于某些程序来说,它们操作的不是数字.文本或图形,而是程序和程序类型本身的信息. ● 有关程序及其类型的数据被 ...

  3. JavaScript实现iphone时钟

    看效果(欢迎各位同学推荐更好的gif制作软件) 请看代码 <!DOCTYPE html> <html lang="en"> <head> < ...

  4. Visual Studio日文乱码解决方法

    ---恢复内容开始--- 验证N多网上方法之后,没能解决,最后在控制面板->时钟.语言和区域->语言中左下角点击位置,进入区域窗口,管理选项中的更改系统区域语言,设为日语,解决,截图附上. ...

  5. 通向全栈之路(6)—无密码ssh连接

    (1)在用户目录下新增一个 .ssh文件 mkdir .ssh (2)生成公钥.私钥 ssh-keygen -t rsa -b 4096 -C "mail@xxx.com" (3) ...

  6. EF select 匿名类 问题

    连续两次被相同问题困扰. 一.举例 var query=db.StudentScore.Where(r=> r.SubjectId==subjectId).Select(g=>new {S ...

  7. 【原】Spring AOP实现对Redis的缓存同步

    前言:刚开始采用spring cache作为缓存数据,到后面发现扩展性不灵活,于是基于sprig cache原理自定义一套规则用于缓存数据. 请求过程: 根据请求参数生成Key,后面我们会对生成Key ...

  8. 【IDEA&&Eclipse】4、IntelliJ IDEA上操作GitHub

    IntelliJ IDEA集成了对GitHub的支持,使上传代码到GitHub和从GitHub下载代码更加方便快捷. 1. 分享代码到GitHub 首先需要在IntelliJ配置Git,如果没有正确配 ...

  9. 服务器端事件发送SSE

    背景 近期有这么一个需求: 手机端需要展示一个比较大的pdf 基于手机端网络/流量/体验等考虑,希望不通过pdf下载然后展示 而是把pdf转成一张张的图片,然后再在手机上展示. 分析 pdf转图片,肯 ...

  10. 使用光盘作为yum软件安装源安装X Window

      使用光盘作为yum软件安装源安装X Window 挂载光驱   [root@centos6 ~]# mkdir /media/cdrom [root@centos6 ~]# mount /dev/ ...