Exemplo n.º 1
0
def create_app(uri):
    app = Flask(__name__)
    app.config['SQLALCHEMY_DATABASE_URI'] = uri  # ?
    app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False
    app.secret_key = "TOP SECRET"

    from flask_rest_api.resources import api
    api.add_resource(Item, '/items/<string:name>')
    api.add_resource(ItemList, '/items')
    api.add_resource(Store, '/stores/<string:name>')
    api.add_resource(StoreList, '/stores')
    api.add_resource(UserRegistration, '/register')
    api.init_app(app)

    jwt = JWT(app, authenticate, identity)
    jwt.init_app(app)

    from flask_rest_api.db import db

    @app.before_first_request
    def create_tables():
        # SqlAlchemy creates tables that it SEES by imports
        db.create_all()

    db.init_app(app)
    return app
Exemplo n.º 2
0
def create_app(config_name, template_folder=None, static_folder=None):
    app = Flask(__name__,
                static_folder=static_folder,
                template_folder=template_folder)
    app.config.from_object(config_name)

    # jwt初始化
    jwt = JWT(app, authenticate, identity)
    jwt.init_app(app)

    # session信息save到reidis
    # session = KVSessionExtension()
    # store = RedisStore(redis.StrictRedis(**app.config['SESSION_STORE']))
    # session.init_app(app, store)
    # session.cleanup_sessions(app)

    # 解决跨域
    cors.init_app(app, allow_headers='*')

    # mysql init
    db.init_app(app)

    # mongodb init
    # mongo.init_app(app)

    # 权限管理
    security.init_app(app)

    # 信号
    add_signals(app)

    # 临时激活一个请求环境。在这个 环境中可以像以视图函数中一样操作 request 、g 和 session 对象
    with app.test_request_context():
        db.create_all()

    # 蓝图功能, 注册api url
    # app.register_blueprint(get_auth_resources(), url_prefix='/api')
    # app.register_blueprint(get_cmdb_resources(), url_prefix='/api/v1')

    # login 管理
    from utils.ext import login_manager
    import datetime
    login_manager.remember_cookie_duration = datetime.timedelta(seconds=60)
    login_manager.init_app(app)

    # api文档初始化
    Swagger(app)

    return app
Exemplo n.º 3
0
        user_id=new_user.user_id, location_string="Timbuktu", active=True, date_time=datetime.datetime.now()
    )
    models.db.session.add(new_location)
    new_location2 = models.Location(
        user_id=new_user.user_id,
        location_string="Stanford",
        active=True,
        date_time=datetime.datetime.now() - datetime.timedelta(500),
    )
    models.db.session.add(new_location2)
    new_location3 = models.Location(
        user_id=new_user.user_id,
        location_string="Secret Location",
        active=False,
        date_time=datetime.datetime.now() - datetime.timedelta(50),
    )
    models.db.session.add(new_location3)
    models.db.session.commit()
    print(new_user.user_id)


models.db.create_all()

jwt = JWT(app=None, authentication_handler=authenticate, identity_handler=identity)
jwt.app = app
jwt.auth_request_callback = jwt_handlers.auth_request_handler
jwt.jwt_encode_callback = jwt_handlers.encode_handler
jwt.jwt_payload_callback = jwt_handlers.payload_handler
jwt.auth_response_callback = jwt_handlers.auth_response_handler
jwt.init_app(jwt.app)
Exemplo n.º 4
0
    'SECRET_KEY': 'secret_xxx',
    'JWT_AUTH_URL_RULE': None,
})
CORS(app)
Pony(app)
CRYPT_CONTEXT = CryptContext(schemes=['scrypt', 'bcrypt'])

day_names = list(calendar.day_name)

logging.basicConfig(level=logging.INFO)

jwt = JWT(None, None, lambda payload: db.Student.get(id=payload['id']))
jwt.auth_request_callback = None
jwt.jwt_payload_callback = lambda identity: dict(
    _default_jwt_payload_handler(identity), username=identity.name)
jwt.init_app(app)


def do_404(func):
    @wraps(func)
    def wrapper(*args, **kwargs):
        try:
            return func(*args, **kwargs)
        except FileNotFoundError:
            return flask.abort(404)

    return wrapper


def parse_time_constraint(param):
    than = spec_parse_time(param)
Exemplo n.º 5
0
def configure_auth(app):
    """Initialize flask-jwt"""
    jwt = JWT(app, auth_utils.authenticate, auth_utils.identity)
    jwt.init_app(app)
Exemplo n.º 6
0
def init_app(app):
    jwt = JWT()
    jwt.authentication_handler(authenticate)
    jwt.identity_handler(identity)
    jwt.init_app(app)