app.py 2.4 KB
Newer Older
H
hjdhnx 已提交
1 2 3 4
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
# File  : app.py
# Author: DaShenHan&道长-----先苦后甜,任凭晚风拂柳颜------
H
hjdhnx 已提交
5
# Date  : 2022/9/6
H
hjdhnx 已提交
6

H
hjdhnx 已提交
7 8 9 10 11 12 13
from flask.app import Flask
from flask_migrate import Migrate
from base import config
from base.database import db
from utils.log import logger
from utils.system import get_wlan_info,getHost
from controllers import *
14
from js.rules import getRuleLists
H
hjdhnx 已提交
15
import sys
H
hjdhnx 已提交
16

H
hjdhnx 已提交
17
def create_flask_app():
H
hjdhnx 已提交
18 19
    app = Flask(__name__, static_folder='static', static_url_path='/static')
    app.config.from_object(config)  # 单独的配置文件里写了,这里就不用弄json中文显示了
H
hjdhnx 已提交
20 21 22 23
    app.register_blueprint(home.home, url_prefix='')
    app.register_blueprint(admin.admin, url_prefix='/admin')
    app.register_blueprint(vod.vod, url_prefix='')
    app.register_blueprint(cls.cls, url_prefix='/cls')
H
hjdhnx 已提交
24
    app.register_blueprint(layui.layui, url_prefix='/layui')
H
hjdhnx 已提交
25
    app.logger.name = "drLogger"
H
hjdhnx 已提交
26 27 28
    # lsg = service.storage_service()
    logger.info(f"默认解析地址:{app.config.get('PLAY_URL')}")
    # logger.info(f"自定义播放解析地址:{lsg.getItem('PLAY_URL')}")
H
hjdhnx 已提交
29
    logger.info(f'当前操作系统{sys.platform}')
H
hjdhnx 已提交
30
    rule_list = getRuleLists()
H
hjdhnx 已提交
31
    wlan_info,_ = get_wlan_info()
H
hjdhnx 已提交
32
    logger.info(rule_list)
H
hjdhnx 已提交
33
    logger.info(f'局域网: {getHost(1, app.config.get("HTTP_PORT"))}/index\n本地: {getHost(0, app.config.get("HTTP_PORT"))}/index\nwlan_info:{wlan_info}')
H
hjdhnx 已提交
34 35 36
    db.init_app(app)
    db.app = app
    db.create_all(app=app)
H
hjdhnx 已提交
37 38
    return app

H
hjdhnx 已提交
39
app = create_flask_app()
40
migrate = Migrate(app, db)
H
hjdhnx 已提交
41

H
hjdhnx 已提交
42 43 44
now_python_ver = ".".join([str(i) for i in sys.version_info[:3]])
if sys.version_info < (3,9):
    from gevent.pywsgi import WSGIServer
H
hjdhnx 已提交
45 46
    # from gevent import monkey
    # monkey.patch_socket() # 开启socket异步
H
hjdhnx 已提交
47 48 49 50
    print(f'当前python版本{now_python_ver}为3.9.0及以下,支持gevent')
else:
    print(f'当前python版本{now_python_ver}为3.9.0及以上,不支持gevent')

H
hjdhnx 已提交
51
if __name__ == "__main__":
H
hjdhnx 已提交
52 53 54 55 56
    http_port = int(app.config.get('HTTP_PORT', 5705))
    http_host = app.config.get('HTTP_HOST', '0.0.0.0')
    if sys.version_info < (3, 9):
        # server = WSGIServer(('0.0.0.0', 5705), app, handler_class=WebSocketHandler,log=app.logger)
        # server = WSGIServer(('0.0.0.0', 5705), app, handler_class=WebSocketHandler,log=None)
H
hjdhnx 已提交
57
        server = WSGIServer((http_host, http_port), app, log=logger)
H
hjdhnx 已提交
58 59
        server.serve_forever()
    else:
H
hjdhnx 已提交
60
        app.run(debug=False, host=http_host, port=http_port)