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之做一个小游戏
Sep 28 Python
Python命令启动Web服务器实例详解
Feb 23 Python
Python基础教程之tcp socket编程详解及简单实例
Feb 23 Python
python 每天如何定时启动爬虫任务(实现方法分享)
May 21 Python
在Python 中实现图片加框和加字的方法
Jan 26 Python
django-allauth入门学习和使用详解
Jul 03 Python
Tensorflow实现神经网络拟合线性回归
Jul 19 Python
python可视化实现KNN算法
Oct 16 Python
使用Python爬虫库requests发送请求、传递URL参数、定制headers
Jan 25 Python
深入浅析python 中的self和cls的区别
Jun 20 Python
利用Python函数实现一个万历表完整示例
Jan 23 Python
python process模块的使用简介
May 14 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/02/28 PHP
php网站被挂木马后的修复方法总结
2014/11/06 PHP
基于Jquery的实现回车键Enter切换焦点
2010/09/14 Javascript
在javaScript中关于submit和button的区别介绍
2013/10/20 Javascript
jQuery统计上传文件大小的方法
2015/01/24 Javascript
使用Node.js实现HTTP 206内容分片的教程
2015/06/23 Javascript
javascript中的五种基本数据类型
2015/08/26 Javascript
详解Bootstrap的aria-label和aria-labelledby应用
2016/01/04 Javascript
Hammer.js+轮播原理实现简洁的滑屏功能
2016/02/02 Javascript
Bootstrap3学习笔记(二)之排版
2016/05/20 Javascript
html+js实现简单的计算器代码(加减乘除)
2016/07/12 Javascript
jQuery实现div横向拖拽排序的简单实例
2016/07/13 Javascript
利用JS实现点击按钮后图片自动切换的简单方法
2016/10/24 Javascript
详解关于微信setData回调函数中的坑
2019/02/18 Javascript
vue项目创建并引入饿了么elementUI组件的步骤
2019/04/11 Javascript
Vue中util的工具函数实例详解
2019/07/08 Javascript
js实现无限瀑布流实例方法
2019/09/16 Javascript
Vue el-autocomplete远程搜索下拉框并实现自动填充功能(推荐)
2019/10/25 Javascript
[05:34]2014DOTA2国际邀请赛中国区预选赛精彩TOPPLAY第二弹
2014/06/25 DOTA
python使用PIL模块实现给图片打水印的方法
2015/05/22 Python
python实现简单ftp客户端的方法
2015/06/28 Python
Python3处理HTTP请求的实例
2018/05/10 Python
Django中的文件的上传的几种方式
2018/07/23 Python
Python正则表达式匹配数字和小数的方法
2019/07/03 Python
Python多线程threading join和守护线程setDeamon原理详解
2020/03/18 Python
python 实现简易的记事本
2020/11/30 Python
分享8款纯CSS3实现的搜索框功能
2017/09/14 HTML / CSS
html5在移动端的屏幕适应问题示例探讨
2014/06/15 HTML / CSS
三只松鼠官方旗舰店:全网坚果销售第1
2017/11/25 全球购物
新西兰床上用品和家居用品购物网站:Adairs
2018/04/27 全球购物
工作中的自我评价如何写好
2013/10/28 职场文书
法院答辩状格式
2015/05/22 职场文书
python自动计算图像数据集的RGB均值
2021/06/18 Python
Vue3中toRef与toRefs的区别
2022/03/24 Vue.js
微信小程序 根据不同用户切换不同TabBar
2022/04/21 Javascript
MySQL脏读,幻读和不可重复读
2022/05/11 MySQL