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 操作文件的基本方法总结
Aug 10 Python
Django Web开发中django-debug-toolbar的配置以及使用
May 06 Python
python单例模式实例解析
Aug 28 Python
python实现推箱子游戏
Mar 25 Python
对python 操作solr索引数据的实例详解
Dec 07 Python
python实现贪吃蛇小游戏
Mar 21 Python
详解Python并发编程之创建多线程的几种方法
Aug 23 Python
wxPython之wx.DC绘制形状
Nov 19 Python
Python函数基本使用原理详解
Mar 19 Python
python基于socket模拟实现ssh远程执行命令
Dec 05 Python
python 基于opencv去除图片阴影
Jan 26 Python
python 实现德洛内三角剖分的操作
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
PHP多例模式介绍
2013/06/24 PHP
php中stream(流)的用法
2014/03/25 PHP
php与flash as3 socket通信传送文件实现代码
2014/08/16 PHP
php中使用base HTTP验证的方法
2015/04/20 PHP
载入进度条 效果
2006/07/08 Javascript
JavaScript语句可以不以;结尾的烦恼
2007/03/08 Javascript
JS 学习笔记 防止发生命名冲突
2009/07/30 Javascript
Jquery中增加参数与Json转换代码
2009/11/20 Javascript
Cookie 小记
2010/04/01 Javascript
利用谷歌地图API获取点与点的距离的js代码
2012/10/11 Javascript
几种设置表单元素中文本输入框不可编辑的方法总结
2013/11/25 Javascript
jQuery平滑旋转幻灯片特效代码分享
2015/09/07 Javascript
Javascript动画效果(4)
2016/10/11 Javascript
js实现3D图片环展示效果
2017/03/09 Javascript
微信小程序 如何引入外部字体库iconfont的图标
2018/01/31 Javascript
浅谈在node.js进入文件目录的问题
2018/05/13 Javascript
详解React+Koa实现服务端渲染(SSR)
2018/05/23 Javascript
浅谈webpack 四个核心概念之Entry
2019/06/12 Javascript
vue实现表单录入小案例
2019/09/27 Javascript
解决vue一个页面中复用同一个echarts组件的问题
2020/07/19 Javascript
用Python中的字典来处理索引统计的方法
2015/05/05 Python
Python实现Sqlite将字段当做索引进行查询的方法
2016/07/21 Python
Python实现的rsa加密算法详解
2018/01/24 Python
Python3爬虫学习之应对网站反爬虫机制的方法分析
2018/12/12 Python
浅谈Python中eval的强大与危害
2019/03/13 Python
自定义Django默认的sitemap站点地图样式
2020/03/04 Python
一家专门经营包包的英国网站:MyBag
2019/09/08 全球购物
中学生校园广播稿
2014/01/16 职场文书
成人继续教育实施方案
2014/03/01 职场文书
优秀教导主任事迹材料
2014/05/09 职场文书
行政专员岗位职责说明书
2014/09/01 职场文书
承兑汇票延期证明
2015/06/23 职场文书
人民调解协议书
2016/03/21 职场文书
Python爬虫框架之Scrapy中Spider的用法
2021/06/28 Python
利用Matlab绘制各类特殊图形的实例代码
2021/07/16 Python
JS实现刷新网页后之前浏览位置保持不变示例详解
2022/08/14 Javascript