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访问sqlserver示例
Feb 10 Python
Python入门篇之字符串
Oct 17 Python
Python2.x中str与unicode相关问题的解决方法
Mar 30 Python
python的mysqldb安装步骤详解
Aug 14 Python
python按综合、销量排序抓取100页的淘宝商品列表信息
Feb 24 Python
Numpy 改变数组维度的几种方法小结
Aug 02 Python
解决Python print输出不换行没空格的问题
Nov 14 Python
python输出决策树图形的例子
Aug 09 Python
python实现按关键字筛选日志文件
Dec 24 Python
在python tkinter界面中添加按钮的实例
Mar 04 Python
如何一键升级Python所有包
Nov 05 Python
pycharm中leetcode插件使用图文详解
Dec 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
yii框架源码分析之创建controller代码
2011/06/28 PHP
深入解析PHP内存管理之谁动了我的内存
2013/06/20 PHP
javascript 写类方式之一
2009/07/05 Javascript
JavaScript 垃圾回收机制分析
2013/10/10 Javascript
JavaScript中的函数的两种定义方式和函数变量赋值
2014/05/12 Javascript
js 数组去重的四种实用方法
2014/09/09 Javascript
jquery实现的判断倒计时是否结束代码
2016/02/05 Javascript
jQuery获取table行数并输出单元格内容的实现方法
2016/06/30 Javascript
jquery 判断div show的状态实例
2016/12/03 Javascript
Angular4学习教程之DOM属性绑定详解
2018/01/04 Javascript
实例解析ES6 Proxy使用场景介绍
2018/01/08 Javascript
一次Webpack配置文件的分离实战记录
2018/11/30 Javascript
js防抖和节流的深入讲解
2018/12/06 Javascript
js实现二级联动简单实例
2020/01/11 Javascript
JS判断浏览器类型与操作系统的方法分析
2020/04/30 Javascript
在vue中实现禁止屏幕滚动,禁止屏幕滑动
2020/07/22 Javascript
python基于xml parse实现解析cdatasection数据
2014/09/30 Python
Python的Django框架中模板碎片缓存简介
2015/07/24 Python
python的mysqldb安装步骤详解
2017/08/14 Python
Python简单计算数组元素平均值的方法示例
2017/12/26 Python
flask框架自定义过滤器示例【markdown文件读取和展示功能】
2019/11/08 Python
基于tensorflow指定GPU运行及GPU资源分配的几种方式小结
2020/02/03 Python
Python实现数字的格式化输出
2020/08/01 Python
关于HTML5的安全问题开发人员需要牢记的
2012/06/21 HTML / CSS
中粮集团旗下食品网上购物网站:我买网
2016/09/22 全球购物
悬挂训练绳:TRX
2017/12/14 全球购物
编写一个 C 函数,该函数在一个字符串中找到可能的最长的子字符串,且该字符串是由同一字符组成的
2015/07/23 面试题
法律进社区实施方案
2014/03/21 职场文书
12岁生日演讲稿
2014/05/14 职场文书
申报优秀教师材料
2014/12/16 职场文书
高中生个性发展自我评价
2015/03/09 职场文书
学生犯错保证书
2015/05/09 职场文书
锦旗赠语
2015/06/23 职场文书
搞笑婚庆主持词
2015/06/29 职场文书
小学英语教学反思范文
2016/02/15 职场文书
html粘性页脚的具体使用
2022/01/18 HTML / CSS