Esempio n. 1
0
def create_app():
    app = Flask(__name__)
    # app.config['CELERY_IMPORTS'] = ('backgroundtask.add', )
    # app.config['CELERY_BROKER_URL'] = 'redis://localhost:6379/0'
    # app.config['CELERY_RESULT_BACKEND'] = 'redis://localhost:6379/0'
    app.config.from_object(Config)
    app.config.from_object(TaskConifg)
    Config.init_app(app)
    # app.config['SESSION_TYPE'] = 'filesystem'
    # app.config['SESSION_FILE_DIR'] = tempfile.gettempdir()
    # app.permanent_session_lifetime = datetime.timedelta(days=1)
    # sess.init_app(app)
    moment.init_app(app)
    db.app = app
    db.init_app(app)
    login_manager.init_app(app)
    # celery.init_app(app)

    from .main import main as main_blueprint
    from .cimiss import cimiss as cimiss_blueprint
    from .product import product as product_blueprint
    from .page2 import page2 as page2_blueprint

    app.register_blueprint(main_blueprint)
    app.register_blueprint(cimiss_blueprint, url_prefix='/cimiss')
    app.register_blueprint(product_blueprint, url_prefix='/product')
    app.register_blueprint(page2_blueprint, url_prefix='/page2')
    socketio.init_app(app,
                      async_mode='eventlet',
                      message_queue=Basic.SOCKET_RMQ + '/socketio')

    scheduler.init_app(app)
    scheduler.start()
    return app
Esempio n. 2
0
def create_app(object_name):
    app = Flask(__name__)
    app.config.from_object(object_name)
    CORS(app)

    assets_env.init_app(app)
    assets_env.register('main_css', main_css)

    cache.init_app(app)

    csrf = CSRFProtect(app)
    csrf.exempt(api_blueprint)
    csrf.init_app(app)

    db.init_app(app)
    login_manager.init_app(app)

    app.register_blueprint(blog_blueprint)
    app.register_blueprint(control_blueprint)
    app.register_blueprint(api_blueprint)
    app.register_blueprint(upload_blueprint)

    app.add_template_filter(format_time, 'format_time')
    app.add_template_filter(html_to_text, 'html_to_text')
    app.add_template_filter(time_human, 'time_human')

    return app
Esempio n. 3
0
def register_extensions(app):
    bootstrap.init_app(app)
    db.init_app(app)
    login_manager.init_app(app)
    csrf.init_app(app)
    ckeditor.init_app(app)
    moment.init_app(app)
    toolbar.init_app(app)
    migrate.init_app(app, db)
Esempio n. 4
0
def create_app(config_name):
    app = Flask(__name__)
    app.config.from_object(config[config_name])
    config[config_name].init_app(app)

    cache.init_app(app)
    db.init_app(app)
    db.app = app
    login_manager.init_app(app)
    mail.init_app(app)
    setup_themes(app)
    Mobility(app)

    from .utils.filters import register_filters
    register_filters(app)

    from .utils.processors import utility_processor
    app.context_processor(utility_processor)

    from .api import api as api_blueprint
    app.register_blueprint(api_blueprint, url_prefix='/api')

    from .main import main as main_blueprint
    app.register_blueprint(main_blueprint)

    from .account import account as auth_blueprint
    app.register_blueprint(auth_blueprint, url_prefix='/account')

    from .admins import admin
    admin.init_app(app)

    @app.route('/favicon.ico')
    def favicon():
        return send_from_directory(app.static_folder,
                                   'favicon.ico',
                                   mimetype='image/vnd.microsoft.icon')

    @app.route('/robots.txt')
    def robotstxt():
        return send_from_directory(app.static_folder, 'robots.txt')

    # 暂时解决因Gunicorn中引发ERROR 11而无法正常提交的问题
    #@app.teardown_request
    #def teardown_request(response_or_exc):
    #    if app.config['SQLALCHEMY_COMMIT_ON_TEARDOWN']:
    #        try:
    #            db.session.commit()
    #        except:
    #            db.session.rollback()
    #    db.session.remove()

    return app
Esempio n. 5
0
def create_app(config_name):
    app = Flask(__name__)
    app.config.from_object(config[config_name])
    config[config_name].init_app(app)

    cache.init_app(app)
    db.init_app(app)
    db.app = app
    login_manager.init_app(app)
    mail.init_app(app)
    setup_themes(app)
    Mobility(app)

    from .utils.filters import register_filters
    register_filters(app)

    from .utils.processors import utility_processor 
    app.context_processor(utility_processor)

    from .api import api as api_blueprint
    app.register_blueprint(api_blueprint, url_prefix='/api')

    from .main import main as main_blueprint
    app.register_blueprint(main_blueprint)

    from .account import account as auth_blueprint
    app.register_blueprint(auth_blueprint, url_prefix='/account')

    from .admins import admin
    admin.init_app(app)

    @app.route('/favicon.ico')
    def favicon():
        return send_from_directory(app.static_folder, 'favicon.ico',
                                   mimetype='image/vnd.microsoft.icon')

    @app.route('/robots.txt')
    def robotstxt():
        return send_from_directory(app.static_folder, 'robots.txt')

    # 暂时解决因Gunicorn中引发ERROR 11而无法正常提交的问题
    #@app.teardown_request
    #def teardown_request(response_or_exc):
    #    if app.config['SQLALCHEMY_COMMIT_ON_TEARDOWN']:
    #        try:
    #            db.session.commit()
    #        except:
    #            db.session.rollback()
    #    db.session.remove()

    return app
Esempio n. 6
0
def create_app():
    app.config.from_object('config')
    app.config.setdefault('SQLALCHEMY_TRACK_MODIFICATIONS', True)
    app.config['MAX_CONTENT_LENGTH'] = 3 * 1024 * 1024  # logo文件最大不能超过3M,否则返回413状态码
    db.init_app(app)

    principal.init_app(app)
    login_manager.init_app(app)
    app.register_blueprint(web, url_prefix='')  # url_prefix 不能为'/'
    app.register_blueprint(web_api_1_0_blueprint, url_prefix='/api/v1')
    # app.register_blueprint(host, url_prefix='/host_scan')
    # app.register_blueprint(port, url_prefix='/port_scan')
    app.register_blueprint(engine)

    return app
Esempio n. 7
0
def create_app(config_name):
    app = Flask(__name__)
    app.config.from_object(config[config_name])

    db.init_app(app)
    db.app = app

    if not app.config['TESTING']:
        configure_custom_settings(app)
    config[config_name].init_app(app)

    thumbnail.init_app(app)
    babel.init_app(app)
    cache.init_app(app)
    login_manager.init_app(app)
    mail.init_app(app)
    setup_themes(app)
    Mobility(app)

    from .utils.filters import register_filters
    register_filters(app)

    from .utils.processors import utility_processor
    app.context_processor(utility_processor)

    from .api import api as api_blueprint
    app.register_blueprint(api_blueprint, url_prefix='/api')

    from .main import main as main_blueprint
    app.register_blueprint(main_blueprint)

    from .account import account as auth_blueprint
    app.register_blueprint(auth_blueprint, url_prefix='/account')

    from .admins import admin
    admin.init_app(app)

    @app.route('/favicon.ico')
    def favicon():
        return send_from_directory(app.static_folder,
                                   'favicon.ico',
                                   mimetype='image/vnd.microsoft.icon')

    @app.route('/robots.txt')
    def robotstxt():
        return send_from_directory(app.static_folder, 'robots.txt')

    return app
Esempio n. 8
0
def create_app(config_name):
    app = Flask(__name__)
    app.config.from_object(config[config_name])

    db.init_app(app)
    db.app = app

    if not app.config['TESTING']:
        configure_custom_settings(app)
    config[config_name].init_app(app)

    thumbnail.init_app(app)
    babel.init_app(app)
    cache.init_app(app)
    login_manager.init_app(app)
    mail.init_app(app)
    setup_themes(app)
    Mobility(app)

    from .utils.filters import register_filters
    register_filters(app)

    from .utils.processors import utility_processor
    app.context_processor(utility_processor)

    from .api import api as api_blueprint
    app.register_blueprint(api_blueprint, url_prefix='/api')

    from .main import main as main_blueprint
    app.register_blueprint(main_blueprint)

    from .account import account as auth_blueprint
    app.register_blueprint(auth_blueprint, url_prefix='/account')

    from .admins import admin
    admin.init_app(app)

    @app.route('/favicon.ico')
    def favicon():
        return send_from_directory(app.static_folder, 'favicon.ico',
                                   mimetype='image/vnd.microsoft.icon')

    @app.route('/robots.txt')
    def robotstxt():
        return send_from_directory(app.static_folder, 'robots.txt')

    return app
Esempio n. 9
0
def create_app():
    app = Flask(__name__)
    register_blueprint(app)
    bootstrap = Bootstrap(app)
    # load conffig
    app.config.from_object('secure')
    app.config.from_object('settings')

    db.init_app(app)
    with app.app_context():
        # Extensions like Flask-SQLAlchemy now know what the "current" app
        # is while within this block. Therefore, you can now run........
        db.create_all()

    login_manager.login_view = 'web.login'
    login_manager.login_message = '请先登录'
    login_manager.init_app(app)
    return app
Esempio n. 10
0
def create_app():

    app.config.from_object('config')
    app.config.setdefault('SQLALCHEMY_TRACK_MODIFICATIONS', True)
    db.app = app
    db.init_app(app)
    if not scheduler.running:
        scheduler.init_app(app)
        scheduler.start()
    login_manager.init_app(app)

    app.register_blueprint(asset_app, url_prefix='/asset')
    app.register_blueprint(admin_app, url_prefix='')
    app.register_blueprint(inspect_app, url_prefix='/insp')
    app.register_blueprint(log_an_app, url_prefix='/log')
    app.register_blueprint(ops_app, url_prefix='/ops')
    # app.register_blueprint(asset_api_blue, url_prefix='/api/v1.0')

    return app
Esempio n. 11
0
def create_app(config_name):
    app = Flask(__name__)
    app.config['APPENV'] = str(get_appconfig())
    app.config.from_object(config[config_name])
    config[config_name].init_app(app)

    cache.init_app(app)
    db.init_app(app)
    db.app = app
    login_manager.init_app(app)
    mail.init_app(app)
    setup_themes(app)
    Mobility(app)

    from .utils.filters import register_filters
    register_filters(app)

    from .utils.processors import utility_processor 
    app.context_processor(utility_processor)

    from .api import api as api_blueprint
    app.register_blueprint(api_blueprint, url_prefix='/api')

    from .main import main as main_blueprint
    app.register_blueprint(main_blueprint)

    from .account import account as auth_blueprint
    app.register_blueprint(auth_blueprint, url_prefix='/account')

    from .admins import admin
    admin.init_app(app)

    # 暂时解决因Gunicorn中引发ERROR 11而无法正常提交的问题
    @app.teardown_request
    def teardown_request(response_or_exc):
        if app.config['SQLALCHEMY_COMMIT_ON_TEARDOWN']:
            try:
                db.session.commit()
            except:
                db.session.rollback()
        db.session.remove()

    return app
Esempio n. 12
0
MAIL_PASSWORD = '******'

app.config['MAIL_SERVER'] = 'smtp.126.com'
app.config['MAIL_PORT'] = 25
app.config['MAIL_USE_TLS'] = True
app.config['MAIL_USERNAME'] = MAIL_USERNAME
app.config['MAIL_PASSWORD'] = MAIL_PASSWORD

app.config[
    'SQLALCHEMY_DATABASE_URI'] = "mysql://*****:*****@127.0.0.1/test?charset=utf8"
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = True
db.init_app(app)
# db.drop_all(app=app) # Only for debugging
db.create_all(app=app)

login_manager.init_app(app)
login_manager.session_protection = "strong"
login_manager.login_view = "login"

mail = Mail(app)

#================ USER FUNCTION =============
## Get info of another user
#@app.route('/get_user', methods=['POST'])
#@login_required
#def get_user():
#    form = {k:request.form[k].strip() for k in request.form}
#    if utils.validate_userid(int(form['user_id'])):
#        user = User.query.filter_by(id=int(form['user_id'])).first()
#        return Validity(True, user.get_info_map())
#    else:
Esempio n. 13
0
def create_app(object_name):
    app = Flask(__name__, template_folder='templates')

    # here = os.path.abspath(os.path.dirname(__file__))

    if os.path.exists('dev'):
        app.config.from_object(DevConfig)
    else:
        app.config.from_object(ProdConfig)

    eventlet.monkey_patch()
    mako.init_app(app)
    db.init_app(app)
    hashing.init_app(app)
    admin.init_app(app)
    login_manager.init_app(app)
    # csrf.init_app(app)
    debug_toolbar.init_app(app)
    cache.init_app(app)

    SOCKETIO_REDIS_URL = app.config['CELERY_BACKEND_URL']
    socketio.init_app(app,
                      async_mode='eventlet',
                      message_queue=SOCKETIO_REDIS_URL)

    # celery = Celery(app.name)
    # celery.conf.update(app.config)

    api.init_app(app)

    admin.add_view(CustomView(name='Custom'))
    show_models = [
        YjStationInfo, YjPLCInfo, YjGroupInfo, YjVariableInfo, Value,
        TransferLog, User
    ]

    for model in show_models:
        admin.add_view(CustomModelView(model, db.session, category='models'))
    admin.add_view(
        CustomFileAdmin(os.path.join(os.path.dirname(__file__), 'static'),
                        '/static/',
                        name='Static File'))

    def get_current_user():
        return session['username']

    @app.errorhandler(500)
    def server_inner_error(error):
        return u"内部代码错误 by yakumo17s"

    def close_db_connection(sender, **extra):
        db.session.close()
        # sender.logger.debug('Database close.')

    request_tearing_down.connect(close_db_connection, app)

    @app.context_processor
    def template_extras():
        return {'enumerate': enumerate, 'current_user': current_user}

    @app.template_filter('capitalize')
    def reverse_filter(s):
        return s.capitalize()

    @user_logged_in.connect_via(app)
    def _track_logins(sender, user, **extra):
        # 记录用户登录次数,登录IP
        user.login_count += 1
        user.last_login_ip = request.remote_addr
        user.last_login_time = int(time.time())
        db.session.add(user)
        db.session.commit()

    @login_manager.user_loader
    def user_loader(user_id):
        user = User.query.get(user_id)
        return user

    def _get_frame(date_string):
        db = MySQLdb.connect('localhost', 'web', 'web', 'pyplc')
        query = 'SELECT * FROM {}'.format(date_string)
        df = read_sql(query, db)
        df = df.head(100)
        return df

    @app.route(
        '/db/<any(yjstationinfo, yjplcinfo, yjgroupinfo, yjvariableinfo):date_string>/'
    )
    @cache.cached(timeout=10)
    def show_tables(date_string=None):
        df = _get_frame(date_string)
        if isinstance(df, bool) and not df:
            return 'Bad data format!'
        return render_template('show_data.html',
                               df=df.to_html(classes='frame'),
                               date_string=date_string)

    app.register_blueprint(basic_blueprint)
    app.register_blueprint(api_blueprint)
    app.register_blueprint(client_blueprint)
    return app
Esempio n. 14
0
from forms import TodoListForm, LoginForm
from ext import db, login_manager
from models import TodoList, User

SECRET_KEY = 'This is my key'

app = Flask(__name__)
bootstrap = Bootstrap(app)

app.secret_key = SECRET_KEY
app.config['SQLALCHEMY_DATABASE_URI'] = "mysql://*****:*****@59.111.123.138/test"
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = True


db.init_app(app)
login_manager.init_app(app)
login_manager.login_view = "login"


@app.route('/', methods=['GET', 'POST'])
@login_required
def show_todo_list():
    form = TodoListForm()
    if request.method == 'GET':
        todolists = TodoList.query.all()
        return render_template('index.html', todolists=todolists, form=form)
    else:
        if form.validate_on_submit():
            todolist = TodoList(current_user.id, form.title.data, form.status.data)
            db.session.add(todolist)
            db.session.commit()