def create_app(config_name): app = Flask(__name__) app.config.from_object(config[config_name]) config[config_name].init_app(app) bootstrap.init_app(app) mail.init_app(app) moment.init_app(app) db.init_app(app) login_manager.init_app(app) flask_whooshalchemyplus.init_app(app) configure_uploads(app, photos) patch_request_class(app) # set maximum file size, default is 16MB # print(app.config['UPLOADED_FILES_DEST']) from .main import main as main_blueprint app.register_blueprint(main_blueprint) from .auth import auth as auth_blueprint app.register_blueprint(auth_blueprint, url_prefix='/auth') from .goods import goods as goods_blueprint app.register_blueprint(goods_blueprint, url_prefix='/goods') from .ck import ck as ck_blueprint app.register_blueprint(ck_blueprint, url_prefix='/ck') app.jinja_env.add_extension("chartkick.ext.charts") return app
def create_app(config_name): # APP factory function app = Flask(__name__) app.config.from_object( config[config_name] ) # config是在config.py中最后定义的dict; from_object()方法将配置导入app/程序 config[config_name].init_app(app) # config[config_name]是'配置类' bootstrap.init_app(app) mail.init_app(app) # 邮件的相关信息(邮箱/密码)由此传递到mail moment.init_app(app) db.init_app(app) login_manager.init_app(app) pagedown.init_app(app) # [IMP] (1)初始化whooshalchemy; # (2)通过whoosh_index函数初始化Post模型的全文搜索索引 import flask_whooshalchemyplus as whooshalchemyplus from app.models import Post # [IMP] Post模型需要db(db在本脚本上方创建,所以import Post时需谨慎关注其模组依赖) whooshalchemyplus.init_app(app) whooshalchemyplus.whoosh_index( app, Post ) # get the whoosh index for this model, creating one if it doesn't exist from .main import main as main_blueprint # relative import: 从main文件夹中的__init__.py中导入'main' as 'main_blueprint' app.register_blueprint( main_blueprint ) # 蓝本在工厂函数create_app()中注册到程序/app上 (蓝本中包括: 路由 & 自定义的错误页面) from .auth import auth as auth_blueprint app.register_blueprint(auth_blueprint, url_prefix='/auth') from .api_1_0 import api as api_1_0_blueprint app.register_blueprint(api_1_0_blueprint, url_prefix='/api/v1.0') return app
def create_app(config_name): from .main import main as main_blueprint from .auth import auth as auth_blueprint app = Flask(__name__) app.config.from_object(config[config_name]) config[config_name].init_app(app) bootstrap.init_app(app) mail.init_app(app) moment.init_app(app) db.init_app(app) login_manager.init_app(app) admin.init_app(app) whooshalchemy.init_app(app) babel.init_app(app) csrf.init_app(app) from .models import User, Role, File, UserView, \ RoleView, FileView, TagView, Tag, Dossier, \ DossierView admin.add_view(UserView(User, db.session, name='用户管理')) admin.add_view(RoleView(Role, db.session, name='权限管理')) admin.add_view(FileView(File, db.session, name='资源管理')) # admin.add_view(TagView(Tag, db.session, name='标签管理')) admin.add_view(DossierView(Dossier, db.session, name='案卷管理')) app.register_blueprint(main_blueprint) app.register_blueprint(auth_blueprint, url_prefix='/auth') return app
def create_app(config_class=Config): app = Flask(__name__) app.static_folder = os.path.join(template_folder, 'static/') app.template_folder = template_folder app.config.from_object(config_class) db.init_app(app) migrate.init_app(app, db) login_manager.init_app(app) flask_whooshalchemyplus.init_app(app) # Register blueprints from volunteercore.auth import bp as auth_bp app.register_blueprint(auth_bp) from volunteercore.volops import bp as volops_bp app.register_blueprint(volops_bp) from volunteercore.api import bp as api_bp app.register_blueprint(api_bp) from volunteercore.errors import bp as errors_bp app.register_blueprint(errors_bp) @app.route('/') def index(): return render_template('index.html') return app
def create_app(config_name): app = Flask(__name__) app.config.from_object(config[config_name]) app.config.from_object('setting') # config[config_name].init_app(app) # 调用 init_app() 可以完成初始化过程 db.init_app(app) moment.init_app(app) mail.init_app(app) login_manager.init_app(app) flask_admin.init_app(app) flask_whooshalchemyplus.init_app(app) # 上传文件 configure_uploads(app, avatar) patch_request_class(app, 6 * 1024 * 1024) # 限制上传大小 6M cache.init_app(app) # 缓存 assets_env.init_app(app) # 压缩css/js # assets_env.register('main_css', main_css) assets_env.register('main_js', main_js) assets_env.register('article_js', article_js) from .main import main as main_blueprint # 注册蓝本 app.register_blueprint(main_blueprint) from .auth import auth as auth_blueprint app.register_blueprint(auth_blueprint, url_prefix='/auth') # 附加路由前缀/auth return app
def create_app(config_name): app = Flask(__name__) app.config.from_object(config[config_name]) config[config_name].init_app(app) #插件使用 bootstrap.init_app(app) mail.init_app(app) moment.init_app(app) db.init_app(app) pagedown.init_app(app) login_manager.init_app(app) flask_whooshalchemyplus.init_app(app) # 注册蓝本 from .main import main as main_blueprint app.register_blueprint(main_blueprint) # 注册 auth 蓝本 from .auth import auth as auth_blueprint app.register_blueprint(auth_blueprint) # 注册 api 蓝本 from .api_1_0 import api as api_1_0_blueprint app.register_blueprint(api_1_0_blueprint, url_prefix='/api/v1.0') return app
def create_app(config_name): app = Flask(__name__) #配置类在 config.py 文件中定义,其中保存的配置可以使用 Flask app.config 配置对象提供的 from_object() 方法直接导入程序 app.config.from_object(config[config_name]) config[config_name].init_app(app) #蓝本在工厂函数 create_app() 中注册到程序上 from .auth import auth as auth_blueprint app.register_blueprint(auth_blueprint, url_prefix='/auth') from .main import main as main_blueprint app.register_blueprint(main_blueprint) from .api_1_0 import api as api_1_0_blueprint app.register_blueprint(api_1_0_blueprint, url_prefix='/api/v1.0') #程序创建并配置好后,就能初始化扩展了。在之前创建的扩展对象上调用 init_app() 可以完成初始化过程。 db.init_app(app) login_manager.init_app(app) mail.init_app(app) monment.init_app(app) pagedown.init_app(app) flask_whooshalchemyplus.init_app(app) cache.init_app(app) #工厂函数返回创建的程序示例 return app
def create_app(config_name="default"): app = Flask(__name__) app.config.from_object(config.get(config_name)) db.init_app(app) # 全文索引 flask_whooshalchemyplus.init_app(app) from app.book import book_blueprint app.register_blueprint(book_blueprint, url_prefix="/api/book") app.app_context().push() db.create_all() # flask_whooshalchemyplus.index_all(app) @app.before_request def before(): from app.user.model.user import User open_id = request.headers.get("wx_open_id") user = User.query.filter_by(open_id=open_id).first() if (not user) & (type(open_id) == str): if len(open_id) > 6: user = User(open_id=open_id) db.session.add(user) db.session.commit() g.current_user = user @app.after_request def after(response): response.headers["Tech"] = "NCUHOME 2019" return response return app
def configure_extensions(app): db.init_app(app) login_manager.init_app(app) flask_whooshalchemyplus.init_app(app) DebugToolbarExtension(app) cache.init_app(app) bootstrap.init_app(app) md.init_app(app) mail.init_app(app)
def register_extensions(app): bootstrap.init_app(app) mail.init_app(app) db.init_app(app) login_manager.init_app(app) bcrypt.init_app(app) weixin.init_app(app) # whoosh initialize app to enable db searchable flask_whooshalchemyplus.init_app(app)
def extension_config(app): # 实例化接口 bootstrap.init_app(app) login_manager.init_app(app=app) mail.init_app(app) # admin.init_app(app) wh.init_app(app) login_manager.login_view = 'main.login' # 视图未授权跳转路由 login_manager.login_message = '请先登陆后在访问' login_manager.session_protection = 'strong'
def create_app(): app = Flask(__name__) app.config.from_object('config') bootstrap.init_app(app) db.init_app(app) register_blueprints(app) create_admin(app) flask_whooshalchemyplus.init_app(app) init_login(app) babel.init_app(app) return app
def create_app(config_name='default'): app = Flask(__name__) app.config.from_object(config[config_name]) app.config['QQ'] = config[config_name].QQ app.config['GITHUB'] = config[config_name].GITHUB bootstrap.init_app(app) mail.init_app(app) db.init_app(app) cache.init_app(app) login_manager.init_app(app) Markdown(app) flask_whooshalchemyplus.init_app(app) redis_store.init_app(app) oauth.init_app(app) if not app.debug: import logging from logging.handlers import RotatingFileHandler file_handler = RotatingFileHandler('logs/myblog.log', 'a', 1 * 1024 * 1024, 10) file_handler.setFormatter( logging.Formatter( '%(asctime)s %(levelname)s: %(message)s [in %(pathname)s:%(lineno)d]' )) app.logger.setLevel(logging.INFO) file_handler.setLevel(logging.INFO) app.logger.addHandler(file_handler) app.logger.info(u'程序启动:') app.logger.debug(u'调试信息:') app.logger.warning(u'警告信息:') app.logger.error(u'错误信息:') app.logger.critical(u'严重错误:') from .admin import admin app.register_blueprint(admin) from .public import public app.register_blueprint(public) from .auth import auth app.register_blueprint(auth, url_prefix='/auth') from .profile import profile app.register_blueprint(profile) from .cates import cates app.register_blueprint(cates) from .api_0_1 import api app.register_blueprint(api, url_prefix='/api/v1.0') return app
def create_app(config_name): app = Flask(__name__) app.config.from_object(config[config_name]) config[config_name].init_app(app) csrf.init_app(app) ####CSRF保护 bootstrap.init_app(app) ####支持bootstrap框架 mail.init_app(app) moment.init_app(app) ####使用moment.js db.init_app(app) login_manager.init_app(app) pagedown.init_app(app) ####博文支持pagedown flask_whooshalchemyplus.init_app(app) ####支持博文搜索 babel.init_app(app) ####多语言和国际化 oauth.init_app(app) ####其他网站账号Oauth登陆,目前只添加git和google if not app.debug and not app.testing and not app.config['SSL_DISABLE']: from flask.ext.sslify import SSLify sslify = SSLify(app) from .main import main as main_blueprint app.register_blueprint(main_blueprint) from .auth import auth as auth_blueprint app.register_blueprint(auth_blueprint, url_prefix='/auth') from .api_1_0 import api as api_1_0_blueprint app.register_blueprint(api_1_0_blueprint, url_prefix='/api/v1.0') from .oauthlogin import github_login as github_blueprint #####为支持Oauth登陆添加一蓝图,以后再调整 app.register_blueprint(github_blueprint,url_prefix='/github_login') # from .oauthlogin import weibo_login as weibo_blueprint # app.register_blueprint(weibo_blueprint,url_prefix='/weibo_login') # from .oauthlogin import qq_login as qq_blueprint # app.register_blueprint(qq_blueprint,url_prefix='/qq_login')###麻烦,QQ、微博都要填写个人资料申请并上传资料申请验证,未审核通过,以后有时间再弄 # from .oauthlogin import douban_login as douban_blueprint # app.register_blueprint(douban_blueprint,url_prefix='/douban_login') ###豆瓣暂时关闭了apikey 申请 from .oauthlogin import google_login as google_blueprint app.register_blueprint(google_blueprint,url_prefix='/google_login') ##google因为网路原因可能不能回传 return app
def create_app(config_name): app = Flask(__name__) app.config.from_object(config[config_name]) config[config_name].init_app(app) Principal(app) db.init_app(app) db.app = app with app.app_context(): db.create_all() login_manager.init_app(app) from .models import User, Post, UserRole, Comment, Tag, posts_tags, Role from .modelview import MyAdminIndexView, MyViewAll, MyView, MyViewpost flask_whooshalchemyplus.init_app(app) admin = Admin(app, template_mode='bootstrap3', index_view=MyAdminIndexView()) admin.add_view(MyView(User, db.session)) admin.add_view(MyViewpost(Post, db.session)) admin.add_view(MyViewAll(Comment, db.session)) admin.add_view(MyViewAll(Tag, db.session)) @app.errorhandler(404) def page_not_fond(error): return render_template('base/404.html'), 404 # Add identity to current user @identity_loaded.connect_via(app) def on_identity_loaded(sender, identity): # Set the identity user object identity.user = current_user # Add the UserNeed to the identity if hasattr(current_user, 'id'): identity.provides.add(UserNeed(current_user.id)) # Assuming the User model has a list of roles, update the # identity with the roles that the user provides if hasattr(current_user, 'roles'): for role in current_user.roles: identity.provides.add(RoleNeed(role.role_name)) from .main import main as main_blueprint app.register_blueprint(main_blueprint) from .momentjs import momentjs app.jinja_env.globals['momentjs'] = momentjs return app
def create_app(config_obj): """factory function""" app = Flask(__name__) app.config.from_object(config_obj) db.init_app(app) flask_whooshalchemyplus.init_app(app) redis.init_app(app) rq.init_app(app) views.init_app(app) jieba.initialize() return app
def create_app(): app = Flask(__name__) app.config.from_object('config') bootstrap.init_app(app) db.init_app(app) login_manager.init_app(app) moment.init_app(app) flask_whooshalchemyplus.init_app(app) from .admin import admin as admin_blueprint app.register_blueprint(admin_blueprint, url_prefix='/admin') from .home import home as home_blueprint app.register_blueprint(home_blueprint) return app
def create_app(config_name=None): if config_name is None: config_name = os.environ.get('FLASK_CONFIG', 'default') app = MyFlask(__name__) app.config.from_object(config[config_name]) config[config_name].init_app(app) register_extensions(app) register_components(app) register_commands(app) register_template_context(app) Signal.send('create_app', 'bearblog', app=app) flask_whooshalchemyplus.init_app(app) return app
def create_app(): app = Flask(__name__) app.config['SECRET_KEY'] = '123456' # 用于保存session的 ''' 邮箱激活相关配置! ''' app.config['MAIL_DEBUG'] = True app.config['MAIL_SERVER'] = 'smtp.163.com' app.config['MAIL_PORT'] = 465 app.config['MAIL_USE_SSL'] = True app.config['MAIL_USERNAME'] = '******' app.config['MAIL_PASSWORD'] = '******' app.debug = True # 注意产品上线的时候要管了 register_blue(app) # 注册蓝图对象 init_ext(app) # 数据库相关 拓展程序 # 全文检索 flask_whooshalchemyplus.init_app(app) return app
def create_app(config_name): app = Flask(__name__) app.config.from_object(config[config_name]) config[config_name].init_app(app) bootstrap.init_app(app) db.init_app(app) login_manager.init_app(app) flask_whooshalchemyplus.init_app(app) # 注册前台蓝本 from .main import main as main_blueprint app.register_blueprint(main_blueprint) # 注册后台蓝本 from .admin import admin as admin_blueprint app.register_blueprint(admin_blueprint, url_prefix='/admin') return app
def create_app(config_class): """ 生成Flask实例的工厂函数 加载配置文件, 注册蓝图, 注册插件 :param config_class: 配置文件类 :return: 返回应用app """ app_instance = Flask(__name__) app_instance.config.from_object(config_class) db.init_app(app_instance) csrf.init_app(app_instance) # app_instance.elasticsearch = Elasticsearch([app_instance.config['ELASTICSEARCH_URL']]) \ # if app_instance.config['ELASTICSEARCH_URL'] else None flask_whooshalchemyplus.init_app(app_instance) set_app_log(app_instance) return app_instance
def create_app(config_name): app = Flask(__name__) app.config.from_object(config[config_name]) config[config_name].init_app(app) mail.init_app(app) db.init_app(app) flask_whooshalchemyplus.init_app(app) login_manager.init_app(app) sockets.init_app(app) scheduler.init_app(app) scheduler.start() from .main import main as main_blueprint app.register_blueprint(main_blueprint) from .auth import auth as auth_blueprint app.register_blueprint(auth_blueprint, url_prefix='/auth') return app
def create_app(config_name): app = Flask(__name__) app.config.from_object(config[config_name]) #选择使用哪一个数据库 config[config_name].init_app(app) bootstrap.init_app(app) mail.init_app(app) moment.init_app(app) db.init_app(app) login_manager.init_app(app) pagedown.init_app(app) flask_whooshalchemyplus.init_app(app) from .main import main as main_blueprint app.register_blueprint(main_blueprint) #注册蓝本时,蓝本里的路由才生效。这是主页蓝本 from .auth import auth as auth_blueprint app.register_blueprint(auth_blueprint, url_prefix='/auth') #用于用户管理的蓝本 return app
def create_app(config_name): app = Flask(__name__) app.config.from_object(config[config_name]) config[config_name].init_app(app) db.init_app(app) bootstrap.init_app(app) moment.init_app(app) mail.init_app(app) cache.init_app(app) bcrypt.init_app(app) login_manager.init_app(app) flask_whooshalchemyplus.init_app(app) configure_uploads(app, photos) patch_request_class(app) admin.init_app(app) from .main import main as main_blueprint app.register_blueprint(main_blueprint) from .auth import auth as auth_blueprint app.register_blueprint(auth_blueprint, url_prefix='/auth') return app
def create_app(config_name): app = Flask(__name__) app.config.from_object(config[config_name]) config[config_name].init_app(app) db.init_app(app) mail.init_app(app) moment.init_app(app) bootstrap.init_app(app) login_manager.init_app(app) pagedown.init_app(app) flask_whooshalchemyplus.init_app(app) #search.init_app(app) from .main import main as main_blueprint app.register_blueprint(main_blueprint) from .auth import auth as auth_blueprint app.register_blueprint(auth_blueprint, url_prefix='/auth') from .api import api as api_blueprint app.register_blueprint(api_blueprint, url_prefix='/api/v1') from .inner_api import inner_api as inner_api_blueprint app.register_blueprint(inner_api_blueprint, url_prefix='/inner_api/v0.1') return app
def create_app(config_name): # 初始化应用 app = Flask(__name__) app.config.from_object(config[config_name]) config[config_name].init_app(app) bootstrap.init_app(app) db.init_app(app) mail.init_app(app) login_manager.init_app(app) moment.init_app(app) # 配置flask-uploads configure_uploads(app, (avatars, post_img)) patch_request_class(app, 3*1024*1024) # 设置上传文件最大为2mb ckeditor.init_app(app) toastr.init_app(app) flask_whooshalchemyplus.init_app(app) # 注册蓝本 from .main import main as main_blueprint app.register_blueprint(main_blueprint) from .auth import auth as auth_blueprint app.register_blueprint(auth_blueprint, url_prefix='/auth') from .user import user_page as user_page_blueprint app.register_blueprint(user_page_blueprint, url_prefix='/user') from .blog import blog as blog_blueprint app.register_blueprint(blog_blueprint, url_prefix='/blog') from .api import api as api_blueprint app.register_blueprint(api_blueprint, url_prefix='/api/v1') return app
def create_app(config_name): app = Flask(__name__) app.config.from_object(config[config_name]) config[config_name].init_app(app) moment.init_app(app) db.init_app(app) bootstrap.init_app(app) loginmanager.init_app(app) mail.init_app(app) pagedown.init_app(app) flask_whooshalchemyplus.init_app(app) #把所有请求重定向到安全http if not app.config['SSL_DISABLE']: from flask_sslify import SSLify sslify = SSLify(app) from .main import main app.register_blueprint(main) from .auth import auth app.register_blueprint(auth, url_prefix='/auth') return app
from flask_mail import Mail from .momentjs import momentjs from flask_babel import Babel, lazy_gettext app = Flask(__name__) # 读取配置文件 app.config.from_object('config') db = SQLAlchemy(app) lm = LoginManager() lm.init_app(app) lm.login_view = 'main.login' # 多语言处理Flask自带的登录提醒 lm.login_message = lazy_gettext('请登录后访问本页.') flask_whooshalchemyplus.init_app(app) from app.leaf.leaf_models import Post flask_whooshalchemyplus.whoosh_index(app, Post) from app.book.book_models import Book flask_whooshalchemyplus.whoosh_index(app, Book) mail = Mail(app) # 将封装类与jinja2绑定 app.jinja_env.globals['momentjs'] = momentjs # 国际化支持 babel = Babel(app) from app.main import views, models
def create_app(DevConfig): app = Flask(__name__) # 跨域加允许 cookies cors = CORS( app, resources={r'/api/*': { 'origins': '*', 'supports_credentials': True }}) app.config.from_object(DevConfig) mail.init_app(app) mail.app = app db.init_app(app) with app.app_context(): # db.drop_all() db.create_all() # create_user() # from webapp.app_blueprint import create_fake_data # create_fake_data() # whoosh_index(app, Blog) # whoosh_index(app, Comment) # whoosh_index(app, User) # index_all(app) flask_whooshalchemyplus.init_app(app) login_manager.init_app(app) rest_api.add_resource(BlogApi, '/api/blog', '/api/blog/<int:id>') rest_api.add_resource(CommentApi, '/api/blog/<int:blog_id>/comment') rest_api.add_resource(BlogTitleApi, '/api/blog/all') rest_api.add_resource(BlogTagApi, '/api/blog/tag', '/api/blog/tag/<int:tag_id>') rest_api.add_resource(LoginApi, '/api/login') rest_api.add_resource(UserApi, '/api/user') rest_api.add_resource(LogoutApi, '/api/logout') rest_api.add_resource(RegisterApi, '/api/register') rest_api.add_resource(CheckMessageApi, '/api/checkMessages') rest_api.add_resource(MessageApi, '/api/message', '/api/message/<int:message_id>') rest_api.add_resource(MentionApi, '/api/usernameMention') rest_api.add_resource(ZanApi, '/api/comment/<int:comment_id>/zan') rest_api.add_resource(GetImgApi, '/api/imgs') rest_api.add_resource(SearchApi, '/api/search') rest_api.add_resource(userAndRoomApi, '/api/wuziqi/userandroom') rest_api.init_app(app) celery.conf.update(app.config) # celery.init_app(app) from webapp.app_blueprint import app_blueprint app.register_blueprint(app_blueprint) from webapp.tasks import tasks_blueprint app.register_blueprint(tasks_blueprint) from webapp.send_email import emails_blueprint app.register_blueprint(emails_blueprint, url_prefix='/emails') socketio.init_app(app, message_queue=app.config['CELERY_BROKER_URL']) return app
# arguments for API (methods allowed, pagination, etc) kwargs = { 'methods': frozenset(['GET']), 'allow_functions': True, 'results_per_page': 10 } # create API endpoint for each model for model in model_objects: manager.create_api(model, **kwargs) for model in model_objects: whooshalchemy.whoosh_index(app, model) with app.app_context(): whooshalchemy.init_app(app) whooshalchemy.index_all(app) # unpaginated API endpoints @app.route('/api/unpaginated/parks') def unpaginated_parks(): parks_list = [] parks = db.session.query(Park).all() for park in parks: parks_dict = {} parks_dict['id'] = park.id parks_dict['name'] = park.name parks_dict['website'] = park.website parks_dict['city_id'] = park.city_id
def register_fulltext(app): import flask_whooshalchemyplus flask_whooshalchemyplus.init_app(app=app)