更新了新的视图

This commit is contained in:
MarkusJoe
2022-04-14 22:21:24 +08:00
parent 3cf3d03762
commit 81e90af094
11 files changed
+82 -27

No files matched your search

+6
View File
@@ -11,3 +11,9 @@ from flask import Blueprint
api = Blueprint('api', __name__)
from . import views, errors
__all__ = [
'api',
'views',
'errors'
]
+11 -2
View File
@@ -119,11 +119,20 @@ def all_tables():
@api.route('/export/', methods=['GET', 'POST'])
@api.route('/export/<key>', 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])
+5
View File
@@ -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
+6
View File
@@ -11,3 +11,9 @@ from flask import Blueprint
main = Blueprint('main', __name__)
from . import views, errors
__all__ = [
'main',
'views',
'errors'
]
+25 -10
View File
@@ -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/<string:name>', 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)
+1 -1
View File
@@ -9,5 +9,5 @@
print('Tests models were loaded.')
__all__ = [
'test_decorator'
]
+3 -1
View File
@@ -6,5 +6,7 @@
# @File Name: __init__.py.py
__all__ = [
'view'
'view',
'password',
'logger'
]
+14
View File
@@ -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
+11 -1
View File
@@ -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)