Web开发入门|第八部分:Python生态与实战应用 (Ecosystem & Applications)
欢迎来到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函数来处理。
工作流程:
- 用户在浏览器输入URL,发送请求。
- Django的URL分发器捕获请求,匹配URL模式,找到对应的View。
- View被调用,执行业务逻辑。它可能会与Model交互,从数据库中读取或写入数据。
- View加载一个Template,并将数据“填充”进去。
- Template被渲染成最终的HTML字符串。
- 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工程师”变身为“桌面应用开发者”吧!