Python Django 编程 | 连载 03 - Django 视图

简介: Python Django 编程 | 连载 03 - Django 视图

一、初识 Django 中的视图函数

应用中的 views.py 是 Django MTV 架构中的 V,主要负责处理用户请求和生成相应的响应内容返回到前端,然后在 HTML 或者其他类型文档中渲染、显示。

在 django_urls_views 项目中使用命令行创建一个新的应用 quebec

python3 manage.py startapp quebec
复制代码

并在 settings.py 中的 INSTALLED_APPS 中注册该应用

网络异常,图片无法展示
|

在 quebec 应用下的 views.py 中新增视图函数 zulu,该函数有一个 request 参数,并返回一个字符串 Zulu,HttpResponse 可以用来返回字符串,render 则是用来返回一个页面。

from django.shortcuts import render, HttpResponse
def zulu(request):
    return HttpResponse('Zulu')
复制代码

在 quebec 应用中增加urls.py,定义 zulu 函数的路由

from django.urls import path
from .views import zulu
urlpatterns = [
    path('zulu/', zulu),
]
复制代码

将应用中的 urls 与主 urls 进行绑定

# 其余代码保持不变
from xray import urls as xray_urls
from quebec import urls as quebec_urls
urlpatterns = [
    path('admin/', admin.site.urls),
    path('xray/', include(xray_urls)),
    path('quebec/', include(quebec_urls))
]
复制代码

启动应用,浏览器访问 /quebec/zulu/

image.png

页面显示的内容符合预期

二、Django 视图的细节

视图的组成

一个视图函数可以看作由三个部分组成,

  • 用户的请求 request
  • 对用户请求的逻辑处理 handler
  • 将处理后的数据批量返回给用户的响应 response

用户的请求 request

浏览器向服务发送的请求在 Django 中是一个 request 对象,该兑现更包含了用户的信息、请求内容和请求方法,且视图函数中必须要包含一个实例化的 request 对象作为视图函数的参数,否则会报错。

request 对象的常用方法有:

  • request.GET:获取请求 URL 中 ? 后面的Key=Value形式的参数,并保存为一个字典
  • request.POST:获取 POST 请求提交的数据
  • request.path:请求的路径、URI 地址
  • request.method:请求的方法 GET 或者 POST
  • request.COOKIES:请求中的 cookies
  • request.user:请求的用户对象,可以通过它判断用户是否登录并获取用户的信息
  • request.session:当前会话,可读可写类似字典的对象
  • request.META:标准 Python 字典,包含了所有 HTTP 头部,具体的头部信息取决客户端和服务器。

可以通过 dir 函数查看 request 对象的所有方法

用户的响应 responseHttpResponse 可以直接返回字符串内容,而 render 函数则会将上下文中存放的数据在指定的模板中进行渲染。

JsonResponse 返回一个 json 类型,通常用于与前端通过 Ajax 进行交互。

Django 中的视图类Django 中支持视图类写法,视图类要继承 View 类,并通过定义 get 方法和 post 方法来处理前端发来的 GET 请求和 POST 请求,而不用向视图函数那样要先通过 request 对象的 method 方法判断 GET 请求还是 POST 请求。

在 views.py 中定义一个实体类 Whiskey 类,继承 View 类,定义 get 函数处理 GET 请求

from django.views import View
class Whiskey(View):
    def get(self, request):
        return HttpResponse('Class View Whiskey!')
复制代码

在 quebec 应用下的 urls.py 中定义视图类的路由。

path('whiskey/', views.Whiskey.as_view())
复制代码

启动应用,在浏览器中访问 /quebec/whiskey/

image.png

三、RESTful 规范

RESTFUL是一种网络应用程序的设计风格和开发方式,基于HTTP,可以使用XML格式定义或JSON格式定义。RESTFUL适用于移动互联网厂商作为业务接口的场景,实现第三方OTT调用移动网络资源的功能,动作类型为新增、变更、删除所调用资源。

REST 指的是一组架构约束条件和原则。满足这些约束条件和原则的应用程序或设计就是 RESTful。

互联网所有的事务都可以被抽象为资源,例如:.txt .html .jpg .mp3 .mp4等,RESTful 架构风格就是围绕资源展开的,资源操作都是统一接口的:

  • GET(SELECT):从服务器取出资源(一项或多项)
  • POST(CREATE):在服务器新建一个资源
  • PUT(UPDATE):在服务器更新资源(客户端提供完整资源数据)
  • PATCH(UPDATE):在服务器更新资源(客户端提供需要修改的资源数据)
  • DELETE(DELETE):从服务器删除资源
  • URI:每一个URI(统一资源定位符)指向一个特定的资源。通过URI来访问资源。最典型的URI就是URL。
  • 无状态:所有的资源,都可以通过URI定位,而且这个定位与其他资源无关。例如无需登录就可以通过URL查看,就是无状态。需要登录才能查看,是有状态。

RESTful 风格使使请求路径变得更加简洁,传递、获取参数值更加方便,并且框架会自动进行类型转换。


相关文章
|
22天前
|
人工智能 数据可视化 数据挖掘
探索Python编程:从基础到高级
在这篇文章中,我们将一起深入探索Python编程的世界。无论你是初学者还是有经验的程序员,都可以从中获得新的知识和技能。我们将从Python的基础语法开始,然后逐步过渡到更复杂的主题,如面向对象编程、异常处理和模块使用。最后,我们将通过一些实际的代码示例,来展示如何应用这些知识解决实际问题。让我们一起开启Python编程的旅程吧!
|
21天前
|
存储 数据采集 人工智能
Python编程入门:从零基础到实战应用
本文是一篇面向初学者的Python编程教程,旨在帮助读者从零开始学习Python编程语言。文章首先介绍了Python的基本概念和特点,然后通过一个简单的例子展示了如何编写Python代码。接下来,文章详细介绍了Python的数据类型、变量、运算符、控制结构、函数等基本语法知识。最后,文章通过一个实战项目——制作一个简单的计算器程序,帮助读者巩固所学知识并提高编程技能。
|
9天前
|
Unix Linux 程序员
[oeasy]python053_学编程为什么从hello_world_开始
视频介绍了“Hello World”程序的由来及其在编程中的重要性。从贝尔实验室诞生的Unix系统和C语言说起,讲述了“Hello World”作为经典示例的起源和流传过程。文章还探讨了C语言对其他编程语言的影响,以及它在系统编程中的地位。最后总结了“Hello World”、print、小括号和双引号等编程概念的来源。
101 80
|
8天前
|
分布式计算 大数据 数据处理
技术评测:MaxCompute MaxFrame——阿里云自研分布式计算框架的Python编程接口
随着大数据和人工智能技术的发展,数据处理的需求日益增长。阿里云推出的MaxCompute MaxFrame(简称“MaxFrame”)是一个专为Python开发者设计的分布式计算框架,它不仅支持Python编程接口,还能直接利用MaxCompute的云原生大数据计算资源和服务。本文将通过一系列最佳实践测评,探讨MaxFrame在分布式Pandas处理以及大语言模型数据处理场景中的表现,并分析其在实际工作中的应用潜力。
37 2
|
21天前
|
小程序 开发者 Python
探索Python编程:从基础到实战
本文将引导你走进Python编程的世界,从基础语法开始,逐步深入到实战项目。我们将一起探讨如何在编程中发挥创意,解决问题,并分享一些实用的技巧和心得。无论你是编程新手还是有一定经验的开发者,这篇文章都将为你提供有价值的参考。让我们一起开启Python编程的探索之旅吧!
44 10
|
23天前
|
机器学习/深度学习 人工智能 数据挖掘
探索Python编程的奥秘
在数字世界的海洋中,Python如同一艘灵活的帆船,引领着无数探险者穿梭于数据的波涛之中。本文将带你领略Python编程的魅力,从基础语法到实际应用,一步步揭开Python的神秘面纱。
41 12
|
22天前
|
IDE 程序员 开发工具
Python编程入门:打造你的第一个程序
迈出编程的第一步,就像在未知的海洋中航行。本文是你启航的指南针,带你了解Python这门语言的魅力所在,并手把手教你构建第一个属于自己的程序。从安装环境到编写代码,我们将一步步走过这段旅程。准备好了吗?让我们开始吧!
|
23天前
|
关系型数据库 开发者 Python
Python编程中的面向对象设计原则####
在本文中,我们将探讨Python编程中的面向对象设计原则。面向对象编程(OOP)是一种通过使用“对象”和“类”的概念来组织代码的方法。我们将介绍SOLID原则,包括单一职责原则、开放/封闭原则、里氏替换原则、接口隔离原则和依赖倒置原则。这些原则有助于提高代码的可读性、可维护性和可扩展性。 ####
|
21天前
|
人工智能 数据挖掘 开发者
探索Python编程之美:从基础到进阶
本文是一篇深入浅出的Python编程指南,旨在帮助初学者理解Python编程的核心概念,并引导他们逐步掌握更高级的技术。文章不仅涵盖了Python的基础语法,还深入探讨了面向对象编程、函数式编程等高级主题。通过丰富的代码示例和实践项目,读者将能够巩固所学知识,提升编程技能。无论你是编程新手还是有一定经验的开发者,这篇文章都将为你提供有价值的参考和启示。让我们一起踏上Python编程的美妙旅程吧!
|
24天前
|
机器学习/深度学习 人工智能 自然语言处理
探索未来编程:Python在人工智能领域的深度应用与前景###
本文将深入探讨Python语言在人工智能(AI)领域的广泛应用,从基础原理到前沿实践,揭示其如何成为推动AI技术创新的关键力量。通过分析Python的简洁性、灵活性以及丰富的库支持,展现其在机器学习、深度学习、自然语言处理等子领域的卓越贡献,并展望Python在未来AI发展中的核心地位与潜在变革。 ###