Django自学笔记 2-3 视图(view)函数

Django 视图(View) views.py:创建 get_test_1() 用于定义链接,get_test_2() 用于接收一键一值,get_test_3() 用于接收一键多值。项目目录下的 urls.py 中的 urlpatterns 是一个包含 url() 实例的列表。POST 属性是 QueryDict 类型的对象,包含了 post 请求方式的所有参数,与 form 表单中的控件对应。问题:如果在视图、模板中使用硬编码的链接,在 urlconf 发生改变时,维护是一件非常麻烦的事情。,定义本应用中的 urlconf。 阅读详情

————总目录——前言——框架版本————

======================= 大爽歌作,made by big shuang =======================

三 视图(view)函数

参考文献:https://docs.djangoproject.com/en/2.2/topics/http/views/

1- 视图(view)函数介绍

先上一段官方说明:

A view function, or view for short, is simply a Python function that takes a Web request and returns a Web response.
This response can be the HTML contents of a Web page, or a redirect, or a 404 error, or an XML document, or an image . . . or anything, really.
The view itself contains whatever arbitrary logic is necessary to return that response.
This code can live anywhere you want, as long as it’s on your Python path.
There’s no other requirement–no “magic,” so to speak.
For the sake of putting the code somewhere, the convention is to put views in a file called views.py, placed in your project or application directory.

这里我翻译一下上面的意思:
视图函数(或简称为视图,view), 简单来说,就是一个python函数,这个函数有什么特点呢:它接受Web请求(request)并返回Web响应(response)。
这个Web响应(response)可以是网页的HTML内容(HTML contents of a Web page),重定向(redirect),404错误,XML文档或图像…或任何东西!
而视图函数本身(内部)包含返回这个响应所需的任意逻辑,视图函数的代码可以存在于任何您想要的地方,只要这个地方位于您的Python路径上。
没有什么其他的要求,没有什么特殊的技巧或者什么神奇的用法。
但是,为了方便,还是会将其代码集中写在某个地方,惯例是将视图放在名为views.py的文件中,该文件位于项目或应用程序(app)目录中。

回顾我们之前写的一个最简单的视图函数hello

from django.http import HttpResponse

def hello(request):
    return HttpResponse("Hello")

一行一行来解释一下这些代码:

  1. 首先,从django.http模块中导入HttpResponse类
  2. 接下来,我们定义一个名为hello的函数。 这是视图功能。 每个视图函数都将HttpRequest对象作为其第一个参数,通常将其命名为request。
    注意:视图函数的名称并不重要;它不需要遵循特定的方式命名才能让Django识别它。这里我们将它称为hello,因为这个名称清楚地表明了它的作用。
  3. 该视图返回一个HttpResponse对象,其中包含生成的响应,这里是一个简单的"Hello"文本。每个视图函数都需要返回一个HttpResponse对象。(也有例外情况,具体遇到了后面再补充)
    注意:返回一个HttpResponse对象,不代表视图函数一定要写成return HttpResponse("..."),也可以返回一个看起来像其他东西,但实际是HttpResponse对象的或者能生成HttpResponse对象的函数

2- HttpRequest介绍

当页面被请求时,Django会自动创建一个包含请求元数据的HttpRequest对象。
然后Django加载适当的视图,将HttpRequest作为第一个参数传递给视图函数。
视图函数里,通常将其命名为request。

简单介绍HttpRequest对象的几个常用属性:

  • method
    请求中使用的HTTP方法的字符串(这个字符串是大写的)
    这个属性常用于判断这是什么请求
    示例如下
if request.method == 'GET':
    do_something()
elif request.method == 'POST':
    do_something_else()
  • GET
    一个类似字典的对象QueryDict,包含所有给定的HTTP GET参数。HTTP GET参数即get请求通过url传递的参数
    以之前的视图函数和url为例,访问http://127.0.0.1:8000/hello?a=1&a=2&c=3, 其中?后面是get请求传递的参数,所以该request的GET为<QueryDict: {'a': ['1', '2'], 'c': ['3']}>,其中的键值对获取方法和字典的语法等同
  • POST
    一个类似字典的对象QueryDict,包含所有给定的HTTP POST参数,前提是请求包含表单数据。

3- HttpResponse介绍

与Django自动创建的HttpRequest对象不同,HttpResponse对象由开发者负责编写对应的代码去生成。具体来说,开发者要在每个视图中,都负责实例化、填充和返回HttpResponse。

HttpResponse对象的内容可以是一个纯文本,比如上面的HttpResponse("Hello")
HttpResponse对象的内容也可以是html文本(通常都是),比如

def hello(request, name):
    html = "<html><body>Hello, %s</body></html>" % name
    return HttpResponse(html)

上面是一个非常简单的html文本例子,我们可以想像一下,如果html文件一长,这里面就是各种html代码和python代码交错,可读性很差。
所以html文本一般都会放在专门的html文件中
但是我们进一步想一下,如果一个html的内容是写死的话,那么不同的name就不需要不同的html文件了,这不科学,也不现实。
我们有这样一种需要,即html中的内容可以由视图中的python变量动态生成,比如能由视图函数中的name变量生成html中的对应文本。
想要动态的生成html的内容,我们需要使用到模板(template),这个下一章将会讲到。

Django中的--View()视图函数--有哪些强大的功能 本文的最后把 View() 的代码在最后展示了,有兴趣的可以瞄一眼。 了解View() 基本的功能,对于我们在后期项目中操作过程中,百利而无一害,haha。 Ⅰ: _ _ init_ _ 实现的功能 定义了url中的关键字参数是保存在类视图的kwargs属性中 def __init__(self, **kwargs): &amp;quot;&amp;quot;&amp;quot; Constructor. Ca... 阅读详情

相关推荐

Django——Django 中视图(view)的实现原理

Django 中的视图(View) ​ 在 Django 的 MVT 模型中,视图 View 属于 V 层,类似于 MVC 模型中的 C,Controller 层,用来接收前端发出的请求,进行处理后再将结果返回给前端 ​ 视图通过在 app 中的 view.py 文件中实现,实际上视图就是一个个实现网站功能的函数,负责连接 M(模型层)和 T(模板层),实现前后台之间的数据流动 视图工作的原理...

scfor333的博客 1172

Pytorch基础函数(二)变形函数——view()与view_as()

view()函数是用于对Tensor(张量)进行形状变化的函数,如一个Tensor的size是3x2,可以通过view()函数将其形状转为2x3。 但是需要注意的是进行操作的张量必须是contiguous()的,即在在内存中连续的。(不连续可以使用tensor.contiguous()操作转为连续)。 一、view()函数基本操作 函数定义:view(*args) [Ps:...

ADwenwen的博客 1万+

ANSYS/ANSYS Workbench生成mnf文件导入到Adams相关问题浅显解释

ANSYS/ANSYS Workbench生成mnf文件导入到Adams相关问题浅显解释。

weixin_45551870的博客 6984

python中view()函数怎么用?

初学者在使用pytorch框架定义神经网络时,经常会在代码中看到: 这样的用法。 view()的作用相当于numpy中的reshape,重新定义矩阵的形状。例如: import torch a = torch.range(1, 16)

知乎 8万+

【低空经济】森林火情高精度监测与早期预警无人机巡护方案

在全球范围内,森林火灾已成为一个严重的生态和社会问题。它不仅对自然生态系统造成了毁灭性的影响,还对人类的生命财产安全构成了极大的威胁。根据国际森林发展组织的统计,全球每年因森林火灾造成的经济损失高达数百亿美元,甚至在某些年份,火灾损失占到某些国家国民经济总量的相当一部分。因此,开展高效的森林火情监测与早期预警工作显得尤为重要。随着科技的发展,无人机作为新兴的监测工具,以其高效、灵活和经济的特点在森林火灾监测领域展现出了巨大的潜力。

2502_92579126的博客 1212

【QT】基于QSerialPort的跨平台串口通信实战指南

本文是一份基于Qt QSerialPort模块的跨平台串口通信实战指南。详细介绍了从硬件基础、QSerialPort核心类使用、参数配置、设备自动发现到数据异步读写和错误处理的完整流程,并通过构建一个功能齐全的串口调试助手实例,帮助开发者快速掌握在Windows、Linux和macOS系统下进行高效、稳定的串口应用开发。

a1b2c3d的博客 982

Matlab——view函数

MATLAB提供了设置视点的函数view。其调用格式为: view(az,el) az是azimuth(方位角)的缩写,EL是elevation(仰角)的缩写。它们均以度为单位。系统缺省的视点定义为方位角-37.5°,仰角30°。 当x轴平行观察者身体,y轴垂直于观察者身体时,az=0; 以此点为起点,绕着z轴顺时针运动,az为正,逆时针为负。 EL 为观察者眼睛与xy平面形成的角度。 当观察者的眼睛在xy平面上时,el=0; 向上el为正,向下为负; 下面是一些例子: AZ = -37.5, EL = 3

Williamcsj的博客 1万+

.NET 4.0下HttpWebRequest请求HTTPS报错?试试这个注册表修改方案

本文深入解析.NET 4.0下HttpWebRequest请求HTTPS报错问题,提供注册表修改方案以解决'基础连接已经关闭'错误。通过调整SchUseStrongCrypto注册表项,强制使用TLS 1.2等现代加密协议,确保安全连接。适用于企业环境部署和长期维护建议。

weixin_29310631的博客 357

Django的视图View详解

django的view可以是方法,也可以是类,按照django的规则,我们添加的view都要写到app的views.py文件中 其中,方法view我们称之为FBV(function base views),类view我们称之为CBV(class base views) 一般情况下,我们会使用以下两种方式: #url.py from django.contrib import admin ...

豆芽胡的博客 7790

2025年第十六届蓝桥杯省赛C/C++大学B组 个人题解

也是写了写部分题解,朱波也是狠狠水了个省二┭┮﹏┭┮,毕竟许多算法知识没怎么学。

2301_80173664的博客 2431

保姆级教程:在DolphinScheduler 3.x中配置Apache SeaTunnel任务(Flink/Spark双引擎)

本文提供了一份详细的教程,指导如何在DolphinScheduler 3.x中配置Apache SeaTunnel任务,支持Flink和Spark双引擎。从环境准备、脚本选择到配置文件编写和任务调度优化,涵盖了所有关键步骤和常见问题解决方案,帮助用户高效集成SeaTunnel到海豚调度系统中。

weixin_42524945的博客 194

python pytorch中 .view()函数讲解

一、普通用法 (手动调整size) view()相当于reshape、resize,重新调整Tensor的形状。 import torch a1 = torch.arange(0,16) print(a1) tensor([ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15]) a2 = a1.view(8, 2) a3 = a1.view(2, 8) a4 = a1.view(4, 4) print(a2) print(

欢迎关注,共同进步! 5万+

阿里云网络架构设计

背景 一个企业上云,首先要考虑整个网络的规划,涉及到云上和云下的网络规划,云上VPC的规划,云上不同地域VPC的互通,云上可用区的选择等等,所以一定要提前规划好整体的网络架构,现在阿里云云上的虚拟化网络解决方案已经完全转向 了云企业网,所以所有使用阿里云的企业客户多多少少都会使用阿里云的CEN 支撑自己的业务。 云企业网介绍 云企业网(Cloud Enterprise Network)是承载在阿里云提供的高性能、低延迟的私有全球网络上的一张高可用网络。 IDC专线接入CEN 首先面临的是云上和云下打通,那么

修电脑的码农 4840

Django学习笔记2——Django的View(视图)

Django的View 一个视图函数(类),简称视图,是一个简单的Python 函数(类),它接受Web请求并且返回Web响应。响应可以是一张网页的HTML内容,一个重定向,一个404错误,一个XML文档,或者一张图片。 &amp;amp;nbsp; 无论视图本身包含什么逻辑,都要返回响应。代码写在哪里也无所谓,只要它在你当前项目目录下面。除此之外没有更多的要求了——可以说“没有什么神奇的地方...

Dev-L的博客 4669

QT控件 参考Qt的PIMPL设计模式实现使用QWidget控件绘制3D饼状图表和3D柱状图表,使用QChartView绘制圆柱体图表

工作中之前遇到了绘制3D饼状图表的需求,通过Qt 实现3维饼状图 一文,成功迅速解决问题,现在闲下来了,之前看QtTreePropertyBrowser库的源代码,就想着学习学习Qt的PIMPL模式,于是就参照PIMPL模式实现通过QWidget控件的paintEvent函数重新绘制3D饼状图表和3D柱状图表统计数据的显示效果, 而使用QChartView绘制圆柱体图表完全是取巧了,为了紧急完成工作采用的方法,实际上使用3D柱状图表显示统计数据更加合理。

... 727

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

Django的View视图详解

View视图 from rest_framework import mixins mixins.CreateModelMixin, # 创建数据 mixins.RetrieveModelMixin, # 单个查询数据 mixins.UpdateModelMixin, # 覆盖替换数据 mixins.DestroyModelMixin, # 删除数据 mixins.ListModelMixin, # 列表查询数据 视图的作用 Django用“视图”这个概念封装处理用户请求并返回响应的逻辑。 视图是一个

Gscsd的博客 2508

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

Django-视图函数view

目录 1.Django的视图函数view 1.1一个简单的视图 2.CBV和FBV 3.使用Mixin(了解) 4.给视图加装饰器 4.1使用装饰器装饰FBV 4.2使用装饰器装饰CBV ...

weixin_30267697的博客 343

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

Django 视图类 View 类详解

Django 高级实战编程 视频分享地址: https://study.163.com/course/introduction/1209407824.htm?share=2&shareId=400000000535031 使用上面的链接地址进入,联系QQ 1064468942 可获得 部分 学费退还 喔, 实际支出 将少于 所标识的价格 所有的视图类都继承django.views.ge...

weixin_42155685的博客 3112

【Django5】多种视图View

本章内容较多,涉及到了列表、详细、新增、修改、删除视图的内容。为了实现快速开发,Django提供了视图类功能,封装了视图开发常用的代码,这种基于类实现的响应与请求称为CBV ( Class Base Views)。

sishihao的博客 2218

Django之视图函数

一.Django中的视图函数views 一个视图函数(类),简称视图,是一个简单的Python 函数(类),它接受Web请求并且返回Web响应。 响应可以是一张网页的HTML内容,一个重定向,一个404错误,一个XML文档,或者一张图片。 无论视图本身包含什么逻辑,都要返回响应。代码写在哪里也无所谓,只要它在你当前项目目录下面。除此之外没有更多的要求了——可以说“没有什么神奇的地方”。为了将代码放...

她° 2339

django类视图as_view()方法解析

使用视图函数时,django完成URL解析之后,会直接把request对象以及URL解析器捕获的参数(比如re_path中正则表达捕获的位置参数或关键字参数)丢给视图函数,但是在类视图中,这些参数不能直接丢给一个类,所以就有了as_view方法,这个方法只做一件事就是返回一个闭包,这个闭包像视图函数一样接收url解析器传送过来的参数。 先摆个例子放开头,以供参考: # urls.py f...

weixin_30263073的博客 1691

Django的View(视图)

原文链接:https://www.cnblogs.com/maple-shaw/articles/9285269.html 一个视图函数(类),简称视图,是一个简单的Python 函数(类),它接受Web请求并且返回Web响应。 响应可以是一张网页的HTML内容,一个重定向,一个404错误,一个XML文档,或者一张图片。 无论视图本身包含什么逻辑,都要返回响应。代码写在哪里也无...

weixin_34192732的博客 1627

Django系列教程(8)——函数视图及通用类视图

Django的Web开发也遵循经典软件设计MVC模式开发的。View (视图) 主要根据用户的请求返回数据,用来展示用户可以看到的内容(比如网页,图片),也可以用来处理用户提交的数据,比如保存到数据库中。Django的视图(views.py)通常和URL路由(URLconf)一起工作的。服务器在收到用户通过浏览器发来的请求后,会根据用户请求的url地址和urls.py里配置的url-视图映射关系,去执行相应视图函数或视图类,从而返回给客户端响应数据。我们先看一个最简单的函数视图。当用户发来一个请求。

彩蛋在每篇文章的最后名片 1815

Django自学笔记 2-1 URL与View关系

————总目录——前言——框架版本———— ======================= 大爽歌作,made by big shuang ======================= 本文目录一 URL与View关系1- Django处理请求(request)过程 一 URL与View关系 参考:https://docs.djangoproject.com/en/2.2/topics/http/urls/#how-django-processes-a-request 1- Django处理请求(.

大爽老师的博客 944

Django 笔记之 View 视图

视图是Django最重要的模块之一,本文以每个类为一小节,以自己的理解简略介绍的重要API。 文章目录通用视图View方法属性类方法TemplateView父类方法RedirectView父类方法属性展示视图DetailView父类方法ListView父类方法编辑视图FormView父类方法属性CreateView父类方法属性UpdateView父类方法属性DeleteView父类方法属性日期视图...

锐博客 629

python视图函数是什么_Django-视图函数view

1.Django的视图函数view一个视图函数(类),简称视图,是一个简单的Python 函数(类),它接受Web请求并且返回Web响应。响应可以是一张网页的HTML内容,一个重定向,一个404错误,一个XML文档,或者一张图片。无论视图本身包含什么逻辑,都要返回响应。代码写在哪里也无所谓,只要它在你当前项目目录下面。除此之外没有更多的要求了——可以说“没有什么神奇的地方”。为了将代码放在某处,大...

weixin_39722025的博客 705
上一篇: Django自学笔记 2-2 URL详细匹配规则
下一篇: Django自学笔记 3-4 模板继承
大爽歌
博客等级 码龄9年 422粉丝 92原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值