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


相关文章
|
5天前
|
存储 数据挖掘 开发者
Python编程入门:从零到英雄
在这篇文章中,我们将一起踏上Python编程的奇幻之旅。无论你是编程新手,还是希望拓展技能的开发者,本教程都将为你提供一条清晰的道路,引导你从基础语法走向实际应用。通过精心设计的代码示例和练习,你将学会如何用Python解决实际问题,并准备好迎接更复杂的编程挑战。让我们一起探索这个强大的语言,开启你的编程生涯吧!
|
11天前
|
机器学习/深度学习 人工智能 TensorFlow
人工智能浪潮下的自我修养:从Python编程入门到深度学习实践
【10月更文挑战第39天】本文旨在为初学者提供一条清晰的道路,从Python基础语法的掌握到深度学习领域的探索。我们将通过简明扼要的语言和实际代码示例,引导读者逐步构建起对人工智能技术的理解和应用能力。文章不仅涵盖Python编程的基础,还将深入探讨深度学习的核心概念、工具和实战技巧,帮助读者在AI的浪潮中找到自己的位置。
|
11天前
|
机器学习/深度学习 数据挖掘 Python
Python编程入门——从零开始构建你的第一个程序
【10月更文挑战第39天】本文将带你走进Python的世界,通过简单易懂的语言和实际的代码示例,让你快速掌握Python的基础语法。无论你是编程新手还是想学习新语言的老手,这篇文章都能为你提供有价值的信息。我们将从变量、数据类型、控制结构等基本概念入手,逐步过渡到函数、模块等高级特性,最后通过一个综合示例来巩固所学知识。让我们一起开启Python编程之旅吧!
|
11天前
|
存储 Python
Python编程入门:打造你的第一个程序
【10月更文挑战第39天】在数字时代的浪潮中,掌握编程技能如同掌握了一门新时代的语言。本文将引导你步入Python编程的奇妙世界,从零基础出发,一步步构建你的第一个程序。我们将探索编程的基本概念,通过简单示例理解变量、数据类型和控制结构,最终实现一个简单的猜数字游戏。这不仅是一段代码的旅程,更是逻辑思维和问题解决能力的锻炼之旅。准备好了吗?让我们开始吧!
|
2天前
|
数据采集 存储 数据处理
Python中的多线程编程及其在数据处理中的应用
本文深入探讨了Python中多线程编程的概念、原理和实现方法,并详细介绍了其在数据处理领域的应用。通过对比单线程与多线程的性能差异,展示了多线程编程在提升程序运行效率方面的显著优势。文章还提供了实际案例,帮助读者更好地理解和掌握多线程编程技术。
|
5天前
|
存储 人工智能 数据挖掘
Python编程入门:打造你的第一个程序
本文旨在为初学者提供Python编程的初步指导,通过介绍Python语言的基础概念、开发环境的搭建以及一个简单的代码示例,帮助读者快速入门。文章将引导你理解编程思维,学会如何编写、运行和调试Python代码,从而开启编程之旅。
27 2
|
6天前
|
存储 Python
Python编程入门:理解基础语法与编写简单程序
本文旨在为初学者提供一个关于如何开始使用Python编程语言的指南。我们将从安装Python环境开始,逐步介绍变量、数据类型、控制结构、函数和模块等基本概念。通过实例演示和练习,读者将学会如何编写简单的Python程序,并了解如何解决常见的编程问题。文章最后将提供一些资源,以供进一步学习和实践。
16 1
|
9天前
|
存储 网络协议 IDE
从零起步学习Python编程
从零起步学习Python编程
|
12天前
|
机器学习/深度学习 存储 算法
探索Python编程:从基础到高级应用
【10月更文挑战第38天】本文旨在引导读者从Python的基础知识出发,逐渐深入到高级编程概念。通过简明的语言和实际代码示例,我们将一起探索这门语言的魅力和潜力,理解它如何帮助解决现实问题,并启发我们思考编程在现代社会中的作用和意义。
|
7天前
|
机器学习/深度学习 存储 数据挖掘
Python 编程入门:理解变量、数据类型和基本运算
【10月更文挑战第43天】在编程的海洋中,Python是一艘易于驾驭的小船。本文将带你启航,探索Python编程的基础:变量的声明与使用、丰富的数据类型以及如何通过基本运算符来操作它们。我们将从浅显易懂的例子出发,逐步深入到代码示例,确保即使是零基础的读者也能跟上步伐。准备好了吗?让我们开始吧!
17 0
下一篇
无影云桌面