首页 > 其他分享 >django之cookie与session

django之cookie与session

时间:2022-12-22 17:36:32浏览次数:34  
标签:return request django session cookie func login

目录

cookie与session简介

"""
回忆:HTTP协议四大特性
	1.基于请求响应
	2.基于TCP、IP作用于应用层之上的协议
	3.无状态
		不保存客户端的状态
	4.无连接
"""
最开始的网站都不需要用户注册 所有人来访问获取到的数据都是一样的
随着互联网的发展很多网站需要指定当前用户的状态

cookie:保存在客户端,记录用户状态相关的信息
session:保存在服务端,记录用户状态相关的信息
ps:session的工作需要依赖于cookie

补充:浏览器有资格拒绝保存服务端发送过来的cookie数据

django操作cookie

案例1:

urls.py:
path('login/',views.login_func),
path('home/',views.home_func),
path('home1/', views.home1_func),
path('home2/', views.home2_func),

views.py:
def login_func(request):
    if request.method == 'POST':
        username = request.POST.get('username')
        password = request.POST.get('password')
        if username == 'jason' and password == '123':
            obj = redirect('/home/')
            # cookie信息
            obj.set_cookie('name',username)
            return obj
    return render(request,'loginPage.html')

def login_auth(func_name):
    def inner(request,*args,**kwargs):
        if request.COOKIES.get('name'):
            res = func_name(request,*args, **kwargs)
            return res
        return redirect('/login/')
    return inner

@login_auth
def home_func(request):
    return HttpResponse('home页面 只有登录的用户才可以查看')

@login_auth
def home1_func(request):
    return HttpResponse('home1页面 只有登录的用户才可以查看')

@login_auth
def home2_func(request):
    return HttpResponse('home2页面 只有登录的用户才可以查看')


loginPage.html:
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<form action="" method="post">
    <p>username:
        <input type="text" name="username">
    </p>
    <p>password:
        <input type="text" name="password">
    </p>
    <input type="submit" value="提交">
</form>
</body>
</html>

django操作session

标签:return,request,django,session,cookie,func,login
From: https://www.cnblogs.com/winter-yu1989/p/16999224.html

相关文章

  • django之中间件(middleware)
    django之中间件(middleware)在之前一篇博文中,有关django的请求流程中,我们关于中间件这一层并没有详细的介绍,在这张图中,我们将中间层定义为django网关层和路由层的过渡层,那么......
  • django中间件三个了解的方法、 基于django中间件的功能设计、 cookie与session简介、
    目录django中间件三个了解的方法基于django中间件的功能设计cookie与session简介django操作cookiedjango操作cookiedjango操作sessiondjango中间件三个了解的方法1.proc......
  • session实现servlet数据共享
    为了满足老师考试要求,要实现数据共享,要实现顾客登录的功能,登录后进行增删改查要对该顾客进行操作,所以需要将该顾客的一些信息共享给其他操作,找了一些资料,来通过session实现......
  • javaweb总结5-自定义Session
    Session在存储安全性要求较高的会话信息方面是必不可少的,Session当然绝对不是用来存储用户登录状态的,但类似验证码等敏感信息却必须存储在Session中。对于分布式Web应用自......
  • Session的简单应用进行传值
    session可以看做是一个hashmap:存取值的原理同java中的HashMap的键值对相同session.setAttribute("key",value);是session存值的方法,session.getAttribute(key);是sess......
  • Django增删改查
    增删改查。配置对应路由,函数,视图。报错注意看控制台。添加取到前台传来的参数,后端给予验证。入库编辑,取到当前编辑得id,在后台查到对应数据。重新update删除,取到当前点......
  • 第二章:Django的基础操作及配置
    Python三大主流后端框架"""Django 特点:大而全,自带的功能特别多 缺点:有时候过于笨重flask 特点:小而精,自带的功能特别少 但是第三方模块非常的多,如果将flask第三......
  • forms组件渲染标签、展示信息、校验数据的一些补充,forms组件参数和源码剖析,modelform
    今日内容forms组件渲染标签forms组件渲染标签的方式1<p>forms组件渲染标签的方式1</p>{{form_obj.as_p}}{{form_obj.as_table}{{......
  • forms组件渲染标签 form表单展示信息 forms组件校验方式 form组件源码 modelform组件
    目录forms组件渲染标签方式一:全自动渲染表单as_pas_ulas_table表单类的label标签方式二:手动渲染方式三:for循环表单对象(推荐)查看源码渲染标签的注意事项form表单展示信息表......
  • forms组件 django中间件
    今日内容概要forms组件渲染标签#forms组件渲染标签的方式一:'''封装过高扩展性差主要用于被本地测试''' {{form_obj.as_p}}{{form_obj.as_ul}}{{f......