1. cookie操作
1.1 登录-首页-退出登录
| def login(request): |
| if request.method == "POST": |
| userinfo = request.POST.dict() |
| userinfo.pop("csrfmiddlewaretoken") |
| print(userinfo) |
| |
| user = User.objects.filter(username=userinfo.get("username"), password=userinfo.get("password")).first() |
| if user: |
| response = redirect('/user/') |
| |
| future = datetime.now() + timedelta(days=3) |
| |
| response.set_cookie("username", user.username, expires=future) |
| return response |
| |
| return render(request, 'app03/login.html') |
| |
| |
| def home(request): |
| |
| username = request.COOKIES.get("username") |
| return render(request, "app03/index.html", locals()) |
| |
| |
| def logout(request): |
| res = redirect('/user/') |
| res.delete_cookie("username") |
| return res |
| |
| |
| app_name='App03' |
| urlpatterns = [ |
| path('login/',views.login,name="login"), |
| path('',views.home,name="home"), |
| path('logout/',views.logout,name="logout"), |
| ] |
| # 登录页面 |
| <body> |
| <form action="{% url 'App03:login' %}" method="post"> |
| {% csrf_token %} |
| 用户名:<input type="text" name="username"> <br> |
| 密码:<input type="password" name="password"> <br> |
| <input type="submit"> |
| </form> |
| </body> |
| # 首页 |
| <body> |
| <h1>首页</h1> |
| {% if username %} |
| {{ username }} <a href="/user/logout/">退出登录</a> |
| {% else %} |
| 你还未登录 |
| {% endif %} |
| </body> |
1.2 路由保护
| |
| |
| def check_login(func): |
| def inner(*args, **kwargs): |
| if args[0].COOKIES.get("username"): |
| return func(*args, **kwargs) |
| else: |
| return redirect("/user/login") |
| return inner |
| |
| |
| @check_login |
| def list_article(request): |
| return HttpResponse("文章列表") |
| |
| # 路由保护 |
| path("list/",views.list_article,name="list"), |
2. session操作
| |
| |
| |
| request.session.clear() |
| request.session.flush() |
| del request.session["username"] |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现