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


Posted in Python onJuly 17, 2019

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的常用操作详解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python 获取et和excel的版本号
Apr 09 Python
Python中的推导式使用详解
Jun 03 Python
python3.5 tkinter实现页面跳转
Jan 30 Python
python内置数据类型之列表操作
Nov 12 Python
在python中实现对list求和及求积
Nov 14 Python
Python判断对象是否相等及eq函数的讲解
Feb 25 Python
使用PYTHON解析Wireshark的PCAP文件方法
Jul 23 Python
Python OrderedDict的使用案例解析
Oct 25 Python
python利用百度云接口实现车牌识别的示例
Feb 21 Python
如何解决flask修改静态资源后缓存文件不能及时更改问题
Aug 02 Python
python推导式的使用方法实例
Feb 28 Python
Python实现byte转integer
Jun 03 Python
python自带tkinter库实现棋盘覆盖图形界面
Jul 17 #Python
python递归法解决棋盘分割问题
Jul 17 #Python
Django-Model数据库操作(增删改查、连表结构)详解
Jul 17 #Python
python通过TimedRotatingFileHandler按时间切割日志
Jul 17 #Python
python递归法实现简易连连看小游戏
Mar 25 #Python
django2笔记之路由path语法的实现
Jul 17 #Python
Django之创建引擎索引报错及解决详解
Jul 17 #Python
You might like
摩卡咖啡
2021/03/03 咖啡文化
PHP页面间传递参数实例代码
2008/06/05 PHP
PHP 读取文件内容代码(txt,js等)
2009/12/06 PHP
实例讲解YII2中多表关联的使用方法
2017/07/21 PHP
js的一些常用方法小结
2011/06/29 Javascript
jquery键盘事件使用介绍
2011/11/01 Javascript
jQuery中$.fn的用法示例介绍
2013/11/05 Javascript
jquery下拉select控件操作方法分享(jquery操作select)
2014/03/25 Javascript
Node.js中使用事件发射器模式实现事件绑定详解
2014/08/15 Javascript
bootstrap改变按钮加载状态
2014/12/01 Javascript
JavaScript使用cookie实现记住账号密码功能
2015/04/27 Javascript
简介AngularJS的HTML DOM支持情况
2015/06/17 Javascript
基于jquery步骤进度条源码分享
2015/11/12 Javascript
jQuery日历插件datepicker用法详解
2016/03/03 Javascript
js中获取 table节点各tr及td的内容简单实例
2016/10/14 Javascript
Bootstrap fileinput文件上传组件使用详解
2017/06/06 Javascript
Node.js中,在cmd界面,进入退出Node.js运行环境的方法
2018/05/12 Javascript
Javascript中parseInt的正确使用方式
2018/10/17 Javascript
python显示天气预报
2014/03/02 Python
浅析Python中的序列化存储的方法
2015/04/28 Python
按日期打印Python的Tornado框架中的日志的方法
2015/05/02 Python
python获取当前目录路径和上级路径的实例
2018/04/26 Python
Django之提交表单与前后端交互的方法
2019/07/19 Python
将matplotlib绘图嵌入pyqt的方法示例
2020/01/08 Python
Python单链表原理与实现方法详解
2020/02/22 Python
Django如何在不停机的情况下创建索引
2020/08/02 Python
通过Django Admin+HttpRunner1.5.6实现简易接口测试平台
2020/11/11 Python
Fairyseason:为个人和批发商提供女装和配件
2017/03/01 全球购物
光荣入党自我鉴定
2014/01/22 职场文书
业务部门经理岗位职责
2014/02/23 职场文书
成品仓管员岗位职责
2015/04/01 职场文书
掌握这项技巧,一年阅读300本书不是梦
2019/09/12 职场文书
Python 线程池模块之多线程操作代码
2021/05/20 Python
GitHub上77.9K的Axios项目有哪些值得借鉴的地方详析
2021/06/15 Javascript
FP-growth算法发现频繁项集——发现频繁项集
2021/06/24 Python
Spring Boot实现文件上传下载
2022/08/14 Java/Android