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__)
|
api = Blueprint('api', __name__)
|
||||||
|
|
||||||
from . import views, errors
|
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/', methods=['GET', 'POST'])
|
||||||
@api.route('/export/<key>', methods=['GET', 'POST'])
|
|
||||||
@permission_required
|
@permission_required
|
||||||
def export(key: str = None):
|
def export():
|
||||||
"""
|
"""
|
||||||
导出数据库文件
|
导出数据库文件
|
||||||
:return:
|
:return:
|
||||||
"""
|
"""
|
||||||
return send_file('./db/data.sqlite', as_attachment=True)
|
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 []
|
return []
|
||||||
|
|
||||||
def exec(self, cmd: str) -> List[Any]:
|
def exec(self, cmd: str) -> List[Any]:
|
||||||
|
"""
|
||||||
|
执行特殊sql语句
|
||||||
|
:param cmd:
|
||||||
|
:return:
|
||||||
|
"""
|
||||||
self.__cursor.execute(cmd)
|
self.__cursor.execute(cmd)
|
||||||
result = self.__cursor.fetchall()
|
result = self.__cursor.fetchall()
|
||||||
return result
|
return result
|
||||||
@@ -11,3 +11,9 @@ from flask import Blueprint
|
|||||||
main = Blueprint('main', __name__)
|
main = Blueprint('main', __name__)
|
||||||
|
|
||||||
from . import views, errors
|
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 request
|
||||||
from flask import make_response
|
from flask import make_response
|
||||||
from flask import render_template
|
from flask import render_template
|
||||||
from . import main
|
|
||||||
from ..db.db import SQLite as db
|
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'])
|
@main.route('/', methods=['GET', 'POST'])
|
||||||
@@ -25,13 +26,14 @@ def index():
|
|||||||
|
|
||||||
|
|
||||||
@main.route('/count/<string:name>', methods=['GET', 'POST'])
|
@main.route('/count/<string:name>', methods=['GET', 'POST'])
|
||||||
def main(name: str):
|
def home(name: str):
|
||||||
length = request.args.get('length', type=int)
|
"""
|
||||||
theme = request.args.get('theme', type=str)
|
主视图
|
||||||
if not bool(length):
|
:param name:
|
||||||
length = 7
|
:return:
|
||||||
if not bool(theme):
|
"""
|
||||||
theme = 'lewd'
|
length = request.args.get('length', 7, type=int)
|
||||||
|
theme = request.args.get('theme', 'lewd', type=str)
|
||||||
if not db().exists_name(name):
|
if not db().exists_name(name):
|
||||||
db().insert(name)
|
db().insert(name)
|
||||||
if not db().exists_table(theme):
|
if not db().exists_table(theme):
|
||||||
@@ -42,8 +44,21 @@ def main(name: str):
|
|||||||
db().update(name, 0)
|
db().update(name, 0)
|
||||||
# 使用设置的长度减去已有数据的长度, 将结果转换为string类型, 再和数据库内的数据进行拼接
|
# 使用设置的长度减去已有数据的长度, 将结果转换为string类型, 再和数据库内的数据进行拼接
|
||||||
number = '0' * (length - len(str(data[-1]))) + str(data[-1])
|
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['Content-Type'] = 'image/svg+xml; charset=utf-8'
|
||||||
response.headers['cache-control'] = 'max-age=0, no-cache, no-store, must-revalidate'
|
response.headers['cache-control'] = 'max-age=0, no-cache, no-store, must-revalidate'
|
||||||
return response
|
return response
|
||||||
return abort(500)
|
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.')
|
print('Tests models were loaded.')
|
||||||
|
|
||||||
__all__ = [
|
__all__ = [
|
||||||
|
'test_decorator'
|
||||||
]
|
]
|
||||||
@@ -6,5 +6,7 @@
|
|||||||
# @File Name: __init__.py.py
|
# @File Name: __init__.py.py
|
||||||
|
|
||||||
__all__ = [
|
__all__ = [
|
||||||
'view'
|
'view',
|
||||||
|
'password',
|
||||||
|
'logger'
|
||||||
]
|
]
|
||||||
@@ -12,7 +12,12 @@ from colorlog import ColoredFormatter
|
|||||||
|
|
||||||
|
|
||||||
class CreateLogger:
|
class CreateLogger:
|
||||||
|
"""创建日志器"""
|
||||||
|
|
||||||
def __init__(self) -> None:
|
def __init__(self) -> None:
|
||||||
|
"""
|
||||||
|
初始化类
|
||||||
|
"""
|
||||||
self.date_format = '%H:%M:%S'
|
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_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'
|
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)
|
datefmt=self.date_format)
|
||||||
|
|
||||||
def get_logger(self) -> logging.Logger:
|
def get_logger(self) -> logging.Logger:
|
||||||
|
"""
|
||||||
|
设置日志器
|
||||||
|
:return:
|
||||||
|
"""
|
||||||
logger = logging.getLogger(__name__)
|
logger = logging.getLogger(__name__)
|
||||||
logger.setLevel(logging.DEBUG)
|
logger.setLevel(logging.DEBUG)
|
||||||
console_logger = logging.StreamHandler() # 输出到终端
|
console_logger = logging.StreamHandler() # 输出到终端
|
||||||
@@ -44,4 +53,9 @@ class CreateLogger:
|
|||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def init_app(app):
|
def init_app(app):
|
||||||
|
"""
|
||||||
|
虚假的init_app静态方法
|
||||||
|
:param app:
|
||||||
|
:return:
|
||||||
|
"""
|
||||||
pass
|
pass
|
||||||
+11
-1
@@ -12,7 +12,7 @@ from flask import render_template
|
|||||||
from typing import Tuple
|
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:
|
:param theme:
|
||||||
@@ -77,3 +77,13 @@ def view(theme: str, length: int, name: str, count: str ) -> str or Tuple[bool,
|
|||||||
address=request.remote_addr,
|
address=request.remote_addr,
|
||||||
general_height=general_height,
|
general_height=general_height,
|
||||||
general_width=general_width)
|
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