コード例 #1
0
ファイル: db.py プロジェクト: hoperong/nut_python_api
def create_db(current_app):
    from app.config.common import config

    conn = config.get("DB_CONNECTION")
    echo = config.get("DB_ECHO")
    db.update(conn, echo)
    from sqlalchemy_utils import database_exists, create_database

    if not database_exists(db.get_engine().url):
        create_database(db.get_engine().url,
                        encoding=config.get("DB_URL_ENCODING"))
コード例 #2
0
ファイル: app_runner.py プロジェクト: hoperong/nut_python_api
def init_db():
    """
    自动创建数据库,更新sql,进行数据填充
    """
    from alembic import command
    from alembic.config import Config
    from app.config.common import config as app_config

    config = Config(app_config.get("ALEMBIC_CONFIG"))
    config.set_main_option("script_location", app_config.get("ALEMBIC_SCRIPT_LOCATION"))
    config.set_main_option("sqlalchemy.url", app_config.get("ALEMBIC_SQLALCHEMY_URL"))
    command.upgrade(config, "head")
    command.stamp(config, "head")
コード例 #3
0
ファイル: app_runner.py プロジェクト: hoperong/nut_python_api
def init_i18n(app):
    """
    初始化翻译
    """
    from flask_babel import Babel
    from flask import request
    from app.config.common import config

    app.config["BABEL_TRANSLATION_DIRECTORIES"] = config.get(
        "BABEL_TRANSLATION_DIRECTORIES"
    )
    app.config["BABEL_DEFAULT_LOCALE"] = config.get("BABEL_DEFAULT_LOCALE")
    babel = Babel(app)

    @babel.localeselector
    def get_locale():
        return request.accept_languages.best_match(["en", "zh"])
コード例 #4
0
ファイル: app_runner.py プロジェクト: hoperong/nut_python_api
def init_login(app):
    """
    添加登录插件,手机哟理解那个flask-login,cookie+session来做登录
    todo:后期需要改成jwt+redis来实现高可用
    """
    from flask_login import LoginManager
    from app.config.common import config

    login_manager = LoginManager()
    app.config["SECRET_KEY"] = config.get("SECRET_KEY")
    login_manager.init_app(app)
コード例 #5
0
ファイル: app.py プロジェクト: hoperong/nut_python_api
from app import app_runner
from app.config.common import config

if __name__ == "__main__":
    flask_app = app_runner.create_app()
    flask_app.run(
        config.get("APP_HOST"),
        config.get("APP_PORT"),
        debug=config.get("APP_DEBUG"),
        threaded=True,
    )
コード例 #6
0
ファイル: env.py プロジェクト: hoperong/nut_python_api
from app.app_runner import auto_load_model
from app.config.common import config as app_config

from logging.config import fileConfig

from sqlalchemy import engine_from_config
from sqlalchemy import pool

from alembic import context

# this is the Alembic Config object, which provides
# access to the values within the .ini file in use.
config = context.config
_ = auto_load_model()
config.set_main_option("script_location",
                       app_config.get("ALEMBIC_SCRIPT_LOCATION"))
config.set_main_option("sqlalchemy.url",
                       app_config.get("ALEMBIC_SQLALCHEMY_URL"))

# Interpret the config file for Python logging.
# This line sets up loggers basically.
fileConfig(config.config_file_name)

# add your model's MetaData object here
# for 'autogenerate' support
# from myapp import mymodel
# target_metadata = mymodel.Base.metadata
target_metadata = Base.metadata

# other values from the config, defined by the needs of env.py,
# can be acquired:
コード例 #7
0
ファイル: route.py プロジェクト: hoperong/nut_python_api
from flask import Blueprint

from app.config.common import config
from app.api_doc.controller import (
    get_api_doc_view,
    get_api_doc_html_view,
)

route = Blueprint('api_doc',
                  __name__,
                  template_folder=config.get("API_DOC_TEMPLATES"))

route.add_url_rule('/v1/api_doc', view_func=get_api_doc_view, methods=["GET"])
route.add_url_rule('/v1/api_doc.html',
                   view_func=get_api_doc_html_view,
                   methods=["GET"])