对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脚本实现代码行数统计代码分享
Mar 10 Python
深入理解Python装饰器
Jul 27 Python
Python中sort和sorted函数代码解析
Jan 25 Python
Flask和Django框架中自定义模型类的表名、父类相关问题分析
Jul 19 Python
win7+Python3.5下scrapy的安装方法
Jul 31 Python
Python实现定期检查源目录与备份目录的差异并进行备份功能示例
Feb 27 Python
Python中注释(多行注释和单行注释)的用法实例
Aug 28 Python
基于python全局设置id 自动化测试元素定位过程解析
Sep 04 Python
Python基于当前时间批量创建文件
May 07 Python
Python能做什么
Jun 02 Python
新手学习Python2和Python3中print不同的用法
Jun 09 Python
python中print格式化输出的问题
Apr 16 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
PHP分页效率终结版(推荐)
2013/07/01 PHP
简单谈谈PHP vs Node.js
2015/07/17 PHP
php获取本机真实IP地址实例代码
2016/03/31 PHP
zend framework重定向方法小结
2016/05/28 PHP
php数组遍历类与用法示例
2019/05/24 PHP
javaScript - 如何引入js代码
2021/03/09 Javascript
javascript的数据类型、字面量、变量介绍
2012/05/23 Javascript
jQuery点击后一组图片左右滑动的实现代码
2012/08/16 Javascript
jQuery+CSS实现菜单滑动伸展收缩(仿淘宝)
2013/03/22 Javascript
纯JS实现动态时间显示代码
2014/02/08 Javascript
JavaScript获取鼠标移动时的坐标(兼容IE8、chome谷歌、Firefox)
2014/09/13 Javascript
jQuery基础知识小结
2014/12/22 Javascript
Javascript数据结构与算法之列表详解
2015/03/12 Javascript
jquery实现的蓝色二级导航条效果代码
2015/08/24 Javascript
javascript精确统计网站访问量实例代码
2015/12/19 Javascript
详解JS面向对象编程
2016/01/24 Javascript
详解Weex基于Vue2.0开发模板搭建
2017/03/20 Javascript
JS组件系列之JS组件封装过程详解
2017/04/28 Javascript
JavaScript实现无穷滚动加载数据
2017/05/06 Javascript
JS实现div模块的截图并下载功能
2017/10/17 Javascript
js注册时输入合法性验证方法
2017/10/21 Javascript
JavaScript实现求最大公共子串的方法
2018/02/03 Javascript
vue keep-alive请求数据的方法示例
2018/05/16 Javascript
详解Nuxt.js 实战集锦
2019/11/19 Javascript
React+EggJs实现断点续传的示例代码
2020/07/07 Javascript
[01:10:58]Spirit vs NB Supermajor小组赛 A组败者组决赛 BO3 第二场 6.2
2018/06/03 DOTA
Python操作redis实例小结【String、Hash、List、Set等】
2019/05/16 Python
python中利用matplotlib读取灰度图的例子
2019/12/07 Python
Python读写Excel表格的方法
2021/03/02 Python
Tom Dixon官网:英国照明及家具设计和制造公司
2019/03/01 全球购物
英国时尚和家居用品零售商:Matalan
2021/02/28 全球购物
人事行政主管岗位职责
2013/12/22 职场文书
捐赠仪式主持词
2014/03/19 职场文书
兴趣小组活动总结
2014/05/05 职场文书
永远跟党走演讲稿
2014/09/12 职场文书
搭建zabbix监控以及邮件报警的超级详细教学
2022/07/15 Servers