Web开发入门|第八部分:Python生态与实战应用 (Ecosystem & Applications)

发布于 2025-09-11 分类: Python
系列文章: Python全方位教程
第 1 部分: Python语言概览|第一部分:Python入门与环境搭建 (Python Foundations) 第 2 部分: 搭建开发环境|第一部分:Python入门与环境搭建 (Python Foundations) 第 3 部分: Python基本语法与规范|第一部分:Python入门与环境搭建 (Python Foundations) 第 4 部分: 数据类型深入解析|第二部分:Python核心数据类型与运算符 (Core Data Types & Operators) 第 5 部分: 运算符大全|第二部分:Python核心数据类型与运算符 (Core Data Types & Operators) 第 6 部分: 条件与循环|第三部分:流程控制与数据结构操作 (Control Flow & Data Structures Manipulation) 第 7 部分: 数据结构高级操作|第三部分:流程控制与数据结构操作 (Control Flow & Data Structures Manipulation) 第 8 部分: 函数|第四部分:函数、模块与代码组织 (Functions, Modules & Code Organization) 第 9 部分: 模块与包|第四部分:函数、模块与代码组织 (Functions, Modules & Code Organization) 第 10 部分: 类与对象|第五部分:面向对象编程 (Object-Oriented Programming - OOP) 第 11 部分: OOP核心特性|第五部分:面向对象编程 (Object--Oriented Programming - OOP) 第 12 部分: 高级OOP主题|第五部分:面向对象编程 (Object-Oriented Programming - OOP) 第 13 部分: 迭代与生成|第六部分:高级Python编程 (Advanced Python) 第 15 部分: 内存管理与性能|第六部分:高级Python编程 (Advanced Python) 第 16 部分: 文件与目录操作|第七部分:Python标准库精选 (The Standard Library) 第 17 部分: 数据处理与序列化|第七部分:Python标准库精选 (The Standard Library) 第 18 部分: 网络与并发编程|第七部分:Python标准库精选 (The Standard Library) 第 20 部分: 系统交互|第七部分:Python标准库精选 (The Standard Library) 第 21 部分: 数据科学与分析入门|第八部分:Python生态与实战应用 (Ecosystem & Applications) 第 22 部分: Web开发入门|第八部分:Python生态与实战应用 (Ecosystem & Applications) (当前) 第 23 部分: GUI编程入门|第八部分:Python生态与实战应用 (Ecosystem & Applications) 第 24 部分: 图像处理入门|第八部分:Python生态与实战应用 (Ecosystem & Applications) 第 25 部分: 自动化脚本|第八部分:Python生态与实战应用 (Ecosystem & Applications) 第 26 部分: Python备忘单 (Cheatsheet)|第九部分:附录与资源 (Appendix & Resources) 第 27 部分: 常见面试题与解答|第九部分:附录与资源 (Appendix & Resources) 第 28 部分: 官方文档与其他学习资源链接|第九部分:附录与资源 (Appendix & Resources)

欢迎来到Python的“Web建筑工地”!你每天访问的网站、使用的Web App,背后都是由复杂的后端逻辑驱动的。Python凭借其简洁的语法和强大的生态,成为了构建这些后端服务的热门选择。Instagram、Spotify、YouTube (部分) 等知名应用都大量使用了Python。

在Python的Web开发世界里,有许多优秀的框架,最著名的两个是:

  • Django: 一个“大而全”的全功能Web框架。它遵循“自带电池 (batteries included)”的哲学,内置了构建一个完整网站所需的大部分组件,如ORM(数据库操作)、后台管理系统、用户认证、模板引擎等。它强调“不要重复你自己 (DRY)”,推崇快速开发和清晰、实用的设计。
  • Flask: 一个“小而美”的微框架。它只提供最核心的功能(路由和请求处理),其他所有功能(如数据库、表单)都交由第三方扩展来完成。它给予开发者极大的灵活性。

本章,我们将以 Django 为例,快速入门全功能Web框架的概念。我们将了解一个Django项目的基本结构,并亲手创建一个最简单的“Hello, World!”网页。

开始前的准备:
首先,你需要安装Django。在你的命令行/终端中运行:

pip install django

22.1 Django: 全功能Web框架简介

Django的核心理念与MTV模式

Django的核心设计模式是 MTV (Model-Template-View),它与常见的MVC (Model-View-Controller) 模式非常相似:

  • Model (模型): 数据层。负责与数据库进行交互。在Django中,你通过定义Python类来描述你的数据表结构,Django的ORM (Object-Relational Mapper) 会自动将这些类映射成数据库表,并让你能用Python代码来操作数据,而无需编写SQL语句。

  • Template (模板): 表现层。负责生成用户看到的HTML页面。Django的模板语言允许你在HTML中嵌入变量和逻辑(如循环、条件判断),将后端传来的动态数据渲染到页面上。

  • View (视图): 业务逻辑层。它接收用户的HTTP请求,从Model中获取数据,进行各种业务逻辑处理,然后选择一个合适的Template,将处理好的数据传递给模板进行渲染,最后将生成的HTML页面作为HTTP响应返回给用户。

还有一个关键组件:

  • URL Dispatcher (URL分发器): 负责解析用户访问的URL,并根据预定义的URL模式(路由),将请求分发给对应的View函数来处理。

工作流程:

  1. 用户在浏览器输入URL,发送请求。
  2. Django的URL分发器捕获请求,匹配URL模式,找到对应的View。
  3. View被调用,执行业务逻辑。它可能会与Model交互,从数据库中读取或写入数据。
  4. View加载一个Template,并将数据“填充”进去。
  5. Template被渲染成最终的HTML字符串。
  6. View将HTML作为响应返回给用户的浏览器。

创建你的第一个Django项目

让我们通过一个简单的“Hello, World!”项目来感受一下Django的开发流程。

第1步:创建项目
在命令行中,进入你想要存放项目的目录,然后运行:

django-admin startproject myfirstproject

这个命令会创建一个名为 myfirstproject 的目录,结构如下:

myfirstproject/
├── manage.py
└── myfirstproject/
    ├── __init__.py
    ├── settings.py
    ├── urls.py
    ├── asgi.py
    └── wsgi.py
  • manage.py: 一个命令行工具,让你能与Django项目进行各种交互,如启动服务器、创建应用、数据库迁移等。
  • myfirstproject/ (内层): 项目的Python包。
    • settings.py: 项目的配置文件。
    • urls.py: 项目的URL路由配置中心。

第2步:创建应用 (App)
一个Django项目可以由多个“应用”组成。一个应用是一个可重用的Web应用程序,负责实现某个特定的功能(如博客、用户认证)。

进入项目的主目录(包含 manage.py 的那层),运行:

python manage.py startapp hello_app

这会创建一个名为 hello_app 的新目录,这是我们的第一个应用。

第3步:编写第一个视图 (View)
打开 hello_app/views.py 文件,写入以下内容:

# file: hello_app/views.py
from django.http import HttpResponse

def home(request):
    """这是一个视图函数,它接收一个HTTP请求对象,并返回一个HTTP响应对象。"""
    return HttpResponse("<h1>Hello, Django World!</h1>")

第4步:配置URL路由
我们需要告诉Django,当用户访问某个URL时,应该调用我们刚刚创建的 home 视图。

首先,在 hello_app 目录下新建一个 urls.py 文件,内容如下:

# file: hello_app/urls.py
from django.urls import path
from . import views

urlpatterns = [
    # 当访问应用的根路径 (例如 /hello/) 时,调用 views.home 函数
    path('', views.home, name='home'),
]

然后,我们需要将这个应用的URL配置“挂载”到主项目的URL配置中。打开 myfirstproject/urls.py 文件,修改成这样:

# file: myfirstproject/urls.py
from django.contrib import admin
from django.urls import path, include # 确保导入了 include

urlpatterns = [
    path('admin/', admin.site.urls),
    # 将所有以 'hello/' 开头的URL请求,都转发到 hello_app.urls 中去处理
    path('hello/', include('hello_app.urls')),
]

第5步:注册应用
最后一步,我们需要告诉Django项目,hello_app 这个应用是项目的一部分。打开 myfirstproject/settings.py,找到 INSTALLED_APPS 列表,在其中加入你的应用名:

# file: myfirstproject/settings.py
...
INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'hello_app', # <-- 在这里添加你的应用
]
...

第6步:启动开发服务器!
所有配置都完成了!回到命令行,确保你在包含 manage.py 的目录下,然后运行:

python manage.py runserver

你将看到类似以下的输出:

Watching for file changes with StatReloader
Performing system checks...

System check identified no issues (0 silenced).
September 11, 2025 - 15:30:39
Django version 4.x, using settings 'myfirstproject.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CTRL-C.

现在,打开你的浏览器,访问 http://127.0.0.1:8000/hello/

如果一切顺利,你将会在浏览器中看到一个大大的 “Hello, Django World!”。


恭喜你!你刚刚已经成功地搭建并运行了你的第一个Django Web应用。虽然这只是一个简单的开始,但你已经亲身体验了Django从URL路由到视图处理的核心流程。

你已经看到了Django如何通过清晰的结构和强大的工具链来简化Web开发。从这里出发,你可以继续学习:

  • Models: 定义数据模型并与数据库交互。
  • Templates: 创建动态的HTML页面。
  • Django Admin: 自动生成的、功能强大的后台管理界面。
  • Forms: 处理用户提交的表单数据。

在下一章,我们将从Web后端转向桌面端,快速入门Python内置的GUI库 Tkinter,学习如何用Python来创建带有窗口、按钮和文本框的图形用户界面程序。准备好,从“Web工程师”变身为“桌面应用开发者”吧!


-- 感谢阅读 --