From 81e90af094d8ad971f183cc89950a633d69ab1b9 Mon Sep 17 00:00:00 2001 From: MarkusJoe Date: Thu, 14 Apr 2022 22:21:24 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E4=BA=86=E6=96=B0=E7=9A=84?= =?UTF-8?q?=E8=A7=86=E5=9B=BE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/api/__init__.py | 6 ++++++ app/api/views.py | 13 +++++++++++-- app/db/db.py | 5 +++++ app/main/__init__.py | 6 ++++++ app/main/views.py | 35 +++++++++++++++++++++++++---------- app/tests/__init__.py | 2 +- app/utils/__init__.py | 4 +++- app/utils/logger.py | 14 ++++++++++++++ app/utils/view.py | 12 +++++++++++- manage/__init__.py | 6 ------ manage/auth.py | 6 ------ 11 files changed, 82 insertions(+), 27 deletions(-) delete mode 100644 manage/__init__.py delete mode 100644 manage/auth.py diff --git a/app/api/__init__.py b/app/api/__init__.py index 37e97bc..6999019 100644 --- a/app/api/__init__.py +++ b/app/api/__init__.py @@ -11,3 +11,9 @@ from flask import Blueprint api = Blueprint('api', __name__) from . import views, errors + +__all__ = [ + 'api', + 'views', + 'errors' +] diff --git a/app/api/views.py b/app/api/views.py index 7baf257..cd7bccc 100644 --- a/app/api/views.py +++ b/app/api/views.py @@ -119,11 +119,20 @@ def all_tables(): @api.route('/export/', methods=['GET', 'POST']) -@api.route('/export/', methods=['GET', 'POST']) @permission_required -def export(key: str = None): +def export(): """ 导出数据库文件 :return: """ return send_file('./db/data.sqlite', as_attachment=True) + + +@api.route('/test', methods=['GET', 'POST']) +def test_api(): + """ + 测试专用接口 + :return: + """ + data = db().fetch('test-example') + return str(data[1]) diff --git a/app/db/db.py b/app/db/db.py index b9f3cf9..a80b939 100644 --- a/app/db/db.py +++ b/app/db/db.py @@ -141,6 +141,11 @@ class SQLite: return [] def exec(self, cmd: str) -> List[Any]: + """ + 执行特殊sql语句 + :param cmd: + :return: + """ self.__cursor.execute(cmd) result = self.__cursor.fetchall() return result diff --git a/app/main/__init__.py b/app/main/__init__.py index e609c02..a20857b 100644 --- a/app/main/__init__.py +++ b/app/main/__init__.py @@ -11,3 +11,9 @@ from flask import Blueprint main = Blueprint('main', __name__) from . import views, errors + +__all__ = [ + 'main', + 'views', + 'errors' +] diff --git a/app/main/views.py b/app/main/views.py index 3ddd48e..af75cc5 100644 --- a/app/main/views.py +++ b/app/main/views.py @@ -10,9 +10,10 @@ from flask import abort from flask import request from flask import make_response from flask import render_template -from . import main from ..db.db import SQLite as db -from ..utils.view import view +from ..utils.view import view_ +from ..utils.view import listing_ +from . import main @main.route('/', methods=['GET', 'POST']) @@ -25,13 +26,14 @@ def index(): @main.route('/count/', methods=['GET', 'POST']) -def main(name: str): - length = request.args.get('length', type=int) - theme = request.args.get('theme', type=str) - if not bool(length): - length = 7 - if not bool(theme): - theme = 'lewd' +def home(name: str): + """ + 主视图 + :param name: + :return: + """ + length = request.args.get('length', 7, type=int) + theme = request.args.get('theme', 'lewd', type=str) if not db().exists_name(name): db().insert(name) if not db().exists_table(theme): @@ -42,8 +44,21 @@ def main(name: str): db().update(name, 0) # 使用设置的长度减去已有数据的长度, 将结果转换为string类型, 再和数据库内的数据进行拼接 number = '0' * (length - len(str(data[-1]))) + str(data[-1]) - response = make_response(view(theme, int(length), name, number)) + response = make_response(view_(theme, int(length), name, number)) response.headers['Content-Type'] = 'image/svg+xml; charset=utf-8' response.headers['cache-control'] = 'max-age=0, no-cache, no-store, must-revalidate' return response return abort(500) + + +@main.route('/list/', methods=['GET', 'POST']) +def listing(): + """ + 列出所有数据库内已有的数据 + :return: + """ + data = db().exec('select * from reqcount;') + format_data = [] + for i in data: + format_data.append({'name': i[0], 'times': i[1]}) + return listing_(format_data) diff --git a/app/tests/__init__.py b/app/tests/__init__.py index a41bc99..2a83e95 100644 --- a/app/tests/__init__.py +++ b/app/tests/__init__.py @@ -9,5 +9,5 @@ print('Tests models were loaded.') __all__ = [ - + 'test_decorator' ] diff --git a/app/utils/__init__.py b/app/utils/__init__.py index 64da03d..0ea3efc 100644 --- a/app/utils/__init__.py +++ b/app/utils/__init__.py @@ -6,5 +6,7 @@ # @File Name: __init__.py.py __all__ = [ - 'view' + 'view', + 'password', + 'logger' ] diff --git a/app/utils/logger.py b/app/utils/logger.py index e105346..55c1b4b 100644 --- a/app/utils/logger.py +++ b/app/utils/logger.py @@ -12,7 +12,12 @@ from colorlog import ColoredFormatter class CreateLogger: + """创建日志器""" + def __init__(self) -> None: + """ + 初始化类 + """ self.date_format = '%H:%M:%S' self.info_format_console = '%(log_color)s[%(asctime)s] |%(filename)-12s[%(lineno)s] |%(levelname)-8s |%(message)s' self.info_format_file = '[%(asctime)s] |%(filename)s[%(funcName)sline:%(lineno)d] |%(levelname)-8s |%(message)s' @@ -29,6 +34,10 @@ class CreateLogger: datefmt=self.date_format) def get_logger(self) -> logging.Logger: + """ + 设置日志器 + :return: + """ logger = logging.getLogger(__name__) logger.setLevel(logging.DEBUG) console_logger = logging.StreamHandler() # 输出到终端 @@ -44,4 +53,9 @@ class CreateLogger: @staticmethod def init_app(app): + """ + 虚假的init_app静态方法 + :param app: + :return: + """ pass diff --git a/app/utils/view.py b/app/utils/view.py index 3bd5d51..b3e120f 100644 --- a/app/utils/view.py +++ b/app/utils/view.py @@ -12,7 +12,7 @@ from flask import render_template from typing import Tuple -def view(theme: str, length: int, name: str, count: str ) -> str or Tuple[bool, str]: +def view_(theme: str, length: int, name: str, count: str) -> str or Tuple[bool, str]: """ 渲染模板 :param theme: @@ -77,3 +77,13 @@ def view(theme: str, length: int, name: str, count: str ) -> str or Tuple[bool, address=request.remote_addr, general_height=general_height, general_width=general_width) + + +def listing_(data: list): + """ + 展示数据库内所有的数据 + :param data: + :return: + """ + return render_template('list.html', + data=data) diff --git a/manage/__init__.py b/manage/__init__.py deleted file mode 100644 index 50f9ace..0000000 --- a/manage/__init__.py +++ /dev/null @@ -1,6 +0,0 @@ -#!/usr/bin/env python3 -# -- coding:utf-8 -- -# @Author: markushammered@gmail.com -# @Development Tool: PyCharm -# @Create Time: 2022/4/13 -# @File Name: __init__.py.py \ No newline at end of file diff --git a/manage/auth.py b/manage/auth.py deleted file mode 100644 index 40974a6..0000000 --- a/manage/auth.py +++ /dev/null @@ -1,6 +0,0 @@ -#!/usr/bin/env python3 -# -- coding:utf-8 -- -# @Author: markushammered@gmail.com -# @Development Tool: PyCharm -# @Create Time: 2022/4/13 -# @File Name: auth.py \ No newline at end of file