重写了app内的主函数, 并支持了MySQL数据库, 将所有关于数据库操作的代码全部重写

This commit is contained in:
MarkusJoe
2022-02-28 21:18:05 +08:00
parent ea66246d66
commit c2e757f90a
19 files changed
+839 -516

No files matched your search

+24 -44
View File
@@ -9,74 +9,54 @@
from typing import Optional
from flask import jsonify
from flask import Response
from bin.db.db import SQLite
from bin.utils.logger import logger
class ErrorProcess:
"""处理错误的页面"""
def __init__(self) -> None:
self.msg_template = {'code': -2,
'msg': Optional[str],
'data': Optional[list]}
def get_theme_list(self) -> Response:
def __init__(self, db) -> None:
"""
直接获取可选主题
:return:
初始化
:param db:
"""
logger.debug('获取主题')
table_list = SQLite().fetch_table()
self.msg_template['code'] = 200
self.msg_template['msg'] = '当前已保存到数据库的主题如下'
self.msg_template['data'] = table_list
return jsonify(self.msg_template)
self.db = db # 数据库对象
self.response = {'code': Optional[int],
'msg': Optional[str],
'data': Optional[list]}
def error_theme(self, theme: str) -> Response:
def theme_error(self, theme: str) -> Response:
"""
错误的主题
:param theme:
:return:
"""
logger.debug('错误的主题')
table_list = SQLite().fetch_table()
self.msg_template['code'] = -2
self.msg_template['msg'] = f'错误的主题: {theme}. 以下是已保存的主题'
self.msg_template['data'] = table_list
return jsonify(self.msg_template)
table_list = self.db().show_tables
self.response['code'] = -2
self.response['msg'] = f'错误的主题: {theme}. 以下是已保存的主题'
self.response['data'] = table_list
return jsonify(self.response)
def error_length(self, length: int or str) -> Response:
def length_error(self, length: int or str) -> Response:
"""
数值太长显示此页面
:param length:
:return:
"""
logger.debug('错误的长度')
self.msg_template['code'] = -2
self.msg_template['msg'] = f'错误的长度: {length}'
self.msg_template['data'] = None
return jsonify(self.msg_template)
self.response['code'] = -2
self.response['msg'] = f'错误的长度: {length}'
self.response['data'] = []
return jsonify(self.response)
def too_lang_to_count(self, name: str) -> Response:
def count_error(self, name: str) -> Response:
"""
数据过长重置数据
:param name:
:return:
"""
logger.debug('超出计数器最大计数限制')
SQLite().update_data(name, 0)
self.msg_template['code'] = 200
self.msg_template['msg'] = '当前长度已超过最大可计数范围. 已将此名称的计数器重置为零'
self.msg_template['data'] = None
return jsonify(self.msg_template)
def arg_not_be_full(self) -> Response:
"""
参数不完整
:return:
"""
logger.debug('参数不完整')
self.msg_template['code'] = -2
self.msg_template['msg'] = '参数填写错误或填写不完整'
self.msg_template['data'] = None
return jsonify(self.msg_template)
self.db().update(name, 0)
self.response['code'] = 200
self.response['msg'] = '当前长度已超过最大可计数范围. 已将此名称的计数器重置为零'
self.response['data'] = []
return jsonify(self.response)
+36
View File
@@ -0,0 +1,36 @@
#!/usr/bin/env python3
# -- coding:utf-8 --
# @Author: markushammered@gmail.com
# @Development Tool: PyCharm
# @Create Time: 2022/2/28
# @File Name: features.py
from typing import Optional
from flask import jsonify
from flask import Response
class Features:
"""特殊操作"""
def __init__(self, db) -> None:
"""
初始化
:param db:
"""
self.db = db
self.response = {'code': Optional[int],
'msg': Optional[str],
'data': Optional[list]}
def theme_list(self) -> Response:
"""
读取已有数据库并返回一个列表
:return:
"""
table_list = self.db().show_tables
self.response['code'] = 200
self.response['msg'] = '当前已保存到数据库的主题如下'
self.response['data'] = table_list
return jsonify(self.response)
-29
View File
@@ -1,29 +0,0 @@
#!/usr/bin/env python3
# -- coding:utf-8 --
# @Author: markushammered@gmail.com
# @Development Tool: PyCharm
# @Create Time: 2022/2/18
# @File Name: packing_logs.py
import os
import time
import tarfile
def make_targz():
"""
打包为tar.gz
压缩文件
:return:
"""
output_dir = f'./static/cache/{time.strftime("%Y-%m-%d %H")}.tar.gz'
tar = tarfile.open(output_dir, 'w:gz')
for root, dir, files in os.walk('./bin/log'):
for file in files:
pathfile = os.path.join(root, file)
tar.add(pathfile)
tar.close()
__all__ = ['make_targz']
+50 -53
View File
@@ -7,72 +7,69 @@
from flask import render_template
from bin.db.db import SQLite
def view_template(style: str, length: int, name: str, count: str) -> str or tuple[bool, str]:
def view_template(style: str, length: int, name: str, count: str, DB) -> str or tuple[bool, str]:
"""
渲染模板
:param count:
:param name:
:param length:
:param style:
:param length:
:param name:
:param count:
:param DB:
:return:
"""
if style not in SQLite().fetch_table(): # 选择的主题不在数据库内
return [False, 'BadLength']
origin_data = SQLite().fetch_style_data(style) # 获取数据库内的数据
datas = DB().fetching_table(style)
context = []
if count != '0000000000':
for i in count: # 通过elif语句依次判断数字
if i == '0':
context.append({'base64': origin_data[0]['base64'],
'width': origin_data[0]['width'],
'height': origin_data[0]['height']})
elif i == '1':
context.append({'base64': origin_data[1]['base64'],
'width': origin_data[1]['width'],
'height': origin_data[1]['height']})
elif i == '2':
context.append({'base64': origin_data[2]['base64'],
'width': origin_data[2]['width'],
'height': origin_data[2]['height']})
elif i == '3':
context.append({'base64': origin_data[3]['base64'],
'width': origin_data[3]['width'],
'height': origin_data[3]['height']})
elif i == '4':
context.append({'base64': origin_data[4]['base64'],
'width': origin_data[4]['width'],
'height': origin_data[4]['height']})
elif i == '5':
context.append({'base64': origin_data[5]['base64'],
'width': origin_data[5]['width'],
'height': origin_data[5]['height']})
elif i == '6':
context.append({'base64': origin_data[6]['base64'],
'width': origin_data[6]['width'],
'height': origin_data[6]['height']})
elif i == '7':
context.append({'base64': origin_data[7]['base64'],
'width': origin_data[7]['width'],
'height': origin_data[7]['height']})
elif i == '8':
context.append({'base64': origin_data[8]['base64'],
'width': origin_data[8]['width'],
'height': origin_data[8]['height']})
elif i == '9':
context.append({'base64': origin_data[9]['base64'],
'width': origin_data[9]['width'],
'height': origin_data[9]['height']})
for i in count:
if i == '0':
context.append({'base64': datas[0]['base64'],
'width': datas[0]['width'],
'height': datas[0]['height']})
elif i == '1':
context.append({'base64': datas[1]['base64'],
'width': datas[1]['width'],
'height': datas[1]['height']})
elif i == '2':
context.append({'base64': datas[2]['base64'],
'width': datas[2]['width'],
'height': datas[2]['height']})
elif i == '3':
context.append({'base64': datas[3]['base64'],
'width': datas[3]['width'],
'height': datas[3]['height']})
elif i == '4':
context.append({'base64': datas[4]['base64'],
'width': datas[4]['width'],
'height': datas[4]['height']})
elif i == '5':
context.append({'base64': datas[5]['base64'],
'width': datas[5]['width'],
'height': datas[5]['height']})
elif i == '6':
context.append({'base64': datas[6]['base64'],
'width': datas[6]['width'],
'height': datas[6]['height']})
elif i == '7':
context.append({'base64': datas[7]['base64'],
'width': datas[7]['width'],
'height': datas[7]['height']})
elif i == '8':
context.append({'base64': datas[8]['base64'],
'width': datas[8]['width'],
'height': datas[8]['height']})
elif i == '9':
context.append({'base64': datas[9]['base64'],
'width': datas[9]['width'],
'height': datas[9]['height']})
for p, i in zip(context, range(0, length)):
p['position'] = i * p['width'] # 设置每张图片对应的位置
general_width = origin_data[0]['width'] * length # 计算出图片总长度
general_height = origin_data[0]['height'] # 总宽度
general_width = datas[0]['width'] * length # 计算出图片总长度
general_height = datas[0]['height'] # 总宽度
return True, render_template('view.html',
return render_template('view.html',
context=context,
title=name,
general_height=general_height,