当前位置: 首页 > news >正文

Django 第七课 -- 视图

目录

一. 前言

二. 请求对象: HttpRequest 对象(简称 request 对象)

2.1. GET

2.2. POST

2.3. body

2.4. path

2.5. method

三. 响应对象:HttpResponse 对象


一. 前言

一个视图函数,简称视图,是一个简单的 Python 函数,它接受 Web 请求并且返回 Web 响应。

响应可以是一个 HTML 页面、一个 404 错误页面、重定向页面、XML 文档、或者一张图片...

无论视图本身包含什么逻辑,都要返回响应。代码写在哪里都可以,只要在 Python 目录下面,一般放在项目的 views.py 文件中。

每个视图函数都负责返回一个 HttpResponse 对象,对象中包含生成的响应。

视图层中有两个重要的对象:请求对象(request)与响应对象(HttpResponse)。

二. 请求对象: HttpRequest 对象(简称 request 对象)

以下介绍几个常用的 request 属性。

2.1. GET

数据类型是 QueryDict,一个类似于字典的对象,包含 HTTP GET 的所有参数。

有相同的键,就把所有的值放到对应的列表里。

取值格式:对象.方法。

get():返回字符串,如果该键对应有多个值,取出该键的最后一个值。

def test(request):name = request.GET.get("name")return HttpResponse('姓名:{}'.format(name))

2.2. POST

数据类型是 QueryDict,一个类似于字典的对象,包含 HTTP POST 的所有参数。

常用于 form 表单,form 表单里的标签 name 属性对应参数的键,value 属性对应参数的值。

取值格式: 对象.方法。

get():返回字符串,如果该键对应有多个值,取出该键的最后一个值。

def test(request):name = request.POST.get("name")return HttpResponse('姓名:{}'.format(name))

2.3. body

数据类型是二进制字节流,是原生请求体里的参数内容,在 HTTP 中用于 POST,因为 GET 没有请求体。

在 HTTP 中不常用,而在处理非 HTTP 形式的报文时非常有用,例如:二进制图片、XML、Json 等。

def test(request):name = request.bodyprint(name)return HttpResponse("蜡笔小流")

2.4. path

获取 URL 中的路径部分,数据类型是字符串。

def test(request):name = request.pathprint(name)return HttpResponse("蜡笔小流")

2.5. method

获取当前请求的方式,数据类型是字符串,且结果为大写。

def test(request):name = request.methodprint(name)return HttpResponse("蜡笔小流")

三. 响应对象:HttpResponse 对象

响应对象主要有三种形式:HttpResponse()、render()、redirect()。

HttpResponse(): 返回文本,参数为字符串,字符串中写文本内容。如果参数为字符串里含有 html 标签,也可以渲染。

def test(request):# return HttpResponse("蜡笔小流")return HttpResponse("<a href='https://www.labixiaoliu.com/'>蜡笔小流</a>")

render(): 返回文本,第一个参数为 request,第二个参数为字符串(页面名称),第三个参数为字典(可选参数,向页面传递的参数:键为页面参数名,值为views参数名)。

def test(request):name ="蜡笔小流"return render(request,"test.html",{"name":name})

redirect():重定向,跳转新页面。参数为字符串,字符串中填写页面路径。一般用于 form 表单提交后,跳转到新页面。

def test(request):return redirect("/index/")

render 和 redirect 是在 HttpResponse 的基础上进行了封装:

  • render:底层返回的也是 HttpResponse 对象
  • redirect:底层继承的是 HttpResponse 对象

http://www.mrgr.cn/news/12672.html

相关文章:

  • 【IDEA】一键重启多个服务
  • 答题小程序的轮播图管理与接入获取展示实现
  • Apache PDFBox
  • Dijkstra(c++)
  • PLM产品生命周期管理系统有哪些功能特点?PLM系统有哪些推荐
  • 在URL链接中指定浏览器跳转到PDF文件的指定页码
  • 【AI大模型】提示词(Prompt)全面解析
  • 2024年汽车零部件企业CRM研究:服务商排名、案例分析、需求分析
  • urllib3版本不兼容解决办法
  • 使用终端工具Tabby(跳板机)连接ssh
  • 【北京迅为】龙芯iTOP-LS2K0500开发板快速启动手册-第3章 Windows安装串口终端
  • flink--会话模式与应用模式
  • SpringBoot工厂模式
  • python多进程日志以及分布式日志的实现方式
  • C/C++ 汇编基础知识概述
  • Python算法工程师面试整理-算法
  • Vue动态表头数据
  • 索迪迈科技油罐车监控系统中车载摄像头的布局策略
  • 选择个人开发者进行软件开发的潜在风险分析
  • IOS半越狱工具nathanlr越狱教程