241 lines
5.7 KiB
Markdown
241 lines
5.7 KiB
Markdown
<!-- 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 '个人中心页面'
|
||
```
|
||
|
||
---
|
||
|
||
|
||
|
||
---
|
||
|
||
|
||
|
||
---
|
||
|