<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>项目 on 老张开工了</title>
    <link>/%E9%A1%B9%E7%9B%AE/</link>
    <description>Recent content in 项目 on 老张开工了</description>
    <generator>Hugo</generator>
    <language>zh-cn</language>
    <lastBuildDate>Sat, 30 May 2026 00:00:00 +0000</lastBuildDate>
    <atom:link href="/%E9%A1%B9%E7%9B%AE/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>综合实战：构建命令行工具</title>
      <link>/posts/2026/05/cli-project/</link>
      <pubDate>Sat, 30 May 2026 00:00:00 +0000</pubDate>
      <guid>/posts/2026/05/cli-project/</guid>
      <description>欢迎来到本系列的最后一个项目！经过前面 29 篇文章的学习，你已经掌握了 Python 的方方面面。现在是时候把所有知识串联起来，从零构建一个完整的命令行工具了。&#xA;项目概览：任务管理器 CLI 我们将构建一个&amp;quot;任务管理器&amp;quot;（Task Manager）CLI 工具，它具备以下功能：&#xA;task-cli add &amp;#34;学习 Python 装饰器&amp;#34; --priority high # 添加任务 task-cli list # 列出所有任务 task-cli list --status pending # 按状态筛选 task-cli done 1 # 完成任务 #1 task-cli delete 1 # 删除任务 #1 task-cli show 1 # 查看任务详情 技术栈：纯 Python 标准库 + argparse + dataclasses + JSON 文件持久化。不需要任何第三方依赖。&#xA;第 1 步：项目结构 task-cli/ ├── src/ │ └── task_cli/ │ ├── __init__.py │ ├── __main__.</description>
    </item>
    <item>
      <title>实战项目：电商数据库设计</title>
      <link>/posts/2025/03/ecommerce-database-project/</link>
      <pubDate>Wed, 05 Mar 2025 10:00:00 +0800</pubDate>
      <guid>/posts/2025/03/ecommerce-database-project/</guid>
      <description>本章将综合运用本系列所学的全部知识，设计一个完整的电商数据库系统——从需求分析、表结构设计、到高级查询和性能优化。&#xA;项目需求概述 构建一个支持多用户、多商品的电商平台后台数据库，主要功能包括：&#xA;用户注册与登录 商品浏览与搜索 购物车与下单 订单管理与支付 商品评价 后台数据分析 E-R 图 ┌──────────┐ ┌──────────────┐ ┌────────────┐ │ 用户 │──────→│ 购物车 │──────→│ 商品 │ └──────────┘ └──────────────┘ └────────────┘ ↓ ↑ ┌──────────┐ ┌──────────────┐ ┌──────────────┐ │ 地址 │ │ 订单 │──────→│ 订单明细 │ └──────────┘ └──────────────┘ └──────────────┘ ↓ ┌──────────────┐ ┌──────────────┐ │ 支付记录 │ │ 商品评价 │ └──────────────┘ └──────────────┘ 数据库设计与建表 -- 创建数据库 CREATE DATABASE ecommerce; \c ecommerce -- ============================ -- 1. 用户模块 -- ============================ CREATE TABLE es_users ( user_id SERIAL PRIMARY KEY, username VARCHAR(50) UNIQUE NOT NULL, email VARCHAR(200) UNIQUE NOT NULL, password_hash VARCHAR(255) NOT NULL, phone VARCHAR(20), avatar_url TEXT, member_level VARCHAR(10) DEFAULT &amp;#39;普通&amp;#39; CHECK (member_level IN (&amp;#39;普通&amp;#39;, &amp;#39;银卡&amp;#39;, &amp;#39;金卡&amp;#39;, &amp;#39;钻石&amp;#39;)), status VARCHAR(10) DEFAULT &amp;#39;active&amp;#39; CHECK (status IN (&amp;#39;active&amp;#39;, &amp;#39;locked&amp;#39;, &amp;#39;deleted&amp;#39;)), created_at TIMESTAMPTZ DEFAULT NOW(), updated_at TIMESTAMPTZ DEFAULT NOW() ); -- 用户地址表 CREATE TABLE es_user_addresses ( address_id SERIAL PRIMARY KEY, user_id INTEGER NOT NULL REFERENCES es_users(user_id), receiver_name VARCHAR(50) NOT NULL, receiver_phone VARCHAR(20) NOT NULL, province VARCHAR(50), city VARCHAR(50), district VARCHAR(50), detail_address TEXT NOT NULL, is_default BOOLEAN DEFAULT false, created_at TIMESTAMPTZ DEFAULT NOW() ); -- ============================ -- 2.</description>
    </item>
  </channel>
</rss>
