1. Cookie的原理
1. Cookie是由服务器生成,存储在浏览器中的键值对数据
2. 每个域名的Cookie相互独立
3. 浏览器访问域名为A的url地址,会把A域名下的Cookie一起传递到服务器
4. Cookie可以设置过期时间
2. Cookie的设置与获取
路由中定义 :
re_path('set_cookie/(.+)/(.+)',views.set_cookie_handler,name='set_cookie'),
re_path('get_cookie/(.+)',views.get_cookie_handler,name='get_cookie'),
re_path('set_session/(.+)/(.+)',views.set_session_handler,name='set_session'),
re_path('get_session/(.+)',views.get_session_handler,name='get_session'),
path('flush',views.flush_session_handler,name='flush'),
path('clear',views.clear_session_handler,name='clear'),
视图中定义:
def set_cookie_handler(request,key,value):
response = HttpResponse()
response.set_cookie(key,value,max_age=60*60)
return response
def get_cookie_handler(request,key):
value = request.COOKIES.get(key)
return HttpResponse(value)
def set_session_handler(request,key,value):
request.session[key] = value
# request.session.set_expiry(60*60)
return HttpResponse('设置成功')
def get_session_handler(request,key):
value = request.session.get(key)
return HttpResponse(value)
def flush_session_handler(request):
request.session.flush()
return HttpResponse('flush')
def clear_session_handler(request):
request.session.clear()
return HttpResponse('clear')
session存入到redis中
setting文件中
SESSION_ENGINE = 'redis_sessions.session' # 选择Redis存储Session
SESSION_REDIS_HOST = 'localhost' # Redis的主机地址
SESSION_REDIS_PORT = 6379 # Redis的端口号
SESSION_REDIS_DB = 0 # 数据库编号,0-11
SESSION_REDIS_PASSWORD = '' # 登录Redis的密码
表单数据的接收与提交
路由映射:
path('form', views.form_handler, name='form'),
视图文件:
def form_handler(request):
return render(request,'form.html')
前端文件:
<form action="{% url 'form_post' %}" method="post">
{# 这个代码打开或者将setting中的csrf注释了 {% csrf_token %}#}
username:
<input type="text" name="username" ><br/>
hobby:
<input type="checkbox" name="hobby" value="Python">Python
<input type="checkbox" name="hobby" value="Java">Java
<br>
<input type="submit" value="submit">
</form>
使用post或者get方式提交代码
路由:
path('form_get', views.form_get_handler, name='form_get'),
path('form_post', views.form_post_handler, name='form_post'),
视图:
def form_get_handler(request):
username = request.GET.get('username')
hobbys = request.GET.getlist('hobby')
print('username:',username)
print('hobbys',hobbys)
return HttpResponse('')
def form_post_handler(request):
username = request.POST.get('username')
hobbys = request.POST.getlist('hobby')
print('username:',username)
print('hobbys',hobbys)
return HttpResponse('')
csrf介绍