Archived
添加了api接口需要key的规则
This commit is contained in:
9 files changed
+151
-40
No files matched your search
+13
-2
@@ -9,12 +9,23 @@ from . import api
|
||||
from flask import jsonify
|
||||
|
||||
|
||||
@api.errorhandler(403)
|
||||
def forbidden(e):
|
||||
return jsonify(
|
||||
{
|
||||
'code': 403,
|
||||
'msg': 'API: 没有权限',
|
||||
'data': None
|
||||
}
|
||||
), 403
|
||||
|
||||
|
||||
@api.errorhandler(404)
|
||||
def page_not_found(e):
|
||||
return jsonify(
|
||||
{
|
||||
'code': 404,
|
||||
'msg': '页面未找到',
|
||||
'msg': 'API: 页面未找到',
|
||||
'data': None
|
||||
}
|
||||
), 404
|
||||
@@ -25,7 +36,7 @@ def internal_server_error(e):
|
||||
return jsonify(
|
||||
{
|
||||
'code': 500,
|
||||
'msg': '服务器内部错误',
|
||||
'msg': 'API: 服务器内部错误',
|
||||
'data': None
|
||||
}
|
||||
), 500
|
||||
@@ -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)
|
||||
Reference in New Issue
Block a user