对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的高级Git库 Gittle
Sep 22 Python
Python生成不重复随机值的方法
May 11 Python
python魔法方法-自定义序列详解
Jul 21 Python
基于Django模板中的数字自增(详解)
Sep 05 Python
解决pyecharts在jupyter notebook中使用报错问题
Apr 23 Python
Flask框架 CSRF 保护实现方法详解
Oct 30 Python
浅谈tensorflow之内存暴涨问题
Feb 05 Python
python实现读取类别频数数据画水平条形图案例
Apr 24 Python
PyTorch实现重写/改写Dataset并载入Dataloader
Jul 14 Python
python实现图片素描效果
Sep 26 Python
python生成可执行exe控制Microsip自动填写号码并拨打功能
Jun 21 Python
JAVA SpringMVC实现自定义拦截器
Mar 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 时间日期操作实战
2011/08/26 PHP
Ajax 数据请求的简单分析
2011/04/05 Javascript
同一页面多个商品倒计时JS 基于面向对象的javascript
2012/02/16 Javascript
ie6下png图片背景不透明的解决办法使用js实现
2013/01/11 Javascript
jquery操作select详解(取值,设置选中)
2014/02/07 Javascript
基于jquery插件实现拖拽删除图片功能
2020/08/27 Javascript
设计模式中的facade外观模式在JavaScript开发中的运用
2016/05/18 Javascript
Node.js学习入门
2017/01/03 Javascript
详解nodejs微信公众号开发——2.自动回复
2017/04/10 NodeJs
vue.js异步上传文件前后端实现代码
2017/08/22 Javascript
基于JavaScript实现前端数据多条件筛选功能
2020/08/19 Javascript
Nodejs中获取当前函数被调用的行数及文件名详解
2018/12/12 NodeJs
vue element-ui实现input输入框金额数字添加千分位
2019/12/29 Javascript
Jquery 获取相同NAME 或者id删除行操作
2020/08/24 jQuery
Python实现控制台进度条功能
2016/01/04 Python
Python cookbook(数据结构与算法)让字典保持有序的方法
2018/02/18 Python
Python实现读取Properties配置文件的方法
2018/03/29 Python
win8.1安装Python 2.7版环境图文详解
2019/07/01 Python
Python解析命令行读取参数之argparse模块
2019/07/26 Python
Django中URL的参数传递的实现
2019/08/04 Python
详解CSS3伸缩布局盒模型Flex布局
2018/08/20 HTML / CSS
用CSS禁用输入法(CSS3 UI规范)实例解析
2012/12/04 HTML / CSS
Canal官网:巴西女性时尚品牌
2019/10/16 全球购物
介绍一下Python下range()函数的用法
2013/11/07 面试题
文案策划专业自荐信
2014/07/07 职场文书
2015年党员自我剖析材料
2014/12/17 职场文书
司考复习计划
2015/01/19 职场文书
安全员岗位职责
2015/02/10 职场文书
科技活动总结范文
2015/05/11 职场文书
建国大业电影观后感
2015/06/01 职场文书
《少年闰土》教学反思
2016/02/18 职场文书
pytorch查看网络参数显存占用量等操作
2021/05/12 Python
Python pygame实现中国象棋单机版源码
2021/06/20 Python
Java中多线程下载图片并压缩能提高效率吗
2021/07/01 Java/Android
Python使用DFA算法过滤内容敏感词
2022/04/22 Python
mysql数据库如何转移到oracle
2022/12/24 MySQL