当前位置: 首页 > 编程笔记 >

对django views中 request, response的常用操作详解

滑文昌
2023-03-14
本文向大家介绍对django views中 request, response的常用操作详解,包括了对django views中 request, response的常用操作详解的使用技巧和注意事项,需要的朋友参考一下

request

获取post请求中的json数据

def hello(request):
 data = json.loads(request.body)
 ...

json格式还有一些 非表单序列化 的格式,都可以从 request.body 中获取请求体中的数据,对于ajax请求可以使用 request.is_ajax() 来判断

根据请求的信息获取base url(有时候服务的域名比较多,还是需要动态的拼接一下url信息)

# url http://wificdn.com:8888/wxpay/qrcode2/16122010404238801544?name=lzz
request.get_host() # wificdn.com:8888
request.get_full_path() # u'/wxpay/qrcode2/16122010404238801544?name=lzz'

request.build_absolute_uri('/') # 'http://wificdn.com:8888/'
request.build_absolute_uri('/hello') # 'http://wificdn.com:8888/hello'
request.build_absolute_uri() # 'http://wificdn.com:8888/wxpay/qrcode2/16122010404238801544?name=lzz'

request.path # u'/wxpay/qrcode2/16122010404238801544'
request.scheme # 'http'

获取表单中选中的 checkbox 信息, 例如checkbox的name为 checks

var_list = request.POST.getlist('checks')

返回的是个list对象,如果没有��️返回 [] ,如果表单中没有这个key也返回 []

response

json格式的响应 1.8版本中已经提供了 JsonResponse, from django.http import JsonResponse 就可以使用了,低版本的django可以参照源码自己写一个,几行代码就行了。 response 中设置 cookies 和 header

def xxxxview(request):
 ....

 resp = HttpResponseRedirect('/account/portal/?token=%s' % es)
 resp.set_cookie("coofilter", es, max_age=300)
 resp['Erya-Net-Type'] = NET_TYPE
 resp['Erya-Auth-Host'] = AUTH_HOST
 resp['Erya-Auth-Port'] = AUTH_PORT
 resp['Erya-Auth-Uip'] = ip
 resp['Erya-Auth-Token'] = es
 return resp

session

how to use session, 主要是get和set,和删除

def post_comment(request, new_comment):
 if request.session.get('has_commented', False):
 return HttpResponse("You've already commented.")
 c = comments.Comment(comment=new_comment)
 c.save()
 request.session['has_commented'] = True
 return HttpResponse('Thanks for your comment!')

def logout(request):
 try:
 del request.session['member_id']
 except KeyError:
 pass
 return HttpResponse("You're logged out.")

cookies

def login(request):
 response = HttpResponseRedirect('/url/to_your_home_page')
 response.set_cookie('cookie_name1', 'cookie_name1_value')
 response.set_cookie('cookie_name2', 'cookie_name2_value')
 return response

def logout(request):
 response = HttpResponseRedirect('/url/to_your_login')
 response.delete_cookie('cookie_name1')
 response.delete_cookie('cookie_name2')
 return response

# 获取
coo = request.COOKIES.get('coofilter')
# cookies 过期时间
hr.set_cookie('user_id', user_id, max_age=300)    

以上这篇对django views中 request, response的常用操作详解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持小牛知识库。

 类似资料:
  • 本文向大家介绍JSP 中request与response的用法详解,包括了JSP 中request与response的用法详解的使用技巧和注意事项,需要的朋友参考一下 JSP 中request与response的用法详解 概要: 在学习这两个对象之前,我们应该已经有了http协议的基本了解了,如果不清楚http协议的可以看我的关于http协议的介绍。因为其实request和response的使用大

  • 本文向大家介绍Laravel框架Request、Response及Session操作示例,包括了Laravel框架Request、Response及Session操作示例的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了Laravel框架Request、Response及Session操作。分享给大家供大家参考,具体如下: Request操作 Response操作 Session操作 更多关

  • The request and response objects wrap the WSGI environment or the return value from a WSGI application so that it is another WSGI application (wraps a whole application). How they Work Your WSGI appli

  • 本文向大家介绍小论asp中request与response的用法,包括了小论asp中request与response的用法的使用技巧和注意事项,需要的朋友参考一下 request的用法: request有三种获取表单值的方法,分别用于不同的表单递交方法的获取。表单简单地可以认为是指页面所要传递的参数的一个集合,而其递交的方法有两个post和get。在这两种方法里面,分别对应着不同的接收方法,其具体

  • 本文向大家介绍关于ThreadLocal对request和response的用法说明,包括了关于ThreadLocal对request和response的用法说明的使用技巧和注意事项,需要的朋友参考一下 记得在一篇博文中看到描述threadLocal的一句话: ThreadLocal除了适用于多线程保证每条线程都有自己的变量副本外,还适用于在线程上下文中共享某些变量值。 这两种说法是有区别的。前者

  • 本文向大家介绍javascript jquery对form元素的常见操作详解,包括了javascript jquery对form元素的常见操作详解的使用技巧和注意事项,需要的朋友参考一下 1.下拉框 select : 移除option 添加option 取得下拉选单的选取值 根据option的值选中下拉框 select下拉框的第二个元素为当前选中值 2,单选框 radio : radio单选组的第