def create_app(config_file):

    application = Flask(__name__)
    application.config.from_pyfile(config_file)

    from models import db, Task, User
    from auth import auth_api, login_manager
    from task_api import TaskListApi, TaskApi
    from user_api import UserApi

    db.init_app(application)
    login_manager.init_app(application)

    application.register_blueprint(auth_api, url_prefix="/api/auth")

    api = Api(application, decorators=[login_required])
    api.add_resource(TaskListApi, "/api/tasks", endpoint="tasks")
    api.add_resource(TaskApi, "/api/tasks/<int:id>", endpoint="task")
    api.add_resource(UserApi, "/api/users", endpoint="user")

    # FOR DEVELOPMENT ONLY
    @application.after_request
    def after_request(response):
        response.headers.add("Access-Control-Allow-Origin", "*")
        response.headers.add("Access-Control-Allow-Headers", "Content-Type,Authorization")
        response.headers.add("Access-Control-Allow-Methods", "GET,PUT,POST,DELETE")
        return response

    return application
示例#2
0
def create_app():
    app = Flask(__name__)
    app.config[
        'WTF_CSRF_SECRET_KEY'] = 'ec35ae128aa97f834ab848ecf823340875ddf483e9a535440cf68e05b3b38865'
    app.config[
        'SECRET_KEY'] = '58c8f1ffb80e7d48d936cb8a485504498fc6c5dcfce18e3de6dcd3b851ff0540'
    app.config['STRAVA_CLIENT_ID'] = os.environ['STRAVA_CLIENT_ID']
    app.config['STRAVA_CLIENT_SECRET'] = os.environ['STRAVA_CLIENT_SECRET']
    app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///beepbeep.db'
    app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False

    for bp in blueprints:
        app.register_blueprint(bp)
        bp.app = app

    db.init_app(app)
    login_manager.init_app(app)
    db.create_all(app=app)

    # create a first admin user
    with app.app_context():
        q = db.session.query(User).filter(User.email == '*****@*****.**')
        user = q.first()
        if user is None:
            example = User()
            example.email = '*****@*****.**'
            example.is_admin = True
            example.set_password('admin')
            db.session.add(example)
            db.session.commit()
    return app
def create_app(config_file):

    application = Flask(__name__)
    application.config.from_pyfile(config_file)

    from models import db, Task, User
    from auth import auth_api, login_manager
    from task_api import TaskListApi, TaskApi
    from user_api import UserApi

    db.init_app(application)
    login_manager.init_app(application)

    application.register_blueprint(auth_api, url_prefix='/api/auth')

    api = Api(application, decorators=[login_required])
    api.add_resource(TaskListApi, '/api/tasks', endpoint='tasks')
    api.add_resource(TaskApi, '/api/tasks/<int:id>', endpoint='task')
    api.add_resource(UserApi, '/api/users', endpoint='user')

    # FOR DEVELOPMENT ONLY
    @application.after_request
    def after_request(response):
        response.headers.add('Access-Control-Allow-Origin', '*')
        response.headers.add('Access-Control-Allow-Headers', 'Content-Type,Authorization')
        response.headers.add('Access-Control-Allow-Methods', 'GET,PUT,POST,DELETE')
        return response

    return application
示例#4
0
def create_application():
    application = flask.Flask(__name__)

    application.config.from_pyfile('configuration.py')

    from database import db

    db.init_app(app=application)

    from auth import login_manager

    login_manager.init_app(app=application)

    return application
示例#5
0
def create_app(mongo_uri, debug=False, testing=False):
    app = Flask(__name__)
    app.config['DEBUG'] = debug
    app.config['TESTING'] = testing
    app.config['WTF_CSRF_ENABLED'] = not testing
    app.config['MONGO_URI'] = mongo_uri
    app.secret_key = os.environ.get('SECRET_KEY', 'clef pour les tests')
    Babel(default_locale='fr').init_app(app)
    Gravatar().init_app(app)
    mongo.init_app(app)
    login_manager.init_app(app)
    bcrypt.init_app(app)

    app.register_blueprint(auth)
    app.register_blueprint(bookmarks)
    app.register_blueprint(tools, url_prefix='/tools')
    app.register_blueprint(profil, url_prefix='/profil')

    @app.before_first_request
    def create_mongo_index():
        mongo.db.bookmarks.ensure_index('published', pymongo.DESCENDING, background=True)
        mongo.db.bookmarks.ensure_index('user._id', pymongo.DESCENDING, background=True)
        mongo.db.bookmarks.ensure_index('title', pymongo.ASCENDING, background=True)
        mongo.db.bookmarks.ensure_index('description', background=True)
        mongo.db.bookmarks.ensure_index('tags', pymongo.ASCENDING, background=True)
        mongo.db.bookmarks.ensure_index([('user._id', pymongo.ASCENDING), ('url', pymongo.ASCENDING)], background=True, unique=True)

        mongo.db.users.ensure_index('email', pymongo.ASCENDING, background=True, unique=True)
        mongo.db.users.ensure_index('nickname', pymongo.ASCENDING, background=True, unique=True)


    @environmentfilter
    def group_by_humanize_date(environment, value, attribute):
        sorted_collections = sorted(value, key=make_attrgetter(environment, attribute))
        return map(_GroupTuple, groupby(sorted_collections, _make_attr_getter_for_date(environment, attribute)))
    app.jinja_env.filters['group_by_humanize_date'] = group_by_humanize_date

    @app.template_filter()
    def group_by_first_letter(array_of_string):
        return groupby(array_of_string, key=operator.itemgetter(0))

    def _make_attr_getter_for_date(environment, attribute):
        def callback(x):
            return arrow.get(environment.getitem(x, attribute)).humanize(locale='FR_fr')

        return callback

    return app
示例#6
0
def create_app(config_name):
    app = Flask(__name__)
    app_config = None
    import_str = 'from settings import {} as app_config'.format(
        config[config_name])
    try:
        exec import_str
    except ImportError:
        raise
    app.config.from_object(app_config)
    app_config.init_app(app)
    if app.config['GLOBAL_ENCRYPT']:
        globalEncryptkey = app.config['SECRET_KEY']

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

    app.register_blueprint(main)
    app.register_blueprint(auth_blueprint, url_prefix='/auth')
    app.register_blueprint(restapi_blueprint, url_prefix='/api')

    return app
示例#7
0
from flask import Flask
from auth import login_manager
from users.views import bp as bp_users

app = Flask(__name__)


app.config.from_object('config')
app.config.from_envvar('PLAYGROUND_SETTINGS', silent=True)

@app.context_processor
def provide_constants():
    return {"constants": {"APP_NAME": "KnowUsers"}}

#db.init_app(app)

login_manager.init_app(app)

app.register_blueprint(bp_users, url_prefix='/user')
import views
示例#8
0
文件: main.py 项目: luckypoem/my_site
from flask import Flask, request, render_template, url_for, flash
from flask_login import current_user, login_required
from sqlalchemy import desc
from werkzeug.utils import redirect

import config_t
import v2ray_config
from auth import auth as auth_blueprint
from auth import login_manager
from data_model import db, Article, Tag, Message, Link
from my_utils import my_secure_filename, hgihtlight_word

app = Flask(__name__)
app.config.from_object(config_t)
db.init_app(app)
login_manager.init_app(app)
app.register_blueprint(auth_blueprint)
app.jinja_env.globals.update(hgihtlight_word=hgihtlight_word)


@app.errorhandler(404)
def page_not_found(e):
    # note that we set the 404 status explicitly
    return render_template('404.html', error=e), 404


# @app.route("/utils")
# def utils():
#    tag = Tag.query.all()
#    for a in tag:
#        print(a.name)
示例#9
0
def create_app(mongo_uri, debug=False, testing=False):
    app = Flask(__name__)
    app.config['DEBUG'] = debug
    app.config['TESTING'] = testing
    app.config['WTF_CSRF_ENABLED'] = not testing
    app.config['MONGO_URI'] = mongo_uri
    app.secret_key = os.environ.get('SECRET_KEY', 'clef pour les tests')
    Babel(default_locale='fr').init_app(app)
    Gravatar().init_app(app)
    mongo.init_app(app)
    login_manager.init_app(app)
    bcrypt.init_app(app)

    app.register_blueprint(auth)
    app.register_blueprint(bookmarks)
    app.register_blueprint(tools, url_prefix='/tools')
    app.register_blueprint(profil, url_prefix='/profil')

    @app.before_first_request
    def create_mongo_index():
        mongo.db.bookmarks.ensure_index('published',
                                        pymongo.DESCENDING,
                                        background=True)
        mongo.db.bookmarks.ensure_index('user._id',
                                        pymongo.DESCENDING,
                                        background=True)
        mongo.db.bookmarks.ensure_index('title',
                                        pymongo.ASCENDING,
                                        background=True)
        mongo.db.bookmarks.ensure_index('description', background=True)
        mongo.db.bookmarks.ensure_index('tags',
                                        pymongo.ASCENDING,
                                        background=True)
        mongo.db.bookmarks.ensure_index([('user._id', pymongo.ASCENDING),
                                         ('url', pymongo.ASCENDING)],
                                        background=True,
                                        unique=True)

        mongo.db.users.ensure_index('email',
                                    pymongo.ASCENDING,
                                    background=True,
                                    unique=True)
        mongo.db.users.ensure_index('nickname',
                                    pymongo.ASCENDING,
                                    background=True,
                                    unique=True)

    @environmentfilter
    def group_by_humanize_date(environment, value, attribute):
        sorted_collections = sorted(value,
                                    key=make_attrgetter(
                                        environment, attribute))
        return map(
            _GroupTuple,
            groupby(sorted_collections,
                    _make_attr_getter_for_date(environment, attribute)))

    app.jinja_env.filters['group_by_humanize_date'] = group_by_humanize_date

    @app.template_filter()
    def group_by_first_letter(array_of_string):
        return groupby(array_of_string, key=operator.itemgetter(0))

    def _make_attr_getter_for_date(environment, attribute):
        def callback(x):
            return arrow.get(environment.getitem(
                x, attribute)).humanize(locale='FR_fr')

        return callback

    return app
示例#10
0
def config_app(app, config):

    app.logger.info('Setting up application...')

    app.logger.info('Loading config file: %s' % config)
    app.config.from_pyfile(config)
    ctx = app.app_context()
    ctx.push()
    #print app.config['SQLALCHEMY_DATABASE_URI']
    app.logger.info('Setting up extensions...')
    db.init_app(app)

    #print db.get_uri()
    config_principal(app)
    #oid.init_app(app)
    from auth import login_manager
    login_manager.init_app(app)
    #babel.init_app(app)
    #mail.init_app(app)
    register_blueprints(app)




    # @babel.localeselector
    # def get_locale():
    #     # 暂时强制返回 zh_CN
    #     return 'zh_CN'

    # from flask.ext.babel import get_locale
    # app.logger.error(get_locale())
    with app.app_context():
        from datetime import  datetime

        import models
        from models import User
        from models import Article
        #db.create_all()
        print app.config['SQLALCHEMY_DATABASE_URI']
        # User()
        # db.create_all()
        # user=User()
        # user.username='******'
        # user.password='******'
        # db.session.add(user)
        print models.User.query.all()
        print app.config['SQLALCHEMY_DATABASE_URI']


        from batch.minimography import Minimography
        from batch import scheduler
        scheduler.start()


        #m=batch.minimography.Minimography()
        #m.process()

    @app.after_request
    def after_request(response):
        try:
            db.session.commit()
        except Exception:
            db.session.rollback()
            abort(500)
        return response

    with app.test_request_context():
        pass