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中super关键字用法实例分析
May 28 Python
利用Python实现网络测试的脚本分享
May 26 Python
Python输出带颜色的字符串实例
Oct 10 Python
python中数据爬虫requests库使用方法详解
Feb 11 Python
Python3使用正则表达式爬取内涵段子示例
Apr 22 Python
Python+Pandas 获取数据库并加入DataFrame的实例
Jul 25 Python
python将一个英文语句以单词为单位逆序排放的方法
Dec 20 Python
python使用requests.session模拟登录
Aug 09 Python
python构建指数平滑预测模型示例
Nov 21 Python
Windows 平台做 Python 开发的最佳组合(推荐)
Jul 27 Python
Python如何定义有默认参数的函数
Aug 10 Python
详解python 内存优化
Aug 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 file_get_contents抓取Gzip网页乱码的三种解决方法
2013/11/12 PHP
教你如何快捷的使用cmd访问mysql小技巧
2014/05/26 PHP
PHP7.1实现的AES与RSA加密操作示例
2018/06/15 PHP
Laravel框架使用技巧之使用url()全局函数返回前一个页面的地址方法详解
2020/04/06 PHP
Js动态创建div
2008/09/25 Javascript
用JavaScript计算在UTF-8下存储字符串占用字节数
2013/08/08 Javascript
ExtJS4如何给同一个formpanel不同的url
2014/05/02 Javascript
分享20款美化网站的 jQuery Lightbox 灯箱插件
2014/10/10 Javascript
简介JavaScript中用于处理正切的Math.tan()方法
2015/06/15 Javascript
js实现横向伸展开的二级导航菜单代码
2015/08/28 Javascript
Angular在一个页面中使用两个ng-app的方法
2017/02/20 Javascript
基于vue2的table分页组件实现方法
2017/03/20 Javascript
巧用weui.topTips验证数据的实例
2017/04/17 Javascript
Ionic3 UI组件之autocomplete详解
2017/06/08 Javascript
详解如何构建一个Angular6的第三方npm包
2018/09/07 Javascript
详解IOS微信上Vue单页面应用JSSDK签名失败解决方案
2018/11/14 Javascript
微信公众平台获取access_token的方法步骤
2019/03/29 Javascript
如何使用CSS3和JQuery easing 插件制作绚丽菜单
2019/06/18 jQuery
vue-mugen-scroll组件实现pc端滚动刷新
2019/08/16 Javascript
python函数局部变量用法实例分析
2015/08/04 Python
win10下tensorflow和matplotlib安装教程
2018/09/19 Python
Python实现一个数组除以一个数的例子
2019/07/20 Python
超简单的Python HTTP服务
2019/07/22 Python
Python模块汇总(常用第三方库)
2019/10/07 Python
详解使用python爬取抖音app视频(appium可以操控手机)
2021/01/26 Python
美国首屈一指的礼品篮供应商:GiftTree
2018/01/06 全球购物
活动邀请函范文
2014/01/19 职场文书
乡镇三项教育实施方案
2014/03/30 职场文书
收入及婚姻状况证明
2014/11/20 职场文书
英语辞职信范文
2015/02/28 职场文书
贫民窟的百万富翁观后感
2015/06/09 职场文书
2015年乡镇食品安全工作总结
2015/10/22 职场文书
《狼牙山五壮士》读后感:宁死不屈,视死如归
2019/08/16 职场文书
导游词之大雁塔景区
2019/09/17 职场文书
判断Python中的Nonetype类型
2021/05/25 Python
MySQL时区造成时差问题
2022/04/13 MySQL