diff --git a/api.json b/api.json index fba3228..cb0b470 100644 --- a/api.json +++ b/api.json @@ -517,15 +517,6 @@ "sendType": "4" } }, - { - "desc": "志睿择", - "url": "https://www.vipexam.cn/user/identifyingCode.action", - "method": "POST", - "header": "", - "data": { - "phone": "[phone]" - } - }, { "desc": "漏洞银行", "url": "https://www.bugbank.cn/api/verifymobile", diff --git a/flask_app/__init__.py b/flask_app/__init__.py index 01e1d78..3b07407 100644 --- a/flask_app/__init__.py +++ b/flask_app/__init__.py @@ -2,7 +2,11 @@ # app 工厂函数 from flask import Flask from flask_sqlalchemy import SQLAlchemy -import sys,os +from flask_admin import Admin +from flask_admin.contrib.sqla import ModelView +from flask_babelex import Babel +import sys +import os from loguru import logger @@ -22,19 +26,34 @@ logger.add( backtrace=True ) - - app = Flask(__name__) -app.config['SQLALCHEMY_DATABASE_URI'] = prefix + \ - os.path.join(app.root_path, 'data.db') -app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False # 关闭对模型修改的监控 + +# app config + + +class AppConfig: + SQLALCHEMY_DATABASE_URI = prefix + \ + os.path.join(app.root_path, 'data.db') # 数据库路径 + SQLALCHEMY_TRACK_MODIFICATIONS = False # 关闭对模型修改的监控 + FLASK_ADMIN_SWATCH = "cerulean" # admin 主题 + + # 密钥 + SESSION_TYPE = 'filesystem' + SECRET_KEY = os.urandom(24) + + BABEL_DEFAULT_LOCALE = 'zh_CN' # 汉化 + + +app.config.from_object(AppConfig) + +# 扩展 db = SQLAlchemy(app) +babel = Babel(app) + +admin = Admin(app, name="短信接口调试", template_mode='bootstrap3') +from .model import ApisModelVies,Apis +admin.add_view(ApisModelVies(Apis, db.session)) # buleprint from .views import main as main_blueprint app.register_blueprint(main_blueprint) - - - - - diff --git a/flask_app/data.db b/flask_app/data.db index ec54978..40d1700 100644 Binary files a/flask_app/data.db and b/flask_app/data.db differ diff --git a/flask_app/model.py b/flask_app/model.py index e03bf1f..b178e41 100644 --- a/flask_app/model.py +++ b/flask_app/model.py @@ -2,12 +2,24 @@ # 储存数据库模型 from . import db from datetime import datetime +from . import ModelView + +class ApisModelVies(ModelView): + create_template = 'api_edit.html' + edit_template = 'api_edit.html' + # 在当前页面编辑 + # create_modal = True + # edit_modal = True + # 启用搜索 + column_searchable_list = ['desc'] + # 可以导出 csv + can_export = True class Apis(db.Model): id = db.Column(db.Integer, primary_key=True) # 主键 - desc = db.Column(db.String(100)) # 描述 - url = db.Column(db.String(100)) # 链接 - method = db.Column(db.String(10)) # 请求方法 + desc = db.Column(db.String(100), default="Default") # 描述 + url = db.Column(db.String(100), unique=True, nullable=False) # 链接 + method = db.Column(db.Enum("GET","POST"), nullable=False) # 请求方法 header = db.Column(db.String(9999)) # 请求头 data = db.Column(db.String(9999)) # 请求数据 - add_time = db.Column(db.DateTime(), default=datetime.now()) # 添加时间 + add_time = db.Column(db.DateTime(), default=datetime.now) # 添加时间 diff --git a/flask_app/templates/admin.html b/flask_app/templates/admin_back.html similarity index 100% rename from flask_app/templates/admin.html rename to flask_app/templates/admin_back.html diff --git a/flask_app/templates/api_edit.html b/flask_app/templates/api_edit.html new file mode 100644 index 0000000..ba478b6 --- /dev/null +++ b/flask_app/templates/api_edit.html @@ -0,0 +1,9 @@ +{% extends 'admin/model/edit.html' %} + +{% block body %} +

短信接口添加

+

替换字符: 手机号[phone] 时间戳[timestamp]

+{{ super() }} + +{% endblock %} + diff --git a/flask_app/views/__init__.py b/flask_app/views/__init__.py index cd43d14..b611d9b 100644 --- a/flask_app/views/__init__.py +++ b/flask_app/views/__init__.py @@ -2,5 +2,5 @@ from flask import Blueprint main = Blueprint("main",__name__) -from . import views +from . import views, error from .. import db \ No newline at end of file diff --git a/flask_app/views/error.py b/flask_app/views/error.py new file mode 100644 index 0000000..024ce68 --- /dev/null +++ b/flask_app/views/error.py @@ -0,0 +1,16 @@ +#!/usr/bin/python python3 +# coding=utf-8 +from . import main +from flask import redirect, url_for + + +@main.app_errorhandler(404) +def page_not_found(e): + """注册应用全局错误处理""" + print("404") + return redirect(url_for('main.index')) + + +@main.app_errorhandler(401) +def authfail(e): + return redirect('/static/401.jpg') \ No newline at end of file diff --git a/flask_app/views/views.py b/flask_app/views/views.py index 961f098..ca59619 100644 --- a/flask_app/views/views.py +++ b/flask_app/views/views.py @@ -1,7 +1,7 @@ # encoding=utf8 # flask app views from . import main -from .. import db +from flask_app import db @main.route("/",methods=['GET','POST']) def index(): diff --git a/run.py b/run_fask_app.py similarity index 83% rename from run.py rename to run_fask_app.py index 45762ab..38cdd4d 100644 --- a/run.py +++ b/run_fask_app.py @@ -36,8 +36,14 @@ def json2sqlite(): header=str(js['header']) ) # print(api.desc) - db.session.add(api) - db.session.commit() + try: + db.session.add(api) + db.session.commit() + logger.info(f"{api.desc} 写入成功!") + except Exception as e: + db.session.rollback() # 回滚 + logger.error(f"{api.desc}写入数据库错误:{e}") + logger.success("json To sqlite 成功!")