story update
This commit is contained in:
@@ -12,28 +12,88 @@ class Command(BaseCommand):
|
|||||||
Memory.objects.all().delete()
|
Memory.objects.all().delete()
|
||||||
|
|
||||||
Memory.objects.create(
|
Memory.objects.create(
|
||||||
story_order=10,
|
story_order=20260420,
|
||||||
date=date(2026, 4, 20),
|
date=date(2026, 4, 20),
|
||||||
event_title="第一次遇见你",
|
event_title="第一条私信",
|
||||||
main_text=(
|
main_text=(
|
||||||
"**2026 年 4 月 20 日**,故事从这里开始。\n\n"
|
"**2026 年 4 月 20 日**,故事从屏幕亮起的那一刻开始。\n\n"
|
||||||
|
"成电、读博、课题组……你把担心和好奇都写进了陌生人私信里。"
|
||||||
|
"我被你的文字吸引,于是我们开始了聊天。"
|
||||||
|
),
|
||||||
|
unique_feature_type=Memory.FeatureType.FIRST_MEET,
|
||||||
|
nepal_art_style=Memory.NepalArtStyle.NIGHT_STAR,
|
||||||
|
is_finale=False,
|
||||||
|
)
|
||||||
|
Memory.objects.create(
|
||||||
|
story_order=20260422,
|
||||||
|
date=date(2026, 4, 22),
|
||||||
|
event_title="集电院",
|
||||||
|
main_text=(
|
||||||
|
"**2026 年 4 月 22 日**,给你拍下了集电院,了解到你最害怕冷暴力了。\n\n"
|
||||||
|
"集电,冷暴力,摩斯密码,凌晨2点还在聊。"
|
||||||
|
"万水千山总会有人陪你去看。"
|
||||||
|
),
|
||||||
|
unique_feature_type=Memory.FeatureType.FIRST_MEET_JU,
|
||||||
|
nepal_art_style=Memory.NepalArtStyle.NIGHT_STAR,
|
||||||
|
is_finale=False,
|
||||||
|
)
|
||||||
|
Memory.objects.create(
|
||||||
|
story_order=20260423,
|
||||||
|
date=date(2026, 4, 24),
|
||||||
|
event_title="瑞幸咖啡",
|
||||||
|
main_text=(
|
||||||
|
"**2026 年 4 月 24 日**,你给我买了瑞幸咖啡,留意到我很喜欢喝橙C,桌角的灵笼也被你注意到了。\n\n"
|
||||||
|
"咖啡,橙C,灵笼,喜欢你,喜欢我。"
|
||||||
|
"桌角的细节总会有人注意到。"
|
||||||
|
),
|
||||||
|
unique_feature_type=Memory.FeatureType.FIRST_MEET_RUI,
|
||||||
|
nepal_art_style=Memory.NepalArtStyle.NIGHT_STAR,
|
||||||
|
is_finale=False,
|
||||||
|
)
|
||||||
|
Memory.objects.create(
|
||||||
|
story_order=20260424,
|
||||||
|
date=date(2026, 4, 24),
|
||||||
|
event_title="第一次通电话",
|
||||||
|
main_text=(
|
||||||
|
"**2026 年 4 月 24 日**,第一次通电话,给你说起了我们学校集电事件。\n\n"
|
||||||
|
"第一次听到你的声音,很温柔,很害羞。简单20分钟,希望能够帮助到你。"
|
||||||
|
"这个就是爱情,但不是你们那种样子"
|
||||||
|
),
|
||||||
|
unique_feature_type=Memory.FeatureType.FIRST_MEET_RUI,
|
||||||
|
nepal_art_style=Memory.NepalArtStyle.NIGHT_STAR,
|
||||||
|
is_finale=False,
|
||||||
|
)
|
||||||
|
Memory.objects.create(
|
||||||
|
story_order=20260430,
|
||||||
|
date=date(2026, 4, 30),
|
||||||
|
event_title="高铁相遇",
|
||||||
|
main_text=(
|
||||||
|
"**2026 年 4 月 30 日**,故事从这里开始。\n\n"
|
||||||
"相识、相见、相遇——我把这一页留给那天的风与心跳。"
|
"相识、相见、相遇——我把这一页留给那天的风与心跳。"
|
||||||
),
|
),
|
||||||
unique_feature_type=Memory.FeatureType.STANDARD_NEPAL,
|
unique_feature_type=Memory.FeatureType.FIRST_MEET_TRAIN,
|
||||||
nepal_art_style=Memory.NepalArtStyle.DAWN_MEET,
|
nepal_art_style=Memory.NepalArtStyle.DAWN_MEET,
|
||||||
is_finale=False,
|
is_finale=False,
|
||||||
)
|
)
|
||||||
Memory.objects.create(
|
Memory.objects.create(
|
||||||
story_order=20,
|
story_order=20260503,
|
||||||
date=date(2026, 5, 3),
|
date=date(2026, 5, 3),
|
||||||
event_title="那天我们吵架了",
|
event_title="那天我们吵架了",
|
||||||
main_text="旁人皆三千江水,唯你是心上涟漪。",
|
main_text=(
|
||||||
|
"**那天吵架,不是因为不在意,而是因为我越界了。**\n\n"
|
||||||
|
"我把你和前任之间的事情告诉了别人。那些本该只停留在你我之间的话,"
|
||||||
|
"被我轻率地说出口,最后变成了别人对你评头论足的谈资。\n\n"
|
||||||
|
"我后来写了很长的一段话向你道歉,也向你解释:我不是想伤害你,"
|
||||||
|
"只是我真的做错了。可是我也知道,解释不能抵消伤害,"
|
||||||
|
"对不起这三个字也不该说得太轻。\n\n"
|
||||||
|
"> 那天我最想做的,不是证明自己没有恶意,而是把你重新好好护回我的这一边。"
|
||||||
|
),
|
||||||
unique_feature_type=Memory.FeatureType.FISSURE_PAGE,
|
unique_feature_type=Memory.FeatureType.FISSURE_PAGE,
|
||||||
nepal_art_style=Memory.NepalArtStyle.BLUSH_ARGUE,
|
nepal_art_style=Memory.NepalArtStyle.BLUSH_ARGUE,
|
||||||
is_finale=False,
|
is_finale=False,
|
||||||
)
|
)
|
||||||
Memory.objects.create(
|
Memory.objects.create(
|
||||||
story_order=30,
|
story_order=20260504,
|
||||||
date=date(2026, 5, 4),
|
date=date(2026, 5, 4),
|
||||||
event_title="和好了,在一起吧",
|
event_title="和好了,在一起吧",
|
||||||
main_text=(
|
main_text=(
|
||||||
@@ -45,7 +105,7 @@ class Command(BaseCommand):
|
|||||||
is_finale=False,
|
is_finale=False,
|
||||||
)
|
)
|
||||||
Memory.objects.create(
|
Memory.objects.create(
|
||||||
story_order=40,
|
story_order=20260508,
|
||||||
date=date(2026, 5, 8),
|
date=date(2026, 5, 8),
|
||||||
event_title="一起租了房",
|
event_title="一起租了房",
|
||||||
main_text=(
|
main_text=(
|
||||||
@@ -57,7 +117,7 @@ class Command(BaseCommand):
|
|||||||
is_finale=False,
|
is_finale=False,
|
||||||
)
|
)
|
||||||
Memory.objects.create(
|
Memory.objects.create(
|
||||||
story_order=50,
|
story_order=20260510,
|
||||||
date=date(2026, 5, 10),
|
date=date(2026, 5, 10),
|
||||||
event_title="逛宜家的小日子",
|
event_title="逛宜家的小日子",
|
||||||
main_text=(
|
main_text=(
|
||||||
@@ -69,7 +129,7 @@ class Command(BaseCommand):
|
|||||||
is_finale=False,
|
is_finale=False,
|
||||||
)
|
)
|
||||||
Memory.objects.create(
|
Memory.objects.create(
|
||||||
story_order=90,
|
story_order=20260520,
|
||||||
date=date(2026, 5, 20),
|
date=date(2026, 5, 20),
|
||||||
event_title="心墙与窗 · 终章",
|
event_title="心墙与窗 · 终章",
|
||||||
main_text=(
|
main_text=(
|
||||||
|
|||||||
@@ -5,9 +5,13 @@ class Memory(models.Model):
|
|||||||
"""恋爱故事页,驱动前端尼泊尔本版式。"""
|
"""恋爱故事页,驱动前端尼泊尔本版式。"""
|
||||||
|
|
||||||
class FeatureType(models.TextChoices):
|
class FeatureType(models.TextChoices):
|
||||||
|
FIRST_MEET = "first_meet", "初见·抖音相识"
|
||||||
|
FIRST_MEET_JU = "first_meet_ju", "初见·集电院"
|
||||||
|
FIRST_MEET_RUI = "first_meet_rui", "初见·瑞幸咖啡"
|
||||||
HEART_WINDOW = "heart_window", "心窗页"
|
HEART_WINDOW = "heart_window", "心窗页"
|
||||||
FISSURE_PAGE = "fissure_page", "裂缝对开页"
|
FISSURE_PAGE = "fissure_page", "裂缝对开页"
|
||||||
STANDARD_NEPAL = "standard_nepal", "标准尼泊尔页"
|
STANDARD_NEPAL = "standard_nepal", "标准尼泊尔页"
|
||||||
|
FIRST_MEET_TRAIN = "first_meet_train", "初见·高铁遇见"
|
||||||
|
|
||||||
class NepalArtStyle(models.TextChoices):
|
class NepalArtStyle(models.TextChoices):
|
||||||
"""每页可选不同尼泊尔视觉皮肤(备用可继续加枚举)。"""
|
"""每页可选不同尼泊尔视觉皮肤(备用可继续加枚举)。"""
|
||||||
|
|||||||
97
backend/journal/readme.md
Normal file
97
backend/journal/readme.md
Normal file
@@ -0,0 +1,97 @@
|
|||||||
|
# 手账站开发与运行
|
||||||
|
|
||||||
|
## 访问地址
|
||||||
|
|
||||||
|
| 环境 | 手账站 | Django Admin |
|
||||||
|
|------|--------|----------------|
|
||||||
|
| 本地开发 | http://localhost:5173 | http://localhost:8000/admin/ |
|
||||||
|
| Docker | http://localhost:8080 | http://localhost:8000/admin/ |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 本地开发(推荐)
|
||||||
|
|
||||||
|
前后端各开一个终端。前端 Vite 会把 `/api`、`/media` 代理到 `http://127.0.0.1:8000`,需先启动后端。
|
||||||
|
|
||||||
|
### 后端(Django)
|
||||||
|
|
||||||
|
在项目根目录 `mwy` 下:
|
||||||
|
|
||||||
|
```powershell
|
||||||
|
cd backend
|
||||||
|
python -m venv .venv
|
||||||
|
.\.venv\Scripts\Activate.ps1
|
||||||
|
pip install -r requirements.txt
|
||||||
|
python manage.py migrate
|
||||||
|
python manage.py runserver
|
||||||
|
```
|
||||||
|
|
||||||
|
首次使用 Admin 可创建超级用户:
|
||||||
|
|
||||||
|
```powershell
|
||||||
|
python manage.py createsuperuser
|
||||||
|
```
|
||||||
|
|
||||||
|
导入示例时间线数据(会清空现有 `Memory` 记录):
|
||||||
|
|
||||||
|
```powershell
|
||||||
|
python manage.py seed_nepal_story
|
||||||
|
```
|
||||||
|
|
||||||
|
### 前端(Vue + Vite)
|
||||||
|
|
||||||
|
另开终端,在项目根目录下:
|
||||||
|
|
||||||
|
```powershell
|
||||||
|
cd frontend
|
||||||
|
npm install
|
||||||
|
npm run dev
|
||||||
|
```
|
||||||
|
|
||||||
|
浏览器打开 Vite 提示的地址(默认 http://localhost:5173)。
|
||||||
|
|
||||||
|
可选:指定 API 地址(一般不必,默认走代理 `/api`)
|
||||||
|
|
||||||
|
```powershell
|
||||||
|
# .env 或 .env.local
|
||||||
|
# VITE_API_BASE_URL=http://127.0.0.1:8000/api
|
||||||
|
```
|
||||||
|
|
||||||
|
### 生产构建预览(可选)
|
||||||
|
|
||||||
|
```powershell
|
||||||
|
cd frontend
|
||||||
|
npm run build
|
||||||
|
npm run preview
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Docker 一键启动
|
||||||
|
|
||||||
|
在项目根目录:
|
||||||
|
|
||||||
|
```powershell
|
||||||
|
docker compose up --build
|
||||||
|
```
|
||||||
|
|
||||||
|
- 手账站:http://localhost:8080
|
||||||
|
- Admin:http://localhost:8000/admin/
|
||||||
|
|
||||||
|
数据与媒体挂在 Docker 卷 `backend_data`(SQLite、`media`)。
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 常用命令速查
|
||||||
|
|
||||||
|
```powershell
|
||||||
|
# 后端目录 backend/ 下,且已激活虚拟环境
|
||||||
|
python manage.py migrate
|
||||||
|
python manage.py runserver
|
||||||
|
python manage.py seed_nepal_story
|
||||||
|
python manage.py createsuperuser
|
||||||
|
|
||||||
|
# 前端目录 frontend/ 下
|
||||||
|
npm run dev
|
||||||
|
npm run build
|
||||||
|
```
|
||||||
@@ -1,4 +0,0 @@
|
|||||||
手账站:http://localhost:8080
|
|
||||||
Admin:http://localhost:8000/admin/
|
|
||||||
|
|
||||||
http://localhost:5173/
|
|
||||||
Reference in New Issue
Block a user