对django views中 request, response的常用操作详解
框架(架构)  /  管理员 发布于 5年前   145
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=lzzrequest.get_host() # wificdn.com:8888request.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 responsedef 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的常用操作详解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。
123 在
Clash for Windows作者删库跑路了,github已404中评论 按理说只要你在国内,所有的流量进出都在监控范围内,不管你怎么隐藏也没用,想搞你分..原梓番博客 在
在Laravel框架中使用模型Model分表最简单的方法中评论 好久好久都没看友情链接申请了,今天刚看,已经添加。..博主 在
佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 @1111老铁这个不行了,可以看看近期评论的其他文章..1111 在
佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 网站不能打开,博主百忙中能否发个APP下载链接,佛跳墙或极光..路人 在
php中使用hyperf框架调用讯飞星火大模型实现国内版chatgpt功能示例中评论 教程很详细,如果加个前端chatgpt对话页面就完美了..Copyright·© 2019 侯体宗版权所有· 粤ICP备20027696号