添加了api接口需要key的规则

This commit is contained in:
MarkusJoe
2022-04-10 14:31:24 +08:00
parent b59bf10970
commit bf9b3fac1f
9 files changed
+151 -40

No files matched your search

+45
View File
@@ -6,14 +6,33 @@
# @File Name: views.py
import os
from functools import wraps
from flask import abort
from flask import jsonify
from flask import request
from flask import send_file
from ..db.db import SQLite as db
from . import api
def permission_required(func):
@wraps(func)
def decorated_func(*args, **kwargs):
if request.args.get('key') != os.getenv('ACCESS_KEY'):
abort(403)
return func(*args, **kwargs)
return decorated_func
@api.route('/overall/', methods=['GET', 'POST'])
@permission_required
def overall():
"""
查询ReqCount表内所有的源数据
:return:
"""
limit = request.args.get('limit', type=int)
try:
data = db().exec('select * from reqcount;')
@@ -38,7 +57,12 @@ def overall():
@api.route('/query/', methods=['GET', 'POST'])
@permission_required
def query():
"""
查询指定名称的计数数据
:return:
"""
name = request.args.get('name', type=str)
nochange = request.args.get('nochange', type=bool)
if nochange:
@@ -63,7 +87,12 @@ def query():
@api.route('/theme/', methods=['GET', 'POST'])
@permission_required
def theme():
"""
查询数据库内主题的源数据
:return:
"""
_theme = request.args.get('name', type=str)
if not db().exists_table(_theme):
return jsonify(
@@ -85,7 +114,12 @@ def theme():
@api.route('/alltables/', methods=['GET', 'POST'])
@permission_required
def all_tables():
"""
查询所有已有表
:return:
"""
data = db().show_tables
return jsonify(
{
@@ -94,3 +128,14 @@ def all_tables():
'data': data
}
), 200
@api.route('/export/', methods=['GET', 'POST'])
@api.route('/export/<key>', methods=['GET', 'POST'])
@permission_required
def export(key: str = None):
"""
导出数据库文件
:return:
"""
return send_file('./db/data.sqlite', as_attachment=True)