iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >django设置cookie和sessi
  • 746
分享到

django设置cookie和sessi

djangocookiesessi 2023-01-31 00:01:08 746人浏览 八月长安

Python 官方文档:入门教程 => 点击学习

摘要

本例中应用名称为cookie 模型model from Django.db import models from djanGo.db import models class UserInfo(models.Model): us

本例中应用名称为cookie

模型model

from Django.db import models

from djanGo.db import models
class UserInfo(models.Model):
    username = models.CharField(max_length=64)
    passWord = models.CharField(max_length=64)

数据库迁移

python manage.py makemigrations
Python manage.py migrate

数据库添加数据

 

路由urls

from django.contrib import admin
from django.urls import path
from cookie import views

urlpatterns = [
    path('admin/', admin.site.urls),
    path('login/', views.login),
    path('index/', views.index),
]

视图函数

from django.shortcuts import render, redirect, HttpResponse
from cookie import models

def login(request):
    ret = ""
    if request.method == "POST":
        user = request.POST.get("user")
        pwd = request.POST.get("pwd")
        # 查询数据库中的用户名和密码
        user_obj = models.UserInfo.objects.filter(username=user, password=pwd).first()
        if user_obj:
            """
            如果验证通过,则重定向至index并设置cookie
            """
            obj = redirect("/index/")
            obj.set_cookie("is_login", True, 30)  # cookie有效期为30秒
            obj.set_cookie("username", user_obj.username)
            return obj
        else:
            ret = "用户名或密码错误"
    return render(request, "login.html", {"ret": ret})


def index(request):
    is_login = request.COOKIES.get("is_login")
    username = request.COOKIES.get("username")
    if not is_login:
        return redirect("/login/")
    return render(request, "index.html", {
        "user": username
    })    

模板页面

登录页面 login.html

<body>
<h3>用户登录页面</h3>
<fORM action="/login/" method="post">
    {% csrf_token %}
    <p>用户名:<input type="text" name="user"></p>
    <p>密码:<input type="password" name="pwd"></p>
    <p><span>{{ ret }}</span></p>
    <input type="submit" value="登录" class="sub_btn">
</form>
</body>

首页index.html

<body>
<h3>这是index页面。你好 {{ user }}</h3>
</body>

下来访问测试一下

点击登录

可以看到,已经按预想跳转至index页面

下来看看设置的cookie

 

 再来看看,重定向访问时携带的cookie值

 

创建应用

python manage.py startapp session

注册应用

设置settings.py

INSTALLED_APPS = [
    ...
    'cookie.apps.CookieConfig',
    'session.apps.SessionConfig'
]

路由urls

.....
from session import views as session_views

urlpatterns = [
    ......
    path('session_login', session_views.session_login),
    path('session_index', session_views.session_index),
    path('session_logout', session_views.session_logout),
]

视图函数

from django.shortcuts import render, redirect
from cookie import models  # 由于要用到数据,所有要吃cookie应用里面导入

def session_login(request):
    ret = ""
    if request.method == "POST":
        user = request.POST.get("user")
        pwd = request.POST.get("pwd")
        user_obj = models.UserInfo.objects.filter(username=user, password=pwd).first()
        if user_obj:
            """
            如果验证通过,则设置session,并返回session_index
            """
            request.session["is_login"] = True
            request.session["username"] = user_obj.username
            obj = redirect("/session_index/")
            return obj
        else:
            ret = "用户名或密码错误"
    return render(request, "session_login.html", {"ret": ret})

 

def session_index(request):
    is_login = request.session.get("is_login")
    username = request.session.get("username")
    if not is_login:
        """如果没有登录则跳转至登录页面"""
        return redirect("/session_login")

    return render(request, "session_index.html", {"user": username})


def session_logout(request):
    request.session.flush()
    return redirect("/session_login/")

模板页面

session_index.html

<h3>基于session的用户登录</h3>
<form action="/session_login/" method="post">
    {% csrf_token %}
    <p>用户名:<input type="text" name="user"></p>
    <p>密码:<input type="password" name="pwd"></p>
    <p><span>{{ ret }}</span></p>
    <input type="submit" value="登录" class="sub_btn">
</form>

session_index.html

<body>
<h3>这是session_index页面。</h3>
<h3>你好 {{ user }}</h3>
<a href="/session_logout/">注销</a>
</body>

 

下来测试

 

 

可以看到数据库中session表已经有数据了,session_key为随机生成的,为请求时携带的cookie键,session_data为

request.session["is_login"] = True
request.session["username"] = user_obj.username,经过某种算法加密后的数

 

 

再来看看页面

 

 

--结束END--

本文标题: django设置cookie和sessi

本文链接: https://www.lsjlt.com/news/182201.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • django设置cookie和sessi
    本例中应用名称为cookie 模型model from django.db import models from django.db import models class UserInfo(models.Model): us...
    99+
    2023-01-31
    django cookie sessi
  • Flask中使用cookie和sessi
    设置cookie from flask import Flask,Response app = Flask(__name__) @app.route('/index') def index(): response = Res...
    99+
    2023-01-31
    Flask cookie sessi
  • Django框架cookie和session方法及参数设置
    目录1. cookie和session介绍1.1 cookie 简介1.2 cookie的缺陷1.3 session简介1.4 session与cookie的区别2. 设置cooki...
    99+
    2022-11-13
  • Django之Cookie和Sessio
    Cookie cookie的由来 大家都知道HTTP协议是无状态的. 无状态的意思是每次请求都是独立的,它的执行情况和结果与前面的请求和之后的请求都无直接关系,它不会受前面的请求响应情况直接影响,也不会直接影响后面的请求响应情况. 一句有...
    99+
    2023-01-30
    Django Cookie Sessio
  • Django中Cookie设置及跨域问题处理详解
    目录什么是Cookie(翻译:曲奇饼干)Cookie怎么来的为什么要用CookieCookie的特点怎么设置CookieCookie常用参数怎么获取CookieCookie跨域问题处...
    99+
    2022-11-12
  • flask设置cookie
    目录1_cookie[掌握]2_session[理解]3_上下文[了解]4_Flask_script[掌握]5_render_template[掌握]6_模板语法,获取变量[理解]7...
    99+
    2023-05-14
    Python flask设置cookie flask设置cookie
  • Cookie怎么设置
    本篇内容主要讲解“Cookie怎么设置”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Cookie怎么设置”吧!Cookie设置Cookie的 设置非常简单,cookie 会在 http 头部单独...
    99+
    2023-06-08
  • 解决Android webview设置cookie和cookie丢失的问题
    Android页面嵌套了一个h5,H5页面内部有用户登陆页面,发现h5页面的登陆功能无法使用,一直登陆失败。和web那边商量一会,发现js写入的cookie丢失了。所有需要An...
    99+
    2022-06-06
    webview cookie Android
  • javascript如何设置cookie
    这篇文章给大家分享的是有关javascript如何设置cookie的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。在javascript中,可以使用document对象的cookie属性来设置、读取或删除cooki...
    99+
    2023-06-14
  • js如何设置cookie
    小编给大家分享一下js如何设置cookie,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!js设置cookiegetCookie:...
    99+
    2022-10-19
  • 前端Vue设置cookie、删除cookie,获取cookie方式
    目录Vue设置cookie、删除cookie、获取cookie设置cookie获取cookie删除cookieVue允许跨域携带cookieVue设置cookie、删除cookie、...
    99+
    2022-11-13
    Vue设置cookie Vue删除cookie Vue获取cookie
  • Go语言读取,设置Cookie及设置cookie过期方法详解
    Cookie用来解决http协议无状态的问题。 首先,在服务端生成Cookie,然后在http响应header中设置Set-Cookie字段,客户端会读取到Set-Cookie字段后...
    99+
    2022-11-13
  • Vue怎么设置、删除和获取cookie
    这篇文章主要介绍了Vue怎么设置、删除和获取cookie的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Vue怎么设置、删除和获取cookie文章都会有所收获,下面我们一起来看看吧。Vue设置cookie、删除c...
    99+
    2023-07-04
  • php curl怎么设置cookie
    本文操作环境:Windows7系统、PHP7.1版,DELL G3电脑。php curl怎么设置cookiePHP CURL中传递cookie的方法步骤curl的cookie怎么使用新手都很头疼的,curl的参数太多了,其中cookie部分...
    99+
    2021-04-11
    php curl cookie
  • cookie设置如何打开
    今天小编给大家分享一下cookie设置如何打开的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧...
    99+
    2022-10-19
  • PHP中怎么设置Cookie
    PHP中怎么设置Cookie,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。PHP经过长时间的发展,很多用户都很了解PHP了,这里我发表一下关于PHP Cooki...
    99+
    2023-06-17
  • js怎么设置cookie值
    可以使用JavaScript的document.cookie属性来设置cookie值。例如,要设置名为"username"的cook...
    99+
    2023-08-15
    js cookie
  • Vue项目如何设置反向代理和cookie设置问题
    目录Vue设置反向代理和cookie设置项目场景问题描述原因分析解决方案Vue项目使用js-cookie细则什么是js-cookie在项目中进行安装在项目中的入口文件(main.js...
    99+
    2022-11-13
  • nginx + uwsgi + django 优化和参数设置
    最近用python写了一个web系统,用的框架是nginx + uwsgi + django + oracle。服务器用的是centos 7.web API的吞吐量要求是200/s。使用postman对单次web API调用进行测试,时间约...
    99+
    2023-06-02
  • php怎么设置cookie数组
    这篇文章主要介绍“php怎么设置cookie数组”,在日常操作中,相信很多人在php怎么设置cookie数组问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”php怎么设置cookie数组”的疑惑有所帮助!接下来...
    99+
    2023-06-20
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作