文章

Python 教程拆解索引 · 03:前端、环境与数据库

#249 · 2026-05-13 · Python 教程拆解

说明:本文基于 Day21-30/Day31-35/Day36-40/ 做原创教学整理,不复写原教程内容。

系列导航02 语言地基|03 工程配套|04 后端主线

本篇对应材料Day21-30/Day31-35/Day36-40/

定位更正:这一页现在是章节索引,不再承担“前端 + Linux + 数据库三合一教程”的正文任务。

本章细教程

已经拆开的源文件

原仓库文件 主题 教程
Day21-30/21-30.Web前端概述.md + Day31-35/31-35.玩转Linux操作系统.md + Day36-40/36.关系型数据库和MySQL概述.md HTML、HTTP 服务、SQLite 原型 03A
Day36-40/39.Python程序接入MySQL数据库.md PyMySQL 连接、事务、CRUD 03B

下一批应该继续拆的文件

  • Day36-40/37.SQL详解.md
  • Day36-40/38.深入MySQL.md
  • Day31-35/31-35.玩转Linux操作系统.md(可继续拆命令行/环境变量/服务管理)

很多人看到这段目录会皱眉:学 Python,怎么突然冒出 HTML、Linux、数据库?

因为到这一步,目标已经不是“会语法”,而是“能做一个最小系统”。

所以今天我们做一个简单但非常有代表性的练习:留言板原型

今天你要做出的结果

你会完成三件事:

  1. 写一个静态页面;
  2. 用本地 HTTP 服务把页面跑起来;
  3. 用 SQLite 存一张留言表。

虽然它还不是完整网站,但它已经把前端、运行环境、数据库三块串起来了。

Step 1:先写一个前端页面

新建 practice/day03/index.html

<!doctype html>
<html lang="zh-CN">
<head>
  <meta charset="UTF-8">
  <title>留言板原型</title>
  <style>
    body { font-family: sans-serif; max-width: 720px; margin: 40px auto; }
    input, textarea { width: 100%; margin: 8px 0; padding: 8px; }
    button { padding: 8px 16px; }
  </style>
</head>
<body>
  <h1>留言板原型</h1>
  <form>
    <input type="text" placeholder="你的名字">
    <textarea rows="5" placeholder="写点什么"></textarea>
    <button type="button">提交</button>
  </form>
</body>
</html>

这一步对应的就是 Day21-30 里最基础的那部分:HTML 承载内容,CSS 让页面能看。

Step 2:像 Linux/运维那样把它跑起来

进入目录:

cd practice/day03
python -m http.server 9000

浏览器打开:

http://127.0.0.1:9000

这一步虽然简单,但它会让你第一次直观看到:

  • 一个目录如何被服务出去;
  • 一个端口如何对外提供访问;
  • 为什么“程序运行环境”本身就是工程的一部分。

这就是 Day31-35 的现实意义:不是背命令,而是知道程序怎么活着。

Step 3:给系统接一个数据库

新建 practice/day03/init_db.py

import sqlite3


conn = sqlite3.connect("guestbook.db")
cursor = conn.cursor()

cursor.execute("""
CREATE TABLE IF NOT EXISTS messages (
    id INTEGER PRIMARY KEY AUTOINCREMENT,
    author TEXT NOT NULL,
    content TEXT NOT NULL
)
""")

cursor.execute(
    "INSERT INTO messages(author, content) VALUES (?, ?)",
    ("张三", "第一条留言")
)

conn.commit()
conn.close()

print("数据库初始化完成")

运行:

python init_db.py

Step 4:再写一个查询脚本

新建 practice/day03/query_db.py

import sqlite3


conn = sqlite3.connect("guestbook.db")
cursor = conn.cursor()

cursor.execute("SELECT id, author, content FROM messages ORDER BY id DESC")
rows = cursor.fetchall()

for row in rows:
    print(row)

conn.close()

运行:

python query_db.py

输出类似:

(1, '张三', '第一条留言')

这一步对应的就是 Day36-40 最核心的意识:数据要落库,系统才能真正形成状态。

这个小练习为什么值钱

因为它让你一次性感受到三件事:

  1. 前端不是装饰,而是用户接触系统的第一层;
  2. Linux/运行环境不是附属,而是程序真正的生存空间;
  3. 数据库不是可选项,而是业务系统的中心。

本篇练习

  1. 给页面加一个留言列表区域。
  2. 在数据库里插入 3 条不同留言。
  3. 尝试在终端里用 sqlite3 guestbook.db 查看表结构(如果本机装了 sqlite3 CLI)。

常见坑

  • 坑 1:以为前端、Linux、数据库是平行知识点。 项目里它们是一条链。
  • 坑 2:只会 python xxx.py,不会起本地服务。 那你对“应用怎么被访问”没有概念。
  • 坑 3:把数据库当成可选配件。 一旦涉及业务数据,数据库几乎就是主角。

上一篇Python 教程拆解 · 02:基础语法与语言地基
下一篇Python 教程拆解 · 04:Django 与 FastAPI