python框架Django高级内容

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介绍

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值