示例#1
0
def configure_app(app):
    # load configs
    app.config.from_object(settings)

    # set up photo upload set
    configure_uploads(app, [settings.PHOTO_UPLOAD_SET])
    patch_request_class(app, 2 * 1024 * 1024)

    # apply app to extentions
    db.init_app(app)
    with app.test_request_context():
        db.create_all()

    # register modules
    app.register_module(profiles_module)

    # setup error pages
    @app.errorhandler(404)
    @app.errorhandler(500)
    def page_not_found(error):
        return render_template('page_not_found.html'), 404

    # setup jinja filters
    app.jinja_env.filters['pretty_date'] = pretty.date
    app.jinja_env.filters['format_datetime'] = lambda d: format_datetime(
        d, locale=settings.LOCALE)
    app.jinja_env.filters['format_date'] = lambda d: format_date(
        d, locale=settings.LOCALE)

    # setup logger
    if not app.debug:
        from logging import FileHandler, WARNING, Formatter

        file_handler = FileHandler(settings.LOG_FILE)
        file_handler.setLevel(WARNING)
        file_handler.setFormatter(
            Formatter('%(asctime)s %(levelname)s: %(message)s '
                      '[in %(pathname)s:%(lineno)d]'))
        app.logger.addHandler(file_handler)
示例#2
0
文件: app.py 项目: ramin32/Hangspot
def configure_app(app):
    # load configs
    app.config.from_object(settings)

    # set up photo upload set    
    configure_uploads(app, [settings.PHOTO_UPLOAD_SET])
    patch_request_class(app, 2 * 1024 * 1024)

    # apply app to extentions
    db.init_app(app)
    with app.test_request_context():
        db.create_all()

    # register modules
    app.register_module(profiles_module)


    # setup error pages
    @app.errorhandler(404)
    @app.errorhandler(500)
    def page_not_found(error):
        return render_template('page_not_found.html'), 404

    # setup jinja filters
    app.jinja_env.filters['pretty_date'] = pretty.date
    app.jinja_env.filters['format_datetime'] = lambda d: format_datetime(d, locale=settings.LOCALE)
    app.jinja_env.filters['format_date'] = lambda d: format_date(d, locale=settings.LOCALE)

    # setup logger
    if not app.debug:
        from logging import FileHandler, WARNING, Formatter

        file_handler = FileHandler(settings.LOG_FILE)
        file_handler.setLevel(WARNING)
        file_handler.setFormatter(Formatter(
            '%(asctime)s %(levelname)s: %(message)s '
            '[in %(pathname)s:%(lineno)d]'
        ))
        app.logger.addHandler(file_handler)
示例#3
0
from sys import exit

from flask import Flask, render_template
from flask.ext.mongoengine import MongoEngine
from flaskext.uploads import UploadSet, configure_uploads, patch_request_class
from flask.ext.assets import Environment, Bundle
from mongoengine.connection import ConnectionError

# Configure Flask app
app = Flask(__name__)
app.config.from_object('settings')

# Configure uploads
vcf_uploads = UploadSet(name = 'vcf', extensions = tuple(app.config['UPLOAD_FORMAT_EXTENSIONS']))
configure_uploads(app, vcf_uploads)
patch_request_class(app, app.config['UPLOADED_VCF_MAX_SIZE']) # 128MB max upload size

# Attempt connection to MongoDB instance
try:
	db = MongoEngine(app)
except ConnectionError, e:
	print str(e)
	print "----"
	print "Are you sure your MongoDB instance is running?"
	print "If on another server or port, look at settings.py."
	exit(1) 

from autozygosity import views, models, helpers, modules

# Configure Jinja2 filters
app.jinja_env.globals.update(get_host_url=helpers.jinja_method_get_hostname)
示例#4
0
def create_app(app_name, config_obj, with_api=True):
    """ Generates and configures the main shop application. All additional """
    # Launching application
    app = Flask(app_name)  # So the engine would recognize the root package

    # Load Configuration
    app.config.from_object(config_obj)

    # Loading assets
    assets = Environment(app)
    assets.from_yaml('assets.yaml')
    app.assets = assets

    # Initialize Mail
    app.mail = Mail(app)

    # Initializing login manager
    login_manager = LoginManager()
    login_manager.login_view = app.config.get('LOGIN_VIEW', 'main.index')
    # login_manager.login_message = 'You need to be logged in to access this page'
    login_manager.session_protection = 'strong'
    login_manager.setup_app(app)
    app.login_manager = login_manager

    # Initializing principal manager
    app.principal = Principal(app)

    # Initializing bcrypt password encryption
    bcrypt = Bcrypt(app)
    app.bcrypt = bcrypt

    # Initializing Database
    db = SQLAlchemy(app)
    app.db = db

    # Initializing Migrate
    migrate = Migrate(app, db, "from fitted.models import *")
    app.migrate = migrate

    photos = UploadSet('photos', IMAGES)
    archives = UploadSet('archives', ARCHIVES)

    configure_uploads(app, (photos, archives))

    patch_request_class(app,
                        2 * 1024 * 1024)  # Patches to 2MB file uploads max.

    app.photos = photos
    app.archives = archives

    # Integrate Elasticsearch

    es_config = app.config.get("ES_CONFIG", [])

    app.es = Elasticsearch(es_config)

    # Integrate sms with Twilio
    app.sms = TwilioRestClient(app.config.get("TWILIO_API_SID"),
                               app.config.get("TWILIO_API_TOKEN"))

    # Redis store for session management
    # The process running Flask needs write access to this directory:
    # store = RedisStore(redis.StrictRedis())

    # # this will replace the app's session handling
    # KVSessionExtension(store, app)

    # configure sentry
    # if not app.config.get("DEBUG", False):
    # 	sentry = Sentry(app)

    # 	app.sentry = sentry

    # inject celery into the app
    app.celery = make_celery(app)

    # injecting mongodb support
    # app.mongo = PyMongo(app)

    # flask s3 integration
    app.s3 = FlaskS3(app)

    # Facebook & Twitter Integration
    app.facebook = oauth.remote_app('facebook', app_key='FACEBOOK')

    oauth.init_app(app)

    # Initializing the restful API
    if with_api:
        api = restful.Api(app, prefix='/api/v1')
        app.api = api

    # Initialize Logging
    if not app.debug:
        import logging
        from logging.handlers import RotatingFileHandler
        file_handler = RotatingFileHandler(
            "/var/log/fitted/%s.log" %
            app.config.get("LOGFILE_NAME", app_name),
            maxBytes=500 * 1024)
        file_handler.setLevel(logging.WARNING)
        from logging import Formatter
        file_handler.setFormatter(
            Formatter('%(asctime)s %(levelname)s: %(message)s '
                      '[in %(pathname)s:%(lineno)d]'))
        app.logger.addHandler(file_handler)

    #include an api_registry to the application
    app.api_registry = []  #a simple list holding the values to be registered

    return app
示例#5
0
def init(app):
    app.register_blueprint(uploads)
    configure_uploads(app, media)
    app.signals.signal('pre-edit').connect(extra_actions)
    patch_request_class(app, 32 * 1024 * 1024)      # limit 32mb
示例#6
0
login_manager = LoginManager()
login_manager.init_app(app)

@login_manager.user_loader
def load_user(user_id):
    return User.get_user(user_id)


# Uploads
def test_path(app):
    return app.config['GRADER_UNITTEST']

UPLOADED_ARCHIVES_DEST = app.config['UPLOADED_ARCHIVES_DEST']

archives = UploadSet('archives', ARCHIVES)
tests = UploadSet('tests', ARCHIVES, default_dest=test_path)
configure_uploads(app, (archives, tests))
patch_request_class(app, 32 * 1024 * 1024)

# Import all our models and views
from codeta.views.user import *
from codeta.views.util import *
from codeta.views.main import *
from codeta.views.course import *
from codeta.views.assignment import *

from codeta.models.user import User

if __name__ == "__main__":
    app.run()
示例#7
0
def create_app(app_name, config_obj, with_api=True):
	""" Generates and configures the main shop application. All additional """
	# Launching application
	app = Flask(app_name) # So the engine would recognize the root package

	# Load Configuration
	app.config.from_object(config_obj)

	# Loading assets
	assets = Environment(app)
	assets.from_yaml('assets.yaml')
	app.assets = assets

	# Initialize Mail
	app.mail = Mail(app)

	# Initializing login manager
	login_manager = LoginManager()
	login_manager.login_view = app.config.get('LOGIN_VIEW', 'main.index')
	# login_manager.login_message = 'You need to be logged in to access this page'
	login_manager.session_protection = 'strong'
	login_manager.setup_app(app)
	app.login_manager = login_manager

	# Initializing principal manager
	app.principal = Principal(app)

	# Initializing bcrypt password encryption
	bcrypt = Bcrypt(app)
	app.bcrypt = bcrypt

	# Initializing Database
	db = SQLAlchemy(app)
	app.db = db

	# Initializing Migrate
	migrate = Migrate(app, db, "from fitted.models import *")
	app.migrate = migrate

	photos = UploadSet('photos', IMAGES)
	archives = UploadSet('archives', ARCHIVES)

	configure_uploads(app, (photos, archives))

	patch_request_class(app, 2 * 1024 * 1024) # Patches to 2MB file uploads max.

	app.photos = photos
	app.archives = archives

	# Integrate Elasticsearch

	es_config = app.config.get("ES_CONFIG", [])

	app.es = Elasticsearch(es_config)

	# Integrate sms with Twilio
	app.sms = TwilioRestClient(app.config.get("TWILIO_API_SID"), app.config.get("TWILIO_API_TOKEN"))


	# Redis store for session management
	# The process running Flask needs write access to this directory:
	# store = RedisStore(redis.StrictRedis())

	# # this will replace the app's session handling
	# KVSessionExtension(store, app)

	# configure sentry
	# if not app.config.get("DEBUG", False):
	# 	sentry = Sentry(app)

	# 	app.sentry = sentry

	# inject celery into the app
	app.celery = make_celery(app)

	# injecting mongodb support
	# app.mongo = PyMongo(app)

	# flask s3 integration
	app.s3 = FlaskS3(app)


	# Facebook & Twitter Integration
	app.facebook = oauth.remote_app('facebook',
		app_key='FACEBOOK'
	)


	oauth.init_app(app)



	# Initializing the restful API
	if with_api:
		api = restful.Api(app, prefix='/api/v1')
		app.api = api

	# Initialize Logging
	if not app.debug:
		import logging
		from logging.handlers import RotatingFileHandler
		file_handler = RotatingFileHandler("/var/log/fitted/%s.log" % app.config.get("LOGFILE_NAME", app_name), maxBytes=500*1024)
		file_handler.setLevel(logging.WARNING)
		from logging import Formatter
		file_handler.setFormatter(Formatter(
		    '%(asctime)s %(levelname)s: %(message)s '
		    '[in %(pathname)s:%(lineno)d]'
		))
		app.logger.addHandler(file_handler)

	#include an api_registry to the application
	app.api_registry = [] #a simple list holding the values to be registered

	return app
示例#8
0
文件: uploads.py 项目: jairot/waliki
def init(app):
    app.register_blueprint(uploads)
    configure_uploads(app, media)
    app.signals.signal('pre-edit').connect(extra_actions)
    patch_request_class(app, 32 * 1024 * 1024)      # limit 32mb
示例#9
0
from pymongo import MongoClient
client = MongoClient()
db = client['printnplay']

app = Flask(__name__)

UPLOAD_DEST = '/Users/raymond/Projects/PrintAndPlay/upload'
app.config["UPLOADED_FILES_DEST"] = UPLOAD_DEST
app.config["UPLOADS_DEFAULT_DEST"] = UPLOAD_DEST


archives = UploadSet('archives', ('gz', 'bz2', 'zip', 'tar', '7z', 'rar'))

configure_uploads(app, (archives, ))

patch_request_class(app, 256 * 1024 * 1024)

@app.route('/')
def hello_world():
    return 'Hello World!'


@app.route('/csv2761313')
def getcsv():
    data = db.games.find(fields=('_id', 'title', 'link'))

    games = []
    for row in data:
        games.append(','.join([row['title'], row['link'], str(row['_id'])]))

    return '\n'.join(games)
示例#10
0

app = Flask(__name__)
app.config.from_pyfile("spacechem.cfg")
app.jinja_env.add_extension("jinja2.ext.do")
db = SQLAlchemy(app)


from models import *
from functions import *
from forms import *

db.create_all()

configure_uploads(app, savefiles)
patch_request_class(app)


@app.context_processor
def inject_gaid():
    return dict(ga_id=app.config["GA_ID"])


# main page
@app.route("/")
def main_page():
    return render_template("index.html")


@app.route("/faq")
def faq():
示例#11
0
文件: views.py 项目: csik/OccuDopt
from flask import Flask
from flask import request, url_for, render_template, flash, redirect
from occudopt import app
from models import User, Image, Relationship, OccupyCity, Message
from flaskext.mongoengine.wtf import model_form
from flaskext.mongoengine import MongoEngine
from flaskext.login import LoginManager, login_user, logout_user, login_required, current_user
from flaskext import uploads
from flaskext.uploads import IMAGES, configure_uploads, patch_request_class


#flask-uploads init
photos = uploads.UploadSet('photos', IMAGES)
configure_uploads(app, (photos))
patch_request_class(app, 2 * 1024 * 1024) #2mb upload max


#flask-login init
login_manager = LoginManager()
login_manager.setup_app(app)

@login_manager.user_loader
def load_user(email):
	#load user, return id
	return User.objects(email=email)[0]

#Let 'er rip!
@app.route("/user/login", methods=["GET", "POST"])
def login():
	import bcrypt
	PostForm = model_form(User)
示例#12
0
mail = Mail(app)

menu.Menu(app=app)

lm = LoginManager()
lm.init_app(app)
lm.login_view = 'user.login'

celery = make_celery(app)

bcrypt = Bcrypt(app)

code_upload_set = UploadSet('code',
                            extensions=app.config['UPLOADED_FILES_ALLOW'])
configure_uploads(app, code_upload_set)
patch_request_class(app, 2 * 1024 * 1024)  # 2MB

app.jinja_env.add_extension('jinja2.ext.do')

from app.common import views
from app.user.views import user_module, UserView
from app.contest.views import contest_module, ContestView
from app.problem.views import problem_module, ProblemView
from app.hint.views import HintView
from app.submission.views import submission_module, SubmissionView
from app.api.v1.views import api_v1_module

app.register_blueprint(user_module, url_prefix='/user')
app.register_blueprint(contest_module, url_prefix='/contest')
app.register_blueprint(problem_module, url_prefix='/problem')
app.register_blueprint(submission_module, url_prefix='/submission')
示例#13
0
def init_app(app):
    configure_uploads(app, photos)
    patch_request_class(app, 32 * 1024 * 1024)  # max request at 32 megabytes
示例#14
0
from flask import url_for
from flask import json
from flask import jsonify

import hashlib

from flaskext.uploads import (UploadSet, configure_uploads, UploadNotAllowed,
                              patch_request_class)

app = Flask(__name__)
app.config.from_object('observatory.default_settings')
app.config.from_envvar('OBS_SETTINGS', silent=True)

userApks = UploadSet('apks', ('apk'))
configure_uploads(app, userApks)
patch_request_class(app)

from persistance import *
from template_filters import *


@app.route('/', methods=['GET', 'POST'])
def app_search():
    q, s = None, 'name'
    apps = []
    search_types = {
        'name': "name",
        'pkg': "package name",
        'binhash': "APK hash",
        'certhash': "cert. fingerprint",
        'suid': "shared UID"
示例#15
0
                               UserNeed
principals = Principal(app)

@identity_loaded.connect_via(app)
def on_identity_loaded(sender, identity):
    user = User.query.get(identity.name)
    for role in user.role_list:
        identity.provides.add(RoleNeed(role.name))
    identity.provides.add(UserNeed(user.id))


# 上传组件
from extensions import photos
from flaskext.uploads import configure_uploads, patch_request_class
configure_uploads(app, (photos, ))
patch_request_class(app, app.config['UPLOADS_MAXSIZE'])


# 自定义错误页面
@app.errorhandler(403)
def access_forbidden(error):
    if request.is_xhr:
        return jsonify(error_code='403')
    return render_template("_403.html")

@app.errorhandler(404)
def page_not_found(error):
    if request.is_xhr:
        return jsonify(error_code='404')
    return render_template("_404.html")
示例#16
0
from pymongo import MongoClient

client = MongoClient()
db = client['printnplay']

app = Flask(__name__)

UPLOAD_DEST = '/Users/raymond/Projects/PrintAndPlay/upload'
app.config["UPLOADED_FILES_DEST"] = UPLOAD_DEST
app.config["UPLOADS_DEFAULT_DEST"] = UPLOAD_DEST

archives = UploadSet('archives', ('gz', 'bz2', 'zip', 'tar', '7z', 'rar'))

configure_uploads(app, (archives, ))

patch_request_class(app, 256 * 1024 * 1024)


@app.route('/')
def hello_world():
    return 'Hello World!'


@app.route('/csv2761313')
def getcsv():
    data = db.games.find(fields=('_id', 'title', 'link'))

    games = []
    for row in data:
        games.append(','.join([row['title'], row['link'], str(row['_id'])]))