Django框架中视图的用法


Posted in Python onJune 10, 2022

视图层

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

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

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

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

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

一、请求对象: HttpRequest 对象(简称 request 对象)

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

1、GET

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

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

取值格式:对象.方法。

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

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

Django框架中视图的用法

2、POST

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

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

取值格式: 对象.方法。

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

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

Django框架中视图的用法

3、body

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

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

def runoob(request):
    name = request.body
print(name)
return HttpResponse("菜鸟教程")

Django框架中视图的用法

4、path

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

def runoob(request):
    name = request.path
    print(name)
    return HttpResponse("菜鸟教程")

Django框架中视图的用法

5、method

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

def runoob(request):
    name = request.method
    print(name)
    return HttpResponse("菜鸟教程")

Django框架中视图的用法

二、响应对象:HttpResponse 对象

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

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

def runoob(request):
# return HttpResponse("菜鸟教程")
return HttpResponse("<a href='http://https://www.runoob.com/>菜鸟教程</a>")

Django框架中视图的用法

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

def runoob(request):
    name ="菜鸟教程"
return render(request,"runoob.html",{"name":name})

Django框架中视图的用法

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

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

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

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

到此这篇关于Django框架中视图用法的文章就介绍到这了。希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。


Tags in this post...

Python 相关文章推荐
Python利用多进程将大量数据放入有限内存的教程
Apr 01 Python
浅谈Python2.6和Python3.0中八进制数字表示的区别
Apr 28 Python
Python实现随机选择元素功能
Sep 14 Python
Python基于贪心算法解决背包问题示例
Nov 27 Python
Python实现PS滤镜碎片特效功能示例
Jan 24 Python
python3 pandas 读取MySQL数据和插入的实例
Apr 20 Python
python实现弹跳小球
May 13 Python
python使用PIL和matplotlib获取图片像素点并合并解析
Sep 10 Python
python实现对列表中的元素进行倒序打印
Nov 23 Python
浅谈tensorflow模型保存为pb的各种姿势
May 25 Python
python基于socket模拟实现ssh远程执行命令
Dec 05 Python
Anaconda配置各版本Pytorch的实现
Aug 07 Python
python基础之//、/与%的区别详解
Jun 10 #Python
Django框架中表单的用法
Jun 10 #Python
移除Selenium中window.navigator.webdriver值
Jun 10 #Python
Django框架模板用法详解
Jun 10 #Python
python库Tsmoothie模块数据平滑化异常点抓取
使用Django框架创建项目
Jun 10 #Python
Python实现信息管理系统
Jun 05 #Python
You might like
第三节 定义一个类 [3]
2006/10/09 PHP
在Zeus Web Server中安装PHP语言支持
2006/10/09 PHP
第七节--类的静态成员
2006/11/16 PHP
PHP学习笔记之字符串编码的转换和判断
2014/05/22 PHP
php向js函数传参的几种方法
2014/08/10 PHP
PHP+MySQL修改记录的方法
2015/01/21 PHP
php抽象类使用要点与注意事项分析
2015/02/09 PHP
为何说PHP引用是个坑,要慎用
2018/04/02 PHP
PHP8.0新功能之Match表达式的使用
2020/07/19 PHP
js 获取浏览器高度和宽度值(多浏览器)
2009/09/02 Javascript
Javascript类型系统之undefined和null浅析
2016/07/13 Javascript
bootstrap中模态框、模态框的属性实例详解
2017/02/17 Javascript
vue2里面ref的具体使用方法
2017/10/27 Javascript
js中getBoundingClientRect的作用及兼容方案详解
2018/02/01 Javascript
webpack项目轻松混用css module的方法
2018/06/12 Javascript
vue.js计算属性computed用法实例分析
2018/07/06 Javascript
JavaScript判断浏览器运行环境的详细方法
2019/06/30 Javascript
vue基于Echarts的拖拽数据可视化功能实现
2020/12/04 Vue.js
[13:40]TI3青蛙君全程回顾 DOTA2我们为梦想再战
2013/09/13 DOTA
python操作数据库之sqlite3打开数据库、删除、修改示例
2014/03/13 Python
python中django框架通过正则搜索页面上email地址的方法
2015/03/21 Python
Python爬虫PyQuery库基本用法入门教程
2018/08/04 Python
在Mac下使用python实现简单的目录树展示方法
2018/11/01 Python
详解django中url路由配置及渲染方式
2019/02/25 Python
python 弹窗提示警告框MessageBox的实例
2019/06/18 Python
使用django的objects.filter()方法匹配多个关键字的方法
2019/07/18 Python
python os.path.isfile()因参数问题判断错误的解决
2019/11/29 Python
python3 使用traceback定位异常实例
2020/03/09 Python
Django在Model保存前记录日志实例
2020/05/14 Python
Python的历史与优缺点整理
2020/05/26 Python
Python爬取YY评级分数并保存数据实现过程解析
2020/06/01 Python
真正了解CSS3背景下的@font face规则
2017/05/04 HTML / CSS
HTML5的Geolocation地理位置定位API使用教程
2016/05/12 HTML / CSS
士力架广告词
2014/03/20 职场文书
论语读书笔记
2015/06/26 职场文书
《半截蜡烛》教学反思
2016/02/19 职场文书