对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保存字符串到文件的方法
Jul 01 Python
WINDOWS 同时安装 python2 python3 后 pip 错误的解决方法
Mar 16 Python
Python简单操作sqlite3的方法示例
Mar 22 Python
基于Django与ajax之间的json传输方法
May 29 Python
Python实现带下标索引的遍历操作示例
May 30 Python
pyhton中__pycache__文件夹的产生与作用详解
Nov 24 Python
Tensorflow: 从checkpoint文件中读取tensor方式
Feb 10 Python
使用Python开发个京东上抢口罩的小实例(仅作技术研究学习使用)
Mar 10 Python
详解python UDP 编程
Aug 24 Python
详解利用python识别图片中的条码(pyzbar)及条码图片矫正和增强
Nov 17 Python
Selenium获取登录Cookies并添加Cookies自动登录的方法
Dec 04 Python
基于Python实现天天酷跑功能
Jan 06 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+mysql删除指定编号员工信息的方法
2015/01/14 PHP
php强制下载文件函数
2016/08/24 PHP
基于Laravel 5.2 regex验证的正确写法
2019/09/29 PHP
Swoole源码中如何查询Websocket的连接问题详解
2020/08/30 PHP
快速保存网页中所有图片的方法
2006/06/23 Javascript
js取滚动条的尺寸的函数代码
2011/11/30 Javascript
js的参数有长度限制吗?发现不能超过2083个字符
2014/04/20 Javascript
JavaScript设计模式之工厂方法模式介绍
2014/12/28 Javascript
js如何判断访问是来自搜索引擎(蜘蛛人)还是直接访问
2015/09/14 Javascript
Bootstrap编写一个在当前网页弹出可关闭的对话框 非弹窗
2016/06/30 Javascript
微信小程序(应用号)开发新闻客户端实例
2016/10/24 Javascript
javascript 使用正则test( )第一次是 true,第二次是false
2017/02/22 Javascript
AngularJS中下拉框的基本用法示例
2017/10/11 Javascript
详解vue-cli快速构建vue应用并实现webpack打包
2017/12/13 Javascript
JavaScript解决浮点数计算不准确问题的方法分析
2018/07/09 Javascript
React中获取数据的3种方法及优缺点
2020/02/18 Javascript
详解JavaScript作用域 闭包
2020/07/29 Javascript
vuex的使用步骤
2021/01/06 Vue.js
Python生成随机验证码的两种方法
2015/12/22 Python
八大排序算法的Python实现
2021/01/28 Python
Python爬豆瓣电影实例
2018/02/23 Python
Python SQL查询并生成json文件操作示例
2018/08/17 Python
python判断字符串或者集合是否为空的实例
2019/01/23 Python
使用pip安装python库的多种方式
2019/07/31 Python
Python实现像awk一样分割字符串
2020/09/15 Python
Python实现简单的猜单词小游戏
2020/10/28 Python
美特斯邦威官方商城:邦购网
2016/10/13 全球购物
Shopee越南:东南亚与台湾电商平台
2019/02/03 全球购物
五一服装活动方案
2014/01/11 职场文书
面试后的英文感谢信
2014/02/01 职场文书
优秀学生干部推荐材料
2014/02/03 职场文书
离职报告范文
2014/11/04 职场文书
秦始皇兵马俑导游词
2015/02/02 职场文书
公务员年度个人总结
2015/02/12 职场文书
《哪吒之魔童降世》观后感:世上哪有随随便便的成功
2019/11/08 职场文书
CSS实现漂亮的时钟动画效果的实例代码
2021/03/30 HTML / CSS