def create_app(config_name): app = Flask(__name__) bootstrap.init_app(app) db.init_app(app) admin = Admin(app) admin.add_view(SecureView(User, db.session)) admin.add_view(SecureView(Question, db.session)) admin.add_view(SecureView(TestCase, db.session)) admin.add_view(SecureView(Submission, db.session)) app.config.from_object(config[config_name]) from app.auth import auth as auth_blueprint app.register_blueprint(auth_blueprint, url_prefix='/auth') from app.questions import questions as questions_blueprint app.register_blueprint(questions_blueprint, url_prefix="") login_manager.init_app(app) return app
login_manager = login.LoginManager() login_manager.init_app(app) # Create user loader function @login_manager.user_loader def load_user(user_id): return User(user_id) if __name__ == '__main__': # Create admin interface admin = Admin(name='Example: Menu') admin.add_view(MyAdminView(name='Authenticated')) # Add home link by url admin.add_link(MenuLink(name='Back Home', url='/')) # Add login link by endpoint admin.add_link( NotAuthenticatedMenuLink(name='Login', endpoint='login_view')) # Add links with categories admin.add_link( MenuLink(name='Google', category='Links', url='http://www.google.com/')) admin.add_link( MenuLink(name='Mozilla', category='Links', url='http://mozilla.org/'))
@app.context_processor def teardown_request(exception=None): general_meta_k = '' general_meta_d = '' menu = Menu.select() try: general_meta_k = GeneralMeta.get(id=1).meta_k general_meta_d = GeneralMeta.get(id=1).meta_d except GeneralMeta.DoesNotExist, e: print "Meta is empty, %s" % e return dict(general_meta_d = general_meta_d, general_meta_k=general_meta_k, menu=menu) admin.add_view(My_ModelView( Article, name=u"Сторінки" ) ) admin.add_view(My_ModelView( Category, name=u"Розділи", endpoint='category_mgm') ) admin.add_view(UsersView( User, name=u"Користувачі") ) admin.add_view(SettingsView( name=u"Налаштування") )
@app.route('/login', methods=['POST']) def login(): username = request.args['username'] password = request.args['password'] registered_user = User.query.filter_by(username=username, password=password).first() if registered_user is None: resp = jsonify(success=False) return resp login_user(registered_user, remember=True) resp = jsonify(success=True) return resp @app.route('/logout', methods=['POST', 'GET']) def logout(): #logout_user() resp = jsonify(success=True) return resp if __name__ == '__main__': admin = Admin(app, 'OneDir') admin.add_view(sqla.ModelView(User, db.session)) admin.add_view(sqla.ModelView(SavedFile, db.session)) # app.debug = True app.run() # app.run(host='0.0.0.0')
def create_app(object_name=None): """ An flask application factory, as explained here: http://flask.pocoo.org/docs/patterns/appfactories/ Arguments:r object_name: Name of the config object. ex) ticketplace.settings.ProductionConfig """ app = Flask(__name__) # Configuration loading: # # ^ (High Priority) # | Set directly via envrionment variables. # | ex) SQLALCHEMY_DATABASE_URI = os.environ['DATABASE_URL'] # | Set in Config object selected by environment variable `CONFIG` or via `object_name` argument # | ex) app.config.from_object(os.environ.get('CONFIG')) # | Set in default Config # | ex) `HerokuConfig` inherits `Config` # | (Low Priority) configuration_object_name = object_name or os.environ.get('CONFIG', None) if not configuration_object_name: raise Exception('No Configuration selected!') app.config.from_object(configuration_object_name) print('%s: App configs set with %s.' % (__file__, configuration_object_name)) # initialize the cache cache.init_app(app) # initialize the debug tool bar debug_toolbar.init_app(app) # initialize flask-bootstrap Bootstrap(app) # initialize SQLAlchemy db.init_app(app) # initialize flask-login # login_manager.init_app(app) # initialize flask-admin admin = Admin(app, name='틴트라넷', index_view=IndexView(), template_mode='bootstrap3') # Import and register the different asset bundles assets_env.init_app(app) assets_loader = PythonAssetsLoader(assets) for name, bundle in assets_loader.load_bundles().items(): assets_env.register(name, bundle) # register our blueprints app.register_blueprint(main) # register admin views admin.add_view(CompanyView(Company, db.session)) admin.add_view(ContentView(Content, db.session)) admin.add_view(ContentImageView(Content, db.session, name='Image', endpoint='image')) admin.add_view(TagView(Tag, db.session)) # register filters register_filters(app) return app
orig_user.password = request.args['password'] db.session.commit() resp = jsonify(success=True) return resp @app.route('/login', methods=['POST']) def login(): username = request.args['username'] password = request.args['password'] registered_user = User.query.filter_by(username=username, password=password).first() if registered_user is None: resp = jsonify(success=False) return resp login_user(registered_user, remember=True) resp = jsonify(success=True) return resp @app.route('/logout', methods=['POST', 'GET']) def logout(): #logout_user() resp = jsonify(success=True) return resp if __name__ == '__main__': admin = Admin(app, 'OneDir') admin.add_view(sqla.ModelView(User, db.session)) admin.add_view(sqla.ModelView(SavedFile, db.session)) # app.debug = True app.run() # app.run(host='0.0.0.0')
# Customized Role model for SQL-Admin class RoleAdmin(sqla.ModelView): # Automatically display human-readable names for the current and available Roles when creating or editing a User column_auto_select_related = True # Prevent administration of Roles unless the currently logged-in user has the "admin" role def is_accessible(self): return current_user.has_role('admin') # Initialize Flask-Admin admin = Admin(app, name='OOI User Admin') # Add Flask-Admin views for Users and Roles admin.add_view(UserAdmin(User, db.session)) admin.add_view(RoleAdmin(Role, db.session)) # Create menu links classes with reloaded accessible class AuthenticatedMenuLink(MenuLink): def is_accessible(self): return current_user.is_authenticated class NotAuthenticatedMenuLink(MenuLink): def is_accessible(self): return not current_user.is_authenticated class ResetMenuLink(MenuLink):
def administration_setup(app): """ Hack to use the backend administration. """ administration = Admin( name="Victims Admin", index_view=SafeAdminIndexView()) administration.init_app(app) # Application administration administration.add_view(CacheAdminView(name='Cache', endpoint='cache')) # Database management administration.add_view(AccountView( Account, name='Accounts', endpoint='accounts', category='Database') ) administration.add_view(HashView( Hash, name='Hashes', endpoint='hashes', category='Database') ) administration.add_view(SubmissionView( Submission, name='Submissions', endpoint='submissions', category='Database') ) # File Management administration.add_view(FileView( app.config['UPLOAD_FOLDER'], '/uploads/', endpoint='uploads', name='User Uploads', category='Files') ) administration.add_view(FileView( app.config['DOWNLOAD_FOLDER'], '/downloads/', endpoint='downloads', name='Charon Downloads', category='Files') ) # Add links administration.add_link(MenuLink(name='Front End', endpoint='ui.index')) administration.add_link(MenuLink( name='Logout', endpoint='auth.logout_user')) return administration
@app.context_processor def teardown_request(exception=None): general_meta_k = '' general_meta_d = '' menu = Menu.select() try: general_meta_k = GeneralMeta.get(id=1).meta_k general_meta_d = GeneralMeta.get(id=1).meta_d except GeneralMeta.DoesNotExist, e: print "Meta is empty, %s" % e return dict(general_meta_d=general_meta_d, general_meta_k=general_meta_k, menu=menu) admin.add_view(My_ModelView(Article, name=u"Сторінки")) admin.add_view(My_ModelView(Category, name=u"Розділи", endpoint='category_mgm')) admin.add_view(UsersView(User, name=u"Користувачі")) admin.add_view(SettingsView(name=u"Налаштування")) admin.add_view(GalleryView(name=u'Галерея')) admin.add_view( fileadmin.FileAdmin(UPLOAD_FOLDER, '/uploads/', name='File Manager')) app.debug = True SECRET_KEY = 'misha1987' # Flask Assets
login_manager = login.LoginManager() login_manager.init_app(app) # Create user loader function @login_manager.user_loader def load_user(user_id): return User(user_id) if __name__ == '__main__': # Create admin interface admin = Admin(name='Example: Menu') admin.add_view(MyAdminView(name='Authenticated')) # Add home link by url admin.add_link(MenuLink(name='Back Home', url='/')) # Add login link by endpoint admin.add_link(NotAuthenticatedMenuLink(name='Login', endpoint='login_view')) # Add links with categories admin.add_link(MenuLink(name='Google', category='Links', url='http://www.google.com/')) admin.add_link(MenuLink(name='Mozilla', category='Links', url='http://mozilla.org/')) # Add logout link by endpoint admin.add_link(AuthenticatedMenuLink(name='Logout', endpoint='logout_view'))