Skip to content

Commit 0617146

Browse files
committed
up
1 parent 567fe6b commit 0617146

89 files changed

Lines changed: 59274 additions & 119 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

docs/blog/index.md

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,11 @@
1-
# Blog
21

2+
# 欢迎来到博客板块
3+
4+
## 📅 关于日期说明
5+
6+
本博客使用自动时间记录功能:
7+
- **创建时间**:自动从文件系统获取
8+
- **修改时间**:自动从文件系统获取
9+
- **Blog文章**:需要设置默认日期(格式:`date: 2025-01-01`
10+
11+
> 💡 **提示**:在blog文章中,只需添加简单的日期即可,真实的创建和修改时间会自动显示在页面底部!

docs/blog/posts/test-comment.md

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,19 @@
11
---
22
title: 测试评论功能
3-
date: 2025-01-25
3+
date: 2025-01-01 # 默认日期,实际创建/修改时间由document-dates插件自动显示
44
categories:
55
- 测试
66
tags:
77
- 评论
88
- 测试
9+
comments: true
910
---
1011

11-
# 测试评论功能
12+
# 评论
1213

1314
这是一个测试页面,用于验证评论系统在白天模式下的显示效果。
1415

15-
## 内容
16+
# 内容
1617

1718
这里是一些测试内容,用来查看评论系统是否正常工作。
1819

docs/blog/posts/test1.md

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
---
2+
title: 测试评论功能
3+
date: 2025-01-01 # 默认日期,实际创建/修改时间由document-dates插件自动显示
4+
categories:
5+
- 测试
6+
tags:
7+
- 评论
8+
- 测试
9+
comments: true
10+
---
11+
12+
# 评论
13+
14+
这是一个测试页面,用于验证评论系统在白天模式下的显示效果。
15+
16+
# 内容
17+
18+
这里是一些测试内容,用来查看评论系统是否正常工作。
19+
20+
请在下方留言测试评论功能!

docs/develop/backend/api.md

Lines changed: 230 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,230 @@
1+
# API 设计
2+
3+
## RESTful API 设计原则
4+
5+
### 基本原则
6+
- **资源导向**:API 应该基于资源而不是动作
7+
- **统一接口**:使用标准的 HTTP 方法(GET, POST, PUT, DELETE)
8+
- **无状态**:每个请求都应该包含完成请求所需的所有信息
9+
- **可缓存**:响应应该明确是否可缓存
10+
11+
### HTTP 方法使用
12+
```http
13+
GET /api/users # 获取用户列表
14+
GET /api/users/123 # 获取特定用户
15+
POST /api/users # 创建新用户
16+
PUT /api/users/123 # 更新用户信息
17+
DELETE /api/users/123 # 删除用户
18+
```
19+
20+
### 状态码规范
21+
- `200 OK` - 请求成功
22+
- `201 Created` - 资源创建成功
23+
- `400 Bad Request` - 请求参数错误
24+
- `401 Unauthorized` - 未授权
25+
- `403 Forbidden` - 权限不足
26+
- `404 Not Found` - 资源不存在
27+
- `500 Internal Server Error` - 服务器内部错误
28+
29+
### 响应格式
30+
```json
31+
{
32+
"code": 200,
33+
"message": "success",
34+
"data": {
35+
"users": []
36+
}
37+
}
38+
```
39+
40+
## Python API 开发
41+
42+
### Flask RESTful API 示例
43+
```python
44+
from flask import Flask, jsonify, request
45+
from flask_restful import Api, Resource
46+
47+
app = Flask(__name__)
48+
api = Api(app)
49+
50+
class UserList(Resource):
51+
def get(self):
52+
users = [{'id': 1, 'name': '张三'}, {'id': 2, 'name': '李四'}]
53+
return jsonify({'users': users})
54+
55+
def post(self):
56+
data = request.get_json()
57+
# 创建用户逻辑
58+
return jsonify({'message': '用户创建成功'}), 201
59+
60+
class User(Resource):
61+
def get(self, user_id):
62+
# 获取特定用户逻辑
63+
return jsonify({'user': {'id': user_id, 'name': '张三'}})
64+
65+
def put(self, user_id):
66+
data = request.get_json()
67+
# 更新用户逻辑
68+
return jsonify({'message': '用户更新成功'})
69+
70+
def delete(self, user_id):
71+
# 删除用户逻辑
72+
return jsonify({'message': '用户删除成功'})
73+
74+
api.add_resource(UserList, '/api/users')
75+
api.add_resource(User, '/api/users/<int:user_id>')
76+
77+
if __name__ == '__main__':
78+
app.run(debug=True)
79+
```
80+
81+
### FastAPI 示例
82+
```python
83+
from fastapi import FastAPI, HTTPException
84+
from pydantic import BaseModel
85+
from typing import List
86+
87+
app = FastAPI()
88+
89+
class User(BaseModel):
90+
id: int
91+
name: str
92+
email: str
93+
94+
# 模拟数据库
95+
users_db = []
96+
97+
@app.get("/api/users", response_model=List[User])
98+
def get_users():
99+
return users_db
100+
101+
@app.post("/api/users", response_model=User)
102+
def create_user(user: User):
103+
users_db.append(user)
104+
return user
105+
106+
@app.get("/api/users/{user_id}", response_model=User)
107+
def get_user(user_id: int):
108+
for user in users_db:
109+
if user.id == user_id:
110+
return user
111+
raise HTTPException(status_code=404, detail="用户不存在")
112+
113+
@app.put("/api/users/{user_id}", response_model=User)
114+
def update_user(user_id: int, user: User):
115+
for i, existing_user in enumerate(users_db):
116+
if existing_user.id == user_id:
117+
users_db[i] = user
118+
return user
119+
raise HTTPException(status_code=404, detail="用户不存在")
120+
121+
@app.delete("/api/users/{user_id}")
122+
def delete_user(user_id: int):
123+
for i, user in enumerate(users_db):
124+
if user.id == user_id:
125+
del users_db[i]
126+
return {"message": "用户删除成功"}
127+
raise HTTPException(status_code=404, detail="用户不存在")
128+
```
129+
130+
## API 文档
131+
132+
### Swagger/OpenAPI
133+
- **Flask**: 使用 `flask-restx` 自动生成 Swagger 文档
134+
- **FastAPI**: 内置 OpenAPI 文档支持,访问 `/docs`
135+
136+
### 文档示例
137+
```python
138+
from fastapi import FastAPI
139+
from pydantic import BaseModel
140+
141+
app = FastAPI(title="用户管理API",
142+
description="用户管理的RESTful API",
143+
version="1.0.0")
144+
145+
class User(BaseModel):
146+
"""用户模型"""
147+
id: int
148+
name: str
149+
email: str
150+
151+
@app.get("/api/users")
152+
def get_users():
153+
"""
154+
获取所有用户
155+
156+
Returns:
157+
List[User]: 用户列表
158+
"""
159+
pass
160+
```
161+
162+
## API 安全
163+
164+
### 认证方式
165+
- **JWT (JSON Web Token)**
166+
- **OAuth 2.0**
167+
- **API Key**
168+
169+
### JWT 示例
170+
```python
171+
from fastapi import FastAPI, Depends, HTTPException
172+
from fastapi.security import HTTPBearer, HTTPAuthorizationCredentials
173+
import jwt
174+
175+
app = FastAPI()
176+
security = HTTPBearer()
177+
178+
SECRET_KEY = "your-secret-key"
179+
180+
def verify_token(credentials: HTTPAuthorizationCredentials = Depends(security)):
181+
token = credentials.credentials
182+
try:
183+
payload = jwt.decode(token, SECRET_KEY, algorithms=["HS256"])
184+
return payload
185+
except jwt.ExpiredSignatureError:
186+
raise HTTPException(status_code=401, detail="Token已过期")
187+
except jwt.InvalidTokenError:
188+
raise HTTPException(status_code=401, detail="Token无效")
189+
190+
@app.get("/api/protected")
191+
def protected_route(user_data: dict = Depends(verify_token)):
192+
return {"message": "这是受保护的路由", "user": user_data}
193+
```
194+
195+
## API 测试
196+
197+
### 使用 pytest
198+
```python
199+
# test_api.py
200+
import pytest
201+
from fastapi.testclient import TestClient
202+
from main import app
203+
204+
client = TestClient(app)
205+
206+
def test_get_users():
207+
response = client.get("/api/users")
208+
assert response.status_code == 200
209+
assert isinstance(response.json(), list)
210+
211+
def test_create_user():
212+
user_data = {"id": 1, "name": "测试用户", "email": "test@example.com"}
213+
response = client.post("/api/users", json=user_data)
214+
assert response.status_code == 201
215+
assert response.json()["name"] == "测试用户"
216+
```
217+
218+
## 最佳实践
219+
220+
1. **版本控制**: 在 URL 中包含版本号 `/api/v1/users`
221+
2. **分页**: 对列表数据提供分页支持 `/api/users?page=1&limit=10`
222+
3. **过滤**: 支持数据过滤 `/api/users?role=admin&status=active`
223+
4. **排序**: 支持结果排序 `/api/users?sort=name&order=asc`
224+
5. **错误处理**: 提供详细的错误信息和调试建议
225+
6. **限流**: 实现 API 调用频率限制
226+
7. **监控**: 记录 API 调用日志和性能指标
227+
228+
---
229+
230+
*持续更新中...*

docs/develop/backend/database.md

Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
1+
# 数据库技术
2+
3+
数据库相关技术和最佳实践。
4+
5+
## 关系型数据库
6+
7+
### MySQL
8+
```sql
9+
-- 创建数据库
10+
CREATE DATABASE myapp;
11+
12+
-- 创建表
13+
CREATE TABLE users (
14+
id INT PRIMARY KEY AUTO_INCREMENT,
15+
name VARCHAR(100),
16+
email VARCHAR(100) UNIQUE
17+
);
18+
```
19+
20+
### PostgreSQL
21+
```sql
22+
-- PostgreSQL 特有功能
23+
CREATE TABLE products (
24+
id SERIAL PRIMARY KEY,
25+
name VARCHAR(100),
26+
metadata JSONB
27+
);
28+
```
29+
30+
## NoSQL 数据库
31+
32+
### MongoDB
33+
```javascript
34+
// MongoDB 文档示例
35+
{
36+
"name": "John",
37+
"age": 30,
38+
"hobbies": ["reading", "coding"]
39+
}
40+
```
41+
42+
### Redis
43+
```redis
44+
# Redis 命令
45+
SET user:1:name "John"
46+
GET user:1:name
47+
```
48+
49+
## 数据库设计
50+
51+
- 范式理论
52+
- 索引优化
53+
- 查询优化
54+
55+
---
56+
57+
*数据是应用的核心,合理设计很重要*

docs/develop/backend/index.md

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
# 后端开发
2+
3+
后端开发相关文档和笔记。
4+
5+
## 技术栈
6+
7+
- Python/Java/Node.js
8+
- 数据库技术
9+
- API 设计
10+
11+
## 子分类
12+
13+
- [Python](./python.md) - Python 开发笔记
14+
- [数据库](./database.md) - 数据库相关
15+
- [API设计](./api.md) - API 设计规范
16+
17+
---
18+
19+
*后端开发基础扎实,才能构建稳定的应用*

0 commit comments

Comments
 (0)