This repository has been archived on 2026-08-27. You can view files and clone it. You cannot open issues or pull requests or push a commit.
Files
RequestCounter/app/main/views.py
T

62 lines
1.9 KiB
Python
Raw Permalink Normal View History

2022-03-26 08:02:25 +08:00
#!/usr/bin/env python3
# -- coding:utf-8 --
# @Author: markushammered@gmail.com
# @Development Tool: PyCharm
# @Create Time: 2022/3/25
# @File Name: views.py
from flask import abort
from flask import jsonify
from flask import request
from flask import Response
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
@main.route('/', methods=['GET', 'POST'])
def index():
"""
主页
:return:
"""
return render_template('index.html', remote_address=request.remote_addr)
@main.route('/api/v1/<string:name>', methods=['GET', 'POST'])
@main.route('/count/<string:name>', methods=['GET', 'POST'])
def api_v1(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'
if not db().exists_name(name):
db().insert(name)
if not db().exists_table(theme):
abort(500)
if 7 <= length <= 10:
data = db().fetch(name)
number = '0' * (length - len(str(data[-1]))) + str(data[-1])
# 将设置的长度减去数据库内已有的数据库字符串长度剩下的结果为[0]的个数
# 再将这个字符串后拼接上数据库内已有次数的字符串, 就可以得到最终的结果
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('/exists-table', methods=['GET', 'POST'])
@main.route('/exists', methods=['GET', 'POST'])
def show_tables() -> Response:
"""
返回已有表
:return:
"""
tables = db().show_tables
return jsonify({'code': 200, 'msg': '已有表', 'data': [tables]})