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浅拷贝与深拷贝用法实例
May 09 Python
简单介绍Python的Django框架加载模版的方式
Jul 20 Python
python套接字流重定向实例汇总
Mar 03 Python
django用户登录和注销的实现方法
Jul 16 Python
详解基于django实现的webssh简单例子
Jul 17 Python
flask中过滤器的使用详解
Aug 01 Python
python中使用paramiko模块并实现远程连接服务器执行上传下载功能
Feb 29 Python
Python Tornado核心及相关原理详解
Jun 24 Python
python3代码中实现加法重载的实例
Dec 03 Python
matplotlib之pyplot模块实现添加子图subplot的使用
Apr 25 Python
浅谈python数据类型及其操作
May 25 Python
python游戏开发之pygame实现接球小游戏
Apr 22 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
150kHz到30Mhz完全冲浪手册
2020/03/20 无线电
Laravel 对某一列进行筛选然后求和sum()的例子
2019/10/10 PHP
一个对于Array的简单扩展
2006/10/03 Javascript
JavaScript 中的事件教程
2007/04/05 Javascript
20个非常棒的 jQuery 幻灯片插件和教程分享
2011/08/23 Javascript
jquery图片放大镜功能的实例代码
2013/03/26 Javascript
Javascript 遮罩层和加载效果代码
2013/08/01 Javascript
JS选中checkbox后获取table内一行TD所有数据的方法
2015/07/01 Javascript
浅谈jquery.fn.extend与jquery.extend区别
2015/07/13 Javascript
js中跨域方法原理详解
2015/07/19 Javascript
js实现五星评价功能
2017/03/08 Javascript
js 用于检测类数组对象的函数方法
2017/05/02 Javascript
老生常谈ES6中的类
2017/07/31 Javascript
Form表单上传文件(type=&quot;file&quot;)的使用
2017/08/03 Javascript
angular4中*ngFor不能对返回来的对象进行循环的解决方法
2018/09/12 Javascript
记一次用vue做的活动页的方法步骤
2019/04/11 Javascript
详解将微信小程序接口Promise化并使用async函数
2019/08/05 Javascript
JavaScript React如何修改默认端口号方法详解
2020/07/28 Javascript
详解微信小程序(Taro)手动埋点和自动埋点的实现
2021/03/02 Javascript
使用python将mdb数据库文件导入postgresql数据库示例
2014/02/17 Python
Python中的闭包实例详解
2014/08/29 Python
简单总结Python中序列与字典的相同和不同之处
2016/01/19 Python
python 打印出所有的对象/模块的属性(实例代码)
2016/09/11 Python
Pycharm学习教程(3) 代码运行调试
2017/05/03 Python
详解pandas删除缺失数据(pd.dropna()方法)
2019/06/25 Python
Pytorch之contiguous的用法
2019/12/31 Python
html5调用摄像头功能的实现代码
2018/05/07 HTML / CSS
EGO Shoes美国/加拿大:英国时髦鞋类品牌
2018/08/04 全球购物
英国屋顶用品和材料超市:Roofing Supplies UK
2019/08/24 全球购物
俄罗斯香水在线商店:AromaCode
2019/12/04 全球购物
初中考试作弊检讨书
2014/02/01 职场文书
旷课检讨书
2015/01/26 职场文书
常务副总经理岗位职责
2015/02/02 职场文书
会议室使用管理制度
2015/08/06 职场文书
2016幼儿园中班开学寄语
2015/12/03 职场文书
测量JavaScript函数的性能各种方式对比
2021/04/27 Javascript