Django基础入门⑬:Cookie和Session详讲和Django HTML表单实战讲解
在Django中,处理Cookie和Session是非常常见的操作。以下是如何在Django中设置和使用Cookie和Session的示例代码:
# views.py
from django.shortcuts import render, redirect
from django.http import HttpResponse
from django.contrib.sessions.backends.db import SessionStore
def set_session(request):
# 创建一个Session并设置数据
session = SessionStore()
session['my_key'] = 'my_value'
session.save()
# 将session的cookie值发送给浏览器
response = HttpResponse("Session set!")
response.set_cookie(session.session_key, session.session_key, expires=session.get_expiry_date())
return response
def get_session(request):
# 从请求中获取session_key
session_key = request.COOKIES.get('sessionid')
# 如果没有session_key,可能用户没有登录或者登录已失效
if not session_key:
return HttpResponse("No session available.")
# 加载Session
session = SessionStore(session_key)
# 获取Session数据
my_key = session.get('my_key', None)
return HttpResponse(f"The value of 'my_key' is: {my_key}")
# 假设你有一个HTML模板叫做my_form.html
def my_form_view(request):
if request.method == 'POST':
# 处理POST请求,这里只是简单的返回一个提交结果页面
return render(request, 'submit_success.html')
else:
# 如果是GET请求,显示表单
return render(request, 'my_form.html')
在HTML模板中创建一个简单的表单:
<!-- my_form.html -->
<form method="post">
{% csrf_token %}
<label for="name">Name:</label>
<input type="text" id="name" name="name">
<input type="submit" value="Submit">
</form>
这个示例展示了如何在Django中设置和获取Session数据,以及如何在视图函数中处理简单的HTML表单提交。记得在实际应用中,你还需要处理表单的验证和错误处理。
评论已关闭