Django HttpResponse响应
1.HttpResponse
1)Django服务器接收到客户端发送过来的请求后,会将提交上来的数据封装成httpRequest对象传给视图函数。那么视图处理完相关逻辑后,也需要返回一个响应给浏览器。而这个响应必须返回HttpResponseBase或者他的子类的对象
2)可以使用django.http.HttpResponse来构造响应对象
3) HttpRequest对象由Django创建,HttpResponse对象或子对象由开发人员创建。
response = HttpResponse(content=响应体, content_type=响应体数据类型,默认为text/html, status=状态码,默认为200)
class TestQuery(View):def get(self, request):#HttpResponse默认返回的是html字符串类型的数据,#如果我们要响应html字符串以外的数据该如何实现?#比如要响应图片格式#HttpResponse(content=图片的原始数据, content_type=响应体数据类型,默认为image/jpg, status=状态码,默认为200)response = HttpResponse('test')return response
2. JsonResponse:响应JSON
1)在开发功能时,如果前端需要JSON数据,那么后端就需要构造并响应JSON数据,这也是我们在开发中使用最多的。
2)而Django提供了JsonResponse来构造并响应JSON数据
3)JsonResponse作用:
帮助我们将响应的数据转换为JSON字符串
设置响应头Content-Type为 application/json
class TestQuery(View):def get(self, request):# 准备要响应的数据dict_data = {'name': 'lx','age': 100}# 使用JSONResponse构造并响应JSON数据return JsonResponse(dict_data)
3. redirect():重定向
在开发中,我们经常会遇到一种需求,当某个逻辑操作完成后,将用户引导到另外一个逻辑、页面中
比如:用户注册、登录成功后,直接将用户引导到网站首页
解决办法:可以使用重定向
redirect():重定向
from django.shortcuts import render, redirectclass Index(View):def get(self, request):return HttpResponse('网站首页')class LoginView(View):def post(self, request): return redirect('/index/') #别忘了 路径前面要加反斜线表示根路径
4. redirect()重定向 搭配 反向解析
1)首先要考虑的问题是,我们要重定向的地址会不会更改会不会在某次版本更新迭代的时候被修改,如果很多地方都用到了这个地址那么是不是这些地方都要做修改?
需求:
能否可以实现一种效果,可以保证即使在版本迭代时,使用了新设计的地址替换了路由中原有的地址,我们之前编写的使用该地址的代码不用去修改,达到动态获取的目的。.
解决方案:
路由反向解析
路由反向解析 是使用路由的别名,动态的解析出该路由中的真实地址
总路由
urlpatterns = [path('admin/', admin.site.urls),#这里的namespace是可以使用任意的名字,但是为了易于理解可以使用子应用的名字# 如果定义了namespace,那么一定要定义app_name 不然会报错path('', include(('pratice_1.urls',"pratice_1"),namespace="pratice_1"))
]
子路由
urlpatterns = [# 测试重定向path('login/', views.LoginView.as_view()),# 给要跳转的目标地址起别名,这个名字也可以随便写,但是最好写一个见文知意的path('index/', views.Index.as_view(),name='index'),
]
class Index(View):def get(self, request):return HttpResponse('网站首页')class LoginView(View):def post(self, request):#总路由别名:子路由别名redirect_url = reverse('pratice_1:index')#要跳转的目标地址return redirect(redirect_url)
include() 源码
Django HttpResponse响应相关推荐
- Python Django HttpResponse响应对象
- Python Django HttpResponse响应json数据
- Django(part8)--响应及HttpResponse对象
学习笔记,仅供参考 文章目录 响应 HTTP响应 HTTP状态码 常见的HTTP状态码 HTTP状态码分类 Django中的响应对象HttpResponse 其它HttpResponse响应对象 举个 ...
- 关于Django的响应式网页
前言:如果还不会如何在Django中创建APP并进行一系列配置步骤的,请参考上一篇博客:http://blog.csdn.net/qq_40421277/article/details/7932290 ...
- Django请求响应对象
请求与响应对象 HttpRequest HttpRequest存储了客户请求的相关参数和一些查询方法. path 请求页面的全路径,不包括域名-例如, "/hello/". met ...
- django HttpResponse的用法
一.传json字典 def back_json(rquest):#JsonResponse父类是HttpResponse,原码里调用了json.dumps()from django.http impo ...
- Django讲课笔记11:视图函数的请求和响应
文章目录 零.本讲学习目标 一.课程导入 二.新课讲授 (零)准备数据 1.商品类型表 - commodity_types 2.商品信息表 - commodity_commodityinfos (一) ...
- Django REST framework(五)-http请求与响应
drf除了在数据序列化部分简写代码以外,在请求和响应也简化了一些步骤 rest_framework.response.Request:通过parser解析类 识别客户端请求头中的Content-Typ ...
- Django整理(二) - 视图和模板的初步使用
Django中的视图 · Django使用视图来编写web应用的业务逻辑 · Django的视图也就是一个函数,可称为视图函数 · 视图定义在应用的view.py文件中 · 视图需要绑定一个URL地址 ...
最新文章
- Pytorch:使用DCGAN实现数据复制
- GDCM:转储一个DICOM文件,显示DICOM中的结构和值的测试程序
- doctype声明的意义
- Tomcat学习总结(16)—— Tomcat优化时的参数分析
- 10元一瓶的普通白酒和2000元一瓶的茅台酒有什么区别?
- OpenCV学习(13) 细化算法(1)(转)
- vue使用a标签下载文件_vue+iview 通过a标签实现文件下载
- 【历史上的今天】2 月 4 日:Unix 之父诞生;Facebook 上线;微软大洗牌
- 【springmvc+mybatis项目实战】杰信商贸-29.购销合同技术难点分析
- html网页中加入音乐播放器,如何在网页中插入音乐播放器
- 计算机考研专业课只考一科的学校汇总
- java连接带通讯密码的中控考勤机 iface702
- 看到的不错的产品助理面试题
- C++知三角形三边求面积
- tomcat问题——判断tomcat是否安装成功
- 从数据标准到数据库设计:解决基础数据标准落地的最后一公里难题(上)
- Java软件工程师[初级测试题]
- 北大肖臻老师《区块链技术与应用》系列课程学习笔记[1]Bitcoin中用到的密码学原理和数据结构
- vue+d3.js计算任意多边形面积
- 基于JAVA在线点餐外卖系统设计与实现 开题报告