60 lines
1.4 KiB
Python
60 lines
1.4 KiB
Python
# encoding=utf8
|
|
# app 工厂函数
|
|
from flask import Flask
|
|
from flask_sqlalchemy import SQLAlchemy
|
|
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
|
|
|
|
|
|
# 判断系统
|
|
WIN = sys.platform.startswith('win')
|
|
if WIN: # 如果是 Windows 系统,使用三个斜线
|
|
prefix = 'sqlite:///'
|
|
else: # 否则使用四个斜线
|
|
prefix = 'sqlite:////'
|
|
|
|
# 日志处理
|
|
logger.remove()
|
|
logger.add(
|
|
sink=sys.stdout,
|
|
format="<green>{time:YYYY-MM-DD at HH:mm:ss}</green> - <level>{level}</level> - <level>{message}</level>",
|
|
colorize=True,
|
|
backtrace=True
|
|
)
|
|
|
|
app = Flask(__name__)
|
|
|
|
# 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)
|