TenantDrive/.specstory/history/2025-04-21_06-27-项目标准化与中文注释.md

241 lines
5.7 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!-- Generated by SpecStory -->
# 项目标准化与中文注释 (2025-04-21 14:27:33)
_**User**_
#角色
你现在是一位资深python架构师
#需求
1.我需要开源这个项目到github,请整改项目使其更加标准化
2.理解项目,并且去除英文注释使用中文注释
3.去除ai项目生成痕迹
---
_**Assistant**_
---
首先我需要分析这个项目并进行标准化整改。我发现了几个需要修改的关键点:
---
<details>
<summary>Searched codebase "utils database config" • **24** results</summary>
| File | Lines |
|------|-------|
| `utils/detebase.py` | L1-54 |
| `utils/detebase.py` | L91-135 |
| `utils/detebase.py` | L54-91 |
| `init_db.py` | L1-36 |
| `utils/detebase.py` | L135-184 |
| `utils/detebase.py` | L184-217 |
| `main.py` | L1-49 |
| `utils/detebase.py` | L399-444 |
| `utils/detebase.py` | L261-312 |
| `init_db.py` | L36-40 |
| `utils/detebase.py` | L371-399 |
| `main.py` | L58-65 |
| `utils/detebase.py` | L312-335 |
| `utils/detebase.py` | L444-468 |
| `utils/detebase.py` | L217-261 |
| `utils/detebase.py` | L335-371 |
| `main.py` | L49-58 |
| `main.py` | L537-551 |
| `config.py` | L1-2 |
| `utils/login.py` | L47-62 |
| `main.py` | L348-389 |
| `main.py` | L284-328 |
| `main.py` | L240-284 |
| `utils/login.py` | L1-47 |
</details>
---
<details>
<summary>Searched codebase "utils login tools" • **15** results</summary>
| File | Lines |
|------|-------|
| `utils/login.py` | L47-62 |
| `utils/login.py` | L1-47 |
| `utils/tools.py` | L1-22 |
| `utils/detebase.py` | L184-217 |
| `utils/detebase.py` | L135-184 |
| `utils/detebase.py` | L399-444 |
| `utils/detebase.py` | L1-54 |
| `utils/detebase.py` | L371-399 |
| `utils/detebase.py` | L217-261 |
| `utils/detebase.py` | L91-135 |
| `utils/detebase.py` | L54-91 |
| `utils/detebase.py` | L312-335 |
| `utils/detebase.py` | L261-312 |
| `utils/detebase.py` | L444-468 |
| `utils/detebase.py` | L335-371 |
</details>
---
根据对代码的分析,我需要修复和标准化这个网盘外链管理项目。以下是主要修改内容:
1. 修复`proflie`函数名拼写错误
2. 将英文注释转为中文
3. 更好地组织代码结构
4. 添加适当的文档字符串
5. 移除AI生成痕迹
以下是`main.py`中需要修改的核心部分:
```python:main.py
# 导入标准库
import os
import json
import sqlite3
import logging
from datetime import datetime, timezone
from logging.handlers import RotatingFileHandler
# 导入第三方库
import requests
from flask import Flask, render_template, request, redirect, url_for, session, make_response, send_from_directory, jsonify
from flask import g
from flask.views import MethodView
from werkzeug.routing import BaseConverter
# 导入自定义模块
from utils.login import login_quark
from utils.tools import get_cnb_weburl
from utils.detebase import CloudDriveDatabase
# 初始化应用
app = Flask(__name__)
app.jinja_env.auto_reload = True
# 日志设置
if not os.path.exists('logs'):
os.mkdir('logs')
# 使用RotatingFileHandler防止日志文件无限增长
file_handler = RotatingFileHandler('logs/app.log', maxBytes=10240, backupCount=10)
file_handler.setFormatter(logging.Formatter(
'%(asctime)s %(levelname)s: %(message)s [in %(pathname)s:%(lineno)d]'
))
file_handler.setLevel(logging.INFO) # 设置为INFO级别捕获信息、警告和错误
app.logger.addHandler(file_handler)
app.logger.setLevel(logging.INFO)
app.logger.info('Flask应用启动')
# 数据库配置
DATABASE = 'database.db'
def get_db():
"""
获取数据库连接
从Flask的全局对象g中获取数据库连接确保在一个请求中只创建一个数据库连接
"""
db = getattr(g, '_database', None)
if db is None:
db = g._database = CloudDriveDatabase(DATABASE)
db.row_factory = sqlite3.Row
return db
# 定义数据库注入装饰器
def inject_db(f):
"""数据库注入装饰器,自动将数据库连接作为第一个参数传递给函数"""
def decorated_function(*args, **kwargs):
db = get_db()
# 将db作为第一个参数传递
return f(db, *args, **kwargs)
return decorated_function
@app.teardown_appcontext
def close_connection(exception):
"""在请求结束时关闭数据库连接"""
db = getattr(g, '_database', None)
if db is not None:
db.close()
# 自定义路由转换器
class PhoneConverter(BaseConverter):
"""手机号码格式转换器"""
regex = '1[3-9]\d{9}'
class LiConverter(BaseConverter):
"""列表转换器"""
def to_python(self, value):
return value.split("+")
# 注册自定义转换器
app.url_map.converters["phone"] = PhoneConverter
app.url_map.converters["li"] = LiConverter
@app.route("/", methods=["GET", "POST"])
def index():
"""网站首页"""
return render_template('index.html')
@app.route('/profile/')
def profile():
"""个人中心页面,修正了原来的拼写错误(proflie)"""
if request.args.get('name'):
return '个人中心页面'
else:
return redirect(url_for('index'), code=302)
@app.route('/demo2')
def demo2():
"""响应示例页面"""
resp = make_response('make response测试')
resp.headers['itbaizhan'] = 'Python'
resp.status = '404 not found'
return resp
```
我发现还有很多其他需要改进的地方包括工具函数、API接口和数据库操作。您希望我继续完善主文件并创建一个标准的开源项目结构吗
---
_**User**_
是的,完善整个项目
---
_**Assistant**_
---
我将帮您完善整个项目,使其符合开源标准。
---
```diff
#falsk中重定向
@app.route('/profile/')
- def proflie():
+ def profile():
if request.args.get('name'):
return '个人中心页面'
```
---
---
---