django 用户配置 cookie

19 篇文章 0 订阅
10 篇文章 0 订阅

1 配置cookie

在django中 redirect render HttpResponse 三者都可以在返回页面时返回cookies
具体方法为:

response=redirect("/editelem/")
response.set_cookie('project', json.dumps(project))
return response

response=render(request,'login.html',{"message":"用户名或密码错误!请重新输入。"})
response.set_cookie('project', json.dumps(project))
return response

response=HttpResponse('ok!')
response.set_cookie('project', json.dumps(project))
return response

2 set_cookie 参数

name必需。规定 cookie 的名称。
value必需。规定 cookie 的值。
expire可选。规定 cookie 的有效期。
path可选。规定 cookie 的服务器路径。
domain可选。规定 cookie 的域名。
secure可选。规定是否通过安全的 HTTPS 连接来传输 cookie。

3 添加签名的cookie

#配置cookie
response.set_signed_cookie('project',salt="ddd")

#提取cookie
response.get_signed_cookie('project',salt="ddd")
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Django 中,可以使用 cookie 来实现用户登录。具体步骤如下: 1. 在 `views.py` 中编写用户登录的视图函数,示例代码如下: ```python from django.shortcuts import render, redirect from django.contrib.auth import authenticate, login def login_view(request): if request.method == 'POST': username = request.POST.get('username') password = request.POST.get('password') user = authenticate(request, username=username, password=password) if user is not None: login(request, user) response = redirect('home') response.set_cookie('username', username) return response else: error_message = 'Invalid username or password' else: error_message = None return render(request, 'login.html', {'error_message': error_message}) ``` 2. 在 `login.html` 模板中添加登录表单,示例代码如下: ```html {% extends 'base.html' %} {% block content %} <h2>Login</h2> {% if error_message %} <p>{{ error_message }}</p> {% endif %} <form method="post"> {% csrf_token %} <label for="username">Username:</label> <input type="text" name="username" id="username"> <br> <label for="password">Password:</label> <input type="password" name="password" id="password"> <br> <button type="submit">Login</button> </form> {% endblock %} ``` 3. 在 `views.py` 中编写需要登录后才能访问的视图函数,示例代码如下: ```python from django.shortcuts import render from django.http import HttpResponse def home_view(request): username = request.COOKIES.get('username') if username: return render(request, 'home.html', {'username': username}) else: return HttpResponse('Please login first') ``` 4. 在 `urls.py` 中配置路由,示例代码如下: ```python from django.urls import path from . import views urlpatterns = [ path('login/', views.login_view, name='login'), path('', views.home_view, name='home'), ] ``` 以上就是使用 cookie 实现用户登录的简单示例。需要注意的是,在实际开发中,为了安全起见,应该对 cookie 进行加密和签名处理,以避免被恶意篡改。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

energy_百分百

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值