对django views中 request, response的常用操作详解
作者:orangleliu 发布时间:2021-02-21 15:00:51
标签: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)
来源:https://blog.csdn.net/orangleliu/article/details/75226747


猜你喜欢
- 前言pytest是一款强大的python自动化测试工具,可以胜任各种类型或者级别的软件测试工作。pytest提供了丰富的功能,包括asser
- 本文实例讲述了Python带动态参数功能的sqlite工具类。分享给大家供大家参考,具体如下:最近在弄sqlite和python在网上参考各
- 用Python对数学函数进行求值、求偏导from sympy import *# x = Symbol("x")# y
- 数据初始化import pandas as pdimport numpy as npa=np.array([['北京',
- Python算术运算符以下假设变量a为10,变量b为20:运算符描述实例+加 - 两个对象相加a + b 输出结果 30-减 - 得到负数或
- 本程序是利用3.x的Firefox浏览器可以读取本地文件的特性,实现通过xmlHttPRequest上传大文件功能,并在可以上传过程中动态显
- 我一贯秉承着一点:通过自己的双手真实的操作一遍之后的信息是最可靠的,所以在您参考这个小文儿的时候请不要只是“看”,单纯的瞧一瞧是得不到真知滴
- 本文,我们将回到之前写的showMovieHandler方法,并更新它以返回一个JSON响应,表示系统中的单个电影信息。类似于:{? ? &
- python爬虫遇到爬取文件内容时,需要一页页的翻页爬取,这样很是麻烦,其实可以获取每个列表信息下的文件名和文件链接,让文件名和文件链接处理
- 一 引入jwtjwt用户身份验证go get github.com/dgrijalva/jwt-go二 框架中引入jwtimport (&q
- Git 工作流程本章节我们将为大家介绍 Git 的工作流程。一般工作流程如下:1.克隆 Git 资源作为工作目录。2.在克隆的资源上添加或修
- 一、简介 transitions库pip install transitions状态机 state:状态节点transition:
- 前言在想题材之际,打开私信,有许多萌新&小伙伴询问我之前写的一篇《python爬取天气预报数据,并实现数据可视化》中的bug怎么解决
- 在开发项目中,我们可以通过MySQL的慢查询日志对有效率问题的SQL进行监控。下面一些命令是开启日志:查找慢查询日志文件的目录show va
- 当我们采用s=[[0]*3]*2初始化一个数组,然后对s[0][0]进行赋值,改变的是第一列所有的值。因为用s = [[0]*3]*2 初始
- 前言:本系列文章主要参考了《Ultimate ASP.NET Core 3 Web API》一书,对原文进行了翻译,同时适当删减、修改了一部
- public partial class CMS_DBDataContext { partial void OnCreated() { //
- Python中有许多方便的库可以用来进行数据处理,尤其是Numpy和Pandas,再搭配matplot画图专用模块,功能十分强大。CSV(C
- Matplotlib简介Matplotlib是非常强大的python画图工具Matplotlib可以画图线图、散点图、等高线图、条形图、柱形
- 1 编写 mysql.yaml文件编写yaml如下apiVersion: v1kind: Namespacemetadata: