5.7 KiB
5.7 KiB
项目标准化与中文注释 (2025-04-21 14:27:33)
User
#角色 你现在是一位资深python架构师 #需求 1.我需要开源这个项目到github,请整改项目使其更加标准化 2.理解项目,并且去除英文注释使用中文注释 3.去除ai项目生成痕迹
Assistant
首先我需要分析这个项目并进行标准化整改。我发现了几个需要修改的关键点:
Searched codebase "utils database config" • **24** results
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 |
Searched codebase "utils login tools" • **15** results
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 |
根据对代码的分析,我需要修复和标准化这个网盘外链管理项目。以下是主要修改内容:
- 修复
proflie
函数名拼写错误 - 将英文注释转为中文
- 更好地组织代码结构
- 添加适当的文档字符串
- 移除AI生成痕迹
以下是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
我将帮您完善整个项目,使其符合开源标准。
#falsk中重定向
@app.route('/profile/')
- def proflie():
+ def profile():
if request.args.get('name'):
return '个人中心页面'