67 lines
4.4 KiB
Markdown
67 lines
4.4 KiB
Markdown
---
|
||
title: "TikTok PM - Python Django 项目"
|
||
type: source
|
||
tags: [django, python, tiktok, mysql, mariadb, docker, bright-data, django-q, product-management]
|
||
date: 2025-11-24
|
||
last_updated: 2026-05-12
|
||
---
|
||
|
||
## Source File
|
||
- [[raw/Others/TikTok PM - Python Django Project.md]]
|
||
|
||
## Summary(用中文描述)
|
||
- 核心主题:TikTok Shop 产品数据管理系统的完整 Django Web 应用开发教程
|
||
- 问题域:电商产品数据抓取、存储、管理与可视化分析
|
||
- 方法/机制:Django ORM + MySQL + Django REST Framework + Docker 容器化部署 + Bright Data API 异步数据抓取 + Django-Q 任务队列
|
||
- 结论/价值:提供从零构建 TikTok 电商产品管理系统的完整技术方案,含 Admin 后台(富文本/缩略图/模态框)、REST API、Docker 生产部署、异步任务队列、JSON 批量导入管理命令
|
||
|
||
## Key Claims(用中文描述)
|
||
- Django Admin 可通过 django-tinymce 富文本编辑器、自定义 Admin 视图、内联关联模型(ProductImage/ProductVideo/ProductVariation/ProductReview)实现复杂产品管理界面
|
||
- Admin 列表页可通过自定义方法显示产品缩略图,并通过 django.jQuery + 模态框 CSS/JS 实现点击放大功能
|
||
- Django REST Framework + django-filter 可快速构建支持快速搜索和多条件过滤的 RESTful API,供 n8n 等自动化工具调用
|
||
- Docker + Gunicorn + Nginx 容器化部署方案通过 `docker compose up --build -d` 实现原子性部署和零停机版本更新
|
||
- Django-Q 异步任务队列可处理 Bright Data 异步 API 调用,实现不阻塞 Web 请求的产品数据抓取与导入
|
||
- 自定义 Django Management Command 可将 JSON 文件批量导入逻辑封装为 `python manage.py import_json_data` 命令
|
||
- 自定义 Admin 视图可通过 `get_urls()` 注册自定义路由,并通过面包屑导航融入 Admin 体系
|
||
|
||
## Key Quotes
|
||
> "无论修改字段类型、添加新字段,还是像您这样修改字段约束(例如从非空改为可空 null=True),都必须遵循这两步流程:makemigrations + migrate" — Django 数据库迁移最佳实践
|
||
|
||
> "原子性部署:docker compose up --build -d 确保了所有依赖项和配置都会在新镜像中构建好,如果构建失败,旧服务不会受到影响" — Docker 生产部署最佳实践
|
||
|
||
> "自定义管理命令可以将 importer_wrapper.py 包装成 python manage.py import_json_data 的形式执行手动导入 JSON 文件" — Django Management Command 最佳实践
|
||
|
||
## Key Concepts
|
||
- [[Django ORM]]:通过 Python 类定义数据库表结构,Django 自动生成 SQL 并管理迁移
|
||
- [[Django REST Framework]]:构建 RESTful API 的 Django 第三方框架,支持序列化器、视图集、过滤和搜索
|
||
- [[Docker 容器化部署]]:使用 Dockerfile + docker-compose.yml 实现应用容器化,结合 Gunicorn + Nginx 进行生产部署
|
||
- [[Django Admin 定制]]:通过 fieldsets、inlines、readonly_fields、list_display、自定义视图实现复杂管理界面
|
||
- [[Django-Q 异步任务]]:Django 异步任务队列,用于处理耗时的外部 API 调用
|
||
- [[Bright Data API]]:第三方数据抓取服务,支持异步请求模式,适合大规模产品数据采集
|
||
- [[MySQL / MariaDB 数据库]]:项目使用 MySQL/MariaDB 作为后端数据库,存储 TikTok 产品数据
|
||
- [[Django Management Command]]:自定义 Django 命令行工具,将 Python 脚本封装为 manage.py 子命令
|
||
- [[Django Admin 自定义视图]]:通过 get_urls() 注册自定义视图页面,融入 Admin 导航体系
|
||
|
||
## Key Entities
|
||
- [[TikTok Shop]]:电商平台,数据来源
|
||
- [[Django]]:Python Web 框架
|
||
- [[Bright Data]]:第三方数据抓取 API 提供商
|
||
- [[MySQL / MariaDB]]:关系型数据库
|
||
- [[Docker]]:容器化平台
|
||
- [[Gunicorn]]:Python WSGI HTTP 服务器
|
||
- [[Nginx]]:反向代理和静态文件服务
|
||
- [[n8n]]:自动化工作流工具(通过 REST API 集成)
|
||
- [[Django-Q]]:Django 异步任务队列
|
||
- [[Django TinyMCE]]:Django 富文本编辑器集成
|
||
|
||
## Connections
|
||
- [[Django REST Framework]] ← builds_on ← [[Django ORM]]
|
||
- [[Docker 容器化部署]] ← extends ← [[Gunicorn]] + [[Nginx]]
|
||
- [[Django-Q 异步任务]] ← used_by ← [[Bright Data API]]
|
||
- [[Django Admin 自定义视图]] ← part_of ← [[Django Admin 定制]]
|
||
- [[Django Management Command]] ← wraps ← JSON 数据导入逻辑
|
||
- [[MySQL / MariaDB]] ← stores ← TikTok 产品数据
|
||
|
||
## Contradictions
|
||
- 暂无发现与其他 Wiki 页面的冲突
|