Django Cookie(如何使用 Django 设置 Cookie?)7
本文是Django教程的一部分,您可以点击Django教程系列查看所有教程。
Django Cookie 简介
Django 是一个框架,它为我们提供了处理 cookie 的选项。Cookie 提供了存储和检索会话中存储的数据的选项。这些 cookie 有一个有效期,并且会在一段时间后丢失。我们已经知道,每当我们登录任何网页或应用程序时,站点默认会要求存储用户 ID 和密码,自动填充与上次登录会话相关的一些细节都是由 cookie 完成的。同样,我们可以将 cookie 存储在客户端并帮助最终用户更轻松地工作。
创建 Cookie
我们可以使用函数 set_cookie() 创建 Django cookie 并忘记我们也需要 get() 函数的响应。
语法:
set_cookie(name, value, max_age=None)
在这里,name 是 cookie 集的名称,value 是我们想要存储在 cookie 中的数据,max 是 cookie 必须过期的最大时间限制。这是一个可选字段,因此如果没有设置时间,cookie 将一直存在,直到浏览器关闭。
如何使用 Django 设置 Cookie?
让我们看一个如何使用 Django 手动设置 cookie 的小例子:
1. view.py
代码:
from django.shortcuts import render
from django.http import HttpResponse
# Create your views here.
def home(request):
return HttpResponse("Welcome")
def setting_cookie(request):
response = HttpResponse("We are setting a cookie")
response.set_cookie('Learning', 'Django',5)
return response
def getting_cookie(request):
first_test = request.COOKIES['Learning'] return HttpResponse("Practice: "+ first_test);
对上述代码的解释:通过上述代码,我们可以观察到,为了将任何输出显示到屏幕上,我们使用了 HttpResponse 函数。并且,为了显示或获取设置的 cookie,我们在不同的函数中定义它,然后我们使用添加了变量/表达式 COOKIE 的请求函数。此后,我们将使用 cookie 设置的值设置一个变量。
2. urls.py
代码:
from django.urls import path
from . import views
urlpatterns = [
path('', views.home, name='home'),
path('setc', views.setting_cookie, name='setc'),
path('getc', views.getting_cookie, name='getc')
]
对上述代码的解释: 在 python 文件 urls 中,我们定义了与视图文件中写入的每个函数相关的所有路径。
通过命令行运行服务器后:python manage.py runserver
输出:
获取 Cookie 响应:
正如上面在 views.py 代码中强调的那样,我们保留了 cookie 必须保存的最长时间。一旦超过时间限制,我们就会收到以下错误:
下面有大篇幅的错误描述,请自行尝试,查看已获取的总错误。
修改 Cookie
现在让我们看看如何修改 cookie。
1. view.py
from django.shortcuts import render
from django.http import HttpResponse
# Create your views here.
def home(request):
return HttpResponse("Welcome")
def setting_cookie(request):
response = HttpResponse("We are setting cookie")
response.set_cookie('Learning', 'Django')
return response
def updating_cookie(request):
response = HttpResponse("We are updating the cookie which is set before")
response.set_cookie(Learning, 'Happy')
return response
def getting_cookie(request):
first_test = request.COOKIES['Stay'] return HttpResponse("Always be: "+ first_test);
我们可以理解,我们已经编写了另一个函数来设置一个新的 cookie 值,该值反过来更新旧的。
2. urls.py
from django.urls import path
from . import views
urlpatterns = [
path('', views.home, name='home'),
path('setc', views.setting_cookie, name='setc'),
path('updc', views.updating_cookie, name='updc'),
path('getc', views.getting_cookie, name='getc')
]
对上述代码的解释: 在 views.py 中,我们添加了一个新函数来更新我们已经设置的 cookie。然后在我们的 get 函数中,我们返回更新后设置的 cookie。
输出 1:
输出 2:
输出 3:
输出 4:
如果您可以在此处观察到 cookie 的值已将先前设置的值更新为更新后的值。这样,我们就可以修改或更新设置后的 cookie 值。
更新 Cookie
我们有另一种使用重定向函数而不是 Httpresponse 更新 cookie 的方法。但是,我们仍然只使用 set_cookie 函数。下面是它的代码,因为我们在
1. view.py
代码:
def updating_cookie1(request):
response = redirect(home)
response.set_cookie('Learning', 'Practising')
return response
输出 1:
输出 2:
输出 3:
在这里,让我们了解如何删除设置的 cookie。
我们已经知道设置 cookie 函数有一个可选参数,称为 max_age,默认情况下会删除 cookie 会话。为了更简单,我们在上面的代码中添加了下面提到的代码。
1. view.py
代码:
def deleting_cookie(request):
response = HttpResponse("We are now finally deleting the cookie which is set")
response.delete_cookie('Learning')
return response
上面的代码添加在views文件中以及getting_cookie函数之上。
2. urls.py
代码:
from django.urls import path
from . import views
urlpatterns = [
path('', views.home, name='home'),
path('setc', views.setting_cookie, name='setc'),
path('updc', views.updating_cookie, name='updc'),
path('getc', views.getting_cookie, name='getc'),
path('delc', views.deleting_cookie, name='delc')
]
输出 1:
输出 2:
输出 3:
- 我们甚至有一个属性名称 ‘expires’ 用于处理 cookie 的结束会话。
- 作为练习,尝试使用 expire 函数并处理删除 cookie。
- 可以按照以下格式编写代码:
- response.cookies[‘cookie_name’][‘expires’] = datetime.today() + timedelta(days= number_of_days)
- 所以,这就是我们可以删除cookie的方法。
启用和禁用 Django Cookie
cookie 的启用和禁用基于设置 python 文件。会话变量存在于可以处理会话 cookie 的设置文件中。cookie 的启用和禁用是通过设置、更新和删除 cookie 手动完成的。还有会话级 cookie,可以在需要时将其设置为 true。默认情况下,它们设置为 FALSE。这些会话 cookie 是加密的,并确保它们是安全的。通过使用不同的技术,我们可以使用会话 cookie 并在访问特定网站时更新计数。
结论
在这里,我们已经了解了 cookie 是什么以及如何处理它们。我们创建了 Django cookie,更新了它们,甚至删除了这些 cookie。我们可以使用登录用户 ID 和密码设置我们的 cookie,就像许多网站现在所描绘的那样。这些 cookie 可以帮助轻松检索数据,因为每当用户请求数据时,它并不总是在数据库中搜索,然后为用户获取详细信息。但同时,我们在处理这些 cookie 时必须提防黑客。
常见问题FAQ
- 程序仅供学习研究,请勿用于非法用途,不得违反国家法律,否则后果自负,一切法律责任与本站无关。
- 请仔细阅读以上条款再购买,拍下即代表同意条款并遵守约定,谢谢大家支持理解!