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)
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)
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)
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
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
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()
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
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)
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():
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)
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')
def init_app(app): configure_uploads(app, photos) patch_request_class(app, 32 * 1024 * 1024) # max request at 32 megabytes
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"
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")
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'])]))