Archived
更新了新的视图
This commit is contained in:
11 files changed
+82
-27
No files matched your search
@@ -11,3 +11,9 @@ from flask import Blueprint
|
||||
api = Blueprint('api', __name__)
|
||||
|
||||
from . import views, errors
|
||||
|
||||
__all__ = [
|
||||
'api',
|
||||
'views',
|
||||
'errors'
|
||||
]
|
||||
+11
-2
@@ -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])
|
||||
@@ -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
|
||||
@@ -11,3 +11,9 @@ from flask import Blueprint
|
||||
main = Blueprint('main', __name__)
|
||||
|
||||
from . import views, errors
|
||||
|
||||
__all__ = [
|
||||
'main',
|
||||
'views',
|
||||
'errors'
|
||||
]
|
||||
+25
-10
@@ -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)
|
||||
@@ -9,5 +9,5 @@
|
||||
print('Tests models were loaded.')
|
||||
|
||||
__all__ = [
|
||||
|
||||
'test_decorator'
|
||||
]
|
||||
@@ -6,5 +6,7 @@
|
||||
# @File Name: __init__.py.py
|
||||
|
||||
__all__ = [
|
||||
'view'
|
||||
'view',
|
||||
'password',
|
||||
'logger'
|
||||
]
|
||||
@@ -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
@@ -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)
|
||||
@@ -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
|
||||
@@ -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
|
||||
Reference in New Issue
Block a user