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
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
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)
'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)
def configure_auth(app): """Initialize flask-jwt""" jwt = JWT(app, auth_utils.authenticate, auth_utils.identity) jwt.init_app(app)
def init_app(app): jwt = JWT() jwt.authentication_handler(authenticate) jwt.identity_handler(identity) jwt.init_app(app)