【Python Web 开发精通】第 1 讲 | Web 开发概述与环境搭建:开启你的 Web 开发之旅

发布时间:2026/7/31 13:59:49

【Python Web 开发精通】第 1 讲 | Web 开发概述与环境搭建:开启你的 Web 开发之旅 摘要本讲将带你全面了解 Web 开发的基础知识包括 HTTP 协议、Web 工作原理并手把手搭建 Python Web 开发环境为后续学习打下坚实基础。环境声明在开始之前请确保你的开发环境满足以下要求Python 版本Python 3.12本系列使用 Python 3.12.0开发工具PyCharm Professional 或 VS Code推荐操作系统Windows / macOS / Linux代码通用学习目标完成本讲后你将能够理解 HTTP 协议的基本概念和工作原理掌握 Web 应用的基本架构搭建完整的 Python Web 开发环境创建并运行你的第一个 Web 应用1. Web 开发是什么1.1 从浏览器输入网址说起当你在浏览器地址栏输入www.example.com并按下回车键时背后发生了什么这是一个看似简单却涉及多个环节的过程DNS 解析浏览器将域名转换为 IP 地址建立连接通过 TCP 三次握手与服务器建立连接发送请求浏览器向服务器发送 HTTP 请求服务器处理服务器接收请求并生成响应返回响应服务器将 HTML/CSS/JavaScript 返回给浏览器渲染页面浏览器解析并展示网页内容1.2 Web 开发的核心角色Web 开发涉及三个核心角色角色职责技术栈前端开发构建用户界面HTML、CSS、JavaScript后端开发处理业务逻辑和数据Python、Java、Go 等运维工程师部署和维护服务器Docker、K8s、Nginx本系列聚焦于Python 后端开发但也会涉及必要的前端知识。2. HTTP 协议深度解析2.1 HTTP 是什么HTTPHyperText Transfer Protocol超文本传输协议是 Web 通信的基础协议。它定义了客户端浏览器和服务器之间如何交换数据。可以把 HTTP 想象成一种语言规则客户端用 HTTP 语言向服务器提问服务器用 HTTP 语言回答客户端2.2 HTTP 请求结构一个完整的 HTTP 请求包含以下部分GET /users/123 HTTP/1.1 Host: api.example.com User-Agent: Mozilla/5.0 Accept: application/json Authorization: Bearer token123 {name: 张三}各部分说明请求行包含请求方法GET、请求路径/users/123、HTTP 版本请求头包含主机名、用户代理、接受的数据格式等元信息空行分隔请求头和请求体请求体POST/PUT 请求时携带的数据GET 请求通常没有2.3 HTTP 响应结构服务器返回的 HTTP 响应结构HTTP/1.1 200 OK Content-Type: application/json Content-Length: 123 Date: Mon, 16 Mar 2026 08:00:00 GMT {id: 123, name: 张三, email: zhangsanexample.com}各部分说明状态行HTTP 版本、状态码200、状态描述OK响应头内容类型、长度、日期等元信息空行分隔响应头和响应体响应体实际返回的数据内容2.4 常用 HTTP 方法方法用途幂等性GET获取资源是POST创建资源否PUT更新资源完整是PATCH更新资源部分否DELETE删除资源是幂等性是指多次执行同一操作结果相同不会产生副作用。2.5 HTTP 状态码状态码是服务器对请求处理结果的数字表示2xx 成功200 OK请求成功201 Created资源创建成功204 No Content请求成功但无返回内容3xx 重定向301 Moved Permanently永久重定向302 Found临时重定向4xx 客户端错误400 Bad Request请求参数错误401 Unauthorized未授权403 Forbidden禁止访问404 Not Found资源不存在5xx 服务器错误500 Internal Server Error服务器内部错误502 Bad Gateway网关错误503 Service Unavailable服务不可用3. Web 应用架构基础3.1 客户端-服务器模型Web 应用采用经典的 C/SClient/Server架构------------- HTTP 请求 ------------- | 客户端 | ---------------- | 服务器 | | (浏览器) | ---------------- | (Web 应用) | ------------- HTTP 响应 -------------3.2 Web 服务器与 Web 框架Web 服务器负责接收 HTTP 请求并返回静态文件示例Nginx、ApacheWeb 框架提供开发 Web 应用的工具和结构Python 示例Flask、Django、FastAPIWSGI/ASGI 服务器连接 Web 服务器和 Python 应用的桥梁WSGIGunicorn、uWSGI同步ASGIUvicorn、Hypercorn异步3.3 请求处理流程用户请求 | v Nginx (反向代理) | v Gunicorn/Uvicorn (WSGI/ASGI 服务器) | v Flask/Django/FastAPI (Web 框架) | v 业务逻辑处理 | v 数据库操作 | v 返回响应4. Python Web 开发环境搭建4.1 安装 Python 3.12Windows 用户访问 Python 官网下载 Python 3.12.x 安装包安装时勾选 “Add Python to PATH”验证安装python--version# 输出Python 3.12.xmacOS 用户# 使用 Homebrew 安装brewinstallpython3.12# 验证python3--versionLinux 用户# Ubuntu/Debiansudoaptupdatesudoaptinstallpython3.12 python3.12-venv python3.12-dev# 验证python3.12--version4.2 配置虚拟环境虚拟环境是 Python 项目的隔离空间避免不同项目的依赖冲突。创建虚拟环境# 创建项目目录mkdirpython-web-devcdpython-web-dev# 创建虚拟环境python-mvenv venv激活虚拟环境# Windowsvenv\Scripts\activate# macOS/Linuxsourcevenv/bin/activate激活后命令行前缀会显示(venv)表示当前处于虚拟环境中。4.3 安装 Web 开发依赖创建requirements.txt文件# Web 框架 flask3.0.3 django5.0.6 fastapi0.115.0 # ASGI 服务器 uvicorn0.30.0 # WSGI 服务器 gunicorn23.0.0 # 数据库 sqlalchemy2.0.30 alembic1.13.0 # 其他工具 requests2.32.0 python-dotenv1.0.0安装依赖pipinstall-rrequirements.txt验证安装pip list4.4 配置开发工具VS Code 推荐配置安装以下扩展PythonMicrosoft 官方Pylance类型检查Python Indent自动缩进autoDocstring文档字符串生成创建.vscode/settings.json{python.defaultInterpreterPath:./venv/Scripts/python.exe,python.linting.enabled:true,python.linting.pylintEnabled:true,python.formatting.provider:black,editor.formatOnSave:true,python.analysis.typeCheckingMode:basic}5. 创建你的第一个 Web 应用5.1 使用 Flask 创建简单应用创建app.pyfromflaskimportFlask,jsonify# 创建 Flask 应用实例appFlask(__name__)app.route(/)defhello_world():根路由处理函数returnh1Hello, Web World!/h1app.route(/api/info)defapi_info():返回 JSON 数据的 API 接口returnjsonify({framework:Flask,version:3.0.3,python:3.12})app.route(/user/name)defgreet_user(name):带参数的路由returnfh1Hello,{name}!/h1if__name____main__:# 开发服务器仅用于开发app.run(debugTrue,host0.0.0.0,port5000)运行应用python app.py访问测试浏览器打开http://127.0.0.1:5000/浏览器打开http://127.0.0.1:5000/api/info浏览器打开http://127.0.0.1:5000/user/你的名字5.2 使用 FastAPI 创建异步应用创建fastapi_app.pyfromfastapiimportFastAPIfrompydanticimportBaseModel# 创建 FastAPI 应用实例appFastAPI(title我的第一个 FastAPI 应用)# 定义数据模型classUser(BaseModel):name:strage:intemail:strapp.get(/)asyncdefroot():根路由return{message:Hello, FastAPI World!}app.get(/items/{item_id})asyncdefread_item(item_id:int,q:strNone):带参数的路由return{item_id:item_id,q:q}app.post(/users/)asyncdefcreate_user(user:User):创建用户接口return{message:用户创建成功,user:user.model_dump()}if__name____main__:importuvicorn uvicorn.run(app,host0.0.0.0,port8000)运行应用python fastapi_app.pyFastAPI 会自动生成交互式 API 文档Swagger UI:http://127.0.0.1:8000/docsReDoc:http://127.0.0.1:8000/redoc6. 项目结构规范一个良好的项目结构是代码可维护性的基础python-web-dev/ ├── venv/ # 虚拟环境不提交到版本控制 ├── src/ # 源代码目录 │ ├── __init__.py │ ├── app.py # 应用入口 │ ├── config.py # 配置文件 │ ├── models/ # 数据模型 │ ├── routes/ # 路由定义 │ └── utils/ # 工具函数 ├── tests/ # 测试代码 ├── docs/ # 文档 ├── requirements.txt # 依赖列表 ├── .env # 环境变量不提交 ├── .gitignore # Git 忽略文件 └── README.md # 项目说明创建.gitignore文件# Python __pycache__/ *.py[cod] *$py.class *.so .Python venv/ env/ # IDE .vscode/ .idea/ *.swp *.swo # Environment .env .env.local # Database *.db *.sqlite3 # Logs *.log避坑小贴士问题 1端口被占用错误信息Address already in use解决方案# 查找占用端口的进程# Windowsnetstat-ano|findstr :5000# macOS/Linuxlsof-i:5000# 或者更换端口运行python app.py--port5001问题 2模块导入错误错误信息ModuleNotFoundError解决方案确认虚拟环境已激活确认依赖已安装pip list | grep 模块名检查 Python 路径设置问题 3权限不足错误信息Permission denied解决方案# Windows以管理员身份运行终端# macOS/Linuxsudopython app.py本章小结本讲我们学习了Web 开发基础理解了浏览器与服务器之间的通信流程HTTP 协议掌握了请求/响应结构、常用方法和状态码环境搭建完成了 Python 3.12、虚拟环境、开发工具的配置第一个应用使用 Flask 和 FastAPI 创建了简单的 Web 应用一句话总结Web 开发就是构建能够接收 HTTP 请求、处理业务逻辑、返回响应的应用程序。课后练习基础练习修改 Flask 应用添加一个新的路由/time返回当前服务器时间进阶练习使用 FastAPI 创建一个简单的待办事项 API支持增删改查操作探索练习使用浏览器开发者工具F12查看访问网站时的 HTTP 请求和响应如果本讲内容对你有帮助欢迎点赞、收藏、评论支持你的鼓励是我持续创作的动力。

相关新闻