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多层嵌套list的递归处理方法(推荐)
Jun 08 Python
浅谈Python2.6和Python3.0中八进制数字表示的区别
Apr 28 Python
Python3 伪装浏览器的方法示例
Nov 23 Python
Python进阶学习之特殊方法实例详析
Dec 01 Python
Python通过Django实现用户注册和邮箱验证功能代码
Dec 11 Python
Python读取mat文件,并转为csv文件的实例
Jul 04 Python
python对视频画框标记后保存的方法
Dec 07 Python
详解Python中is和==的区别
Mar 21 Python
Python3.7安装keras和TensorFlow的教程图解
Jun 18 Python
用python介绍4种常用的单链表翻转的方法小结
Feb 24 Python
python3.8.1+selenium实现登录滑块验证功能
May 22 Python
Python基于locals返回作用域字典
Oct 17 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
PHP 编程安全性小结
2010/01/08 PHP
PHP中的日期加减方法示例
2014/08/21 PHP
PHP For循环字母A-Z当超过26个字母时输出AA,AB,AC
2020/02/16 PHP
延时重复执行函数 lLoopRun.js
2007/05/08 Javascript
JQuery与iframe交互实现代码
2009/12/24 Javascript
使用JQuery进行跨域请求
2010/01/25 Javascript
jQuery实现的类flash菜单效果代码
2010/05/17 Javascript
js文本框输入点回车触发确定兼容IE、FF等
2013/11/19 Javascript
angular中使用路由和$location切换视图
2015/01/23 Javascript
easyui Draggable组件实现拖动效果
2015/08/19 Javascript
使用three.js 画渐变的直线
2016/06/05 Javascript
js 获取站点应用名的简单实例
2016/08/18 Javascript
Javascript之面向对象--封装
2016/12/02 Javascript
js实现简单的手风琴效果
2017/02/27 Javascript
详解angularJs指令的3种绑定策略
2017/04/13 Javascript
jquery版轮播图效果和extend扩展
2017/07/18 jQuery
Vue使用vue-cli创建项目
2017/09/01 Javascript
Windows下使用Nodejs运行js的方法
2017/09/02 NodeJs
详解webpack模块化管理和打包工具
2018/04/21 Javascript
详解Angular Forms中自定义ngModel绑定值的方式
2018/12/10 Javascript
JavaScript链式调用实例浅析
2018/12/19 Javascript
webpack自动打包和热更新的实现方法
2019/06/24 Javascript
解决vue打包后vendor.js文件过大问题
2019/07/03 Javascript
详解Golang 与python中的字符串反转
2017/07/21 Python
python 简单备份文件脚本v1.0的实例
2017/11/06 Python
python按行读取文件,去掉每行的换行符\n的实例
2018/04/19 Python
ERLANG和PYTHON互通实现过程详解
2019/07/05 Python
13个Pandas实用技巧,助你提高开发效率
2020/08/19 Python
html5定位获取当前位置并在百度地图上显示
2014/08/22 HTML / CSS
美国手机支架公司:PopSockets
2019/11/27 全球购物
大学英语演讲稿(中英文对照)
2014/01/14 职场文书
初中班主任寄语
2014/04/04 职场文书
网页美工求职信范文
2014/04/17 职场文书
2014年幼儿园重阳节活动方案
2014/09/16 职场文书
Python利用FlashText算法实现替换字符串
2022/03/31 Python
腾讯云服务器部署前后分离项目之前端部署
2022/06/28 Servers