import os from functools import wraps from flask.ext.script import Manager, Server, prompt, prompt_pass from flask.ext.assets import ManageAssets from pooldin import create_app from pooldin.database import db from pooldin.database.manage import DBManager #from pooldin.database.models import User, Email from pooldin.app.convert import to_int manager = Manager(create_app) manager.app = manager.create_app() manager.add_command("assets", ManageAssets(manager.app.assets)) # Modify debug server to lisen on 0.0.0.0 port = os.environ.get('PORT') port = to_int(port) or 5000 manager.add_command("runserver", Server(host='0.0.0.0', port=port)) db_manager = DBManager() db_manager.add_app(manager.app) def handle_interrupts(fn): @wraps(fn) def wrapper(*args, **kw): try: return fn(*args, **kw) except KeyboardInterrupt:
app = None if os.path.isfile(config_path): app = create_app(config_path) manager = Manager() manager.add_command("db", flask.ext.migrate.MigrateCommand) @manager.command def superuser(): from staff.utils import get_uid email = prompt("email") password = prompt_pass("password") datastore = app.extensions["security"].datastore user = datastore.find_user(email=email) if user is None: user = datastore.create_user(email=email, wx_user_id=get_uid()) datastore.put(user) user.password = password role = datastore.find_or_create_role("admin") datastore.add_role_to_user(user, role) datastore.commit() if __name__ == "__main__": manager.app = app migrate = flask.ext.migrate.Migrate(app, db) manager.run()
"""Initialize mongopatcher on the database by setting it manifest""" version = version or current_app.config["MONGOPATCHER_DATAMODEL_VERSION"] _get_mongopatcher().manifest.initialize(version, force) print("Datamodel initialized to version %s" % version) @patcher_manager.option("-v", "--verbose", action="store_true", default=False, help="Show history") def info(verbose): """Show version of the datamodel""" if _get_mongopatcher().manifest.is_initialized(): print("Datamodel version: %s" % _get_mongopatcher().manifest.version) if verbose: print("\nUpdate history:") for update in reversed(_get_mongopatcher().manifest.history): reason = update.get("reason") reason = "(%s)" % reason if reason else "" print(" - %s: %s %s" % (update["timestamp"], update["version"], reason)) else: print("Datamodel is not initialized") if __name__ == "__main__": from flask import Flask import pymongo app = Flask(__name__) db = pymongo.MongoClient("mongodb://localhost:27017/test") init_patcher(app, db.get_default_database()) patcher_manager.app = app patcher_manager.run()
import os from functools import wraps from flask.ext.script import Manager, Server, prompt, prompt_pass from flask.ext.assets import ManageAssets from pooldin import create_app from pooldin.database import db from pooldin.database.manage import DBManager #from pooldin.database.models import User, Email from pooldin.app.convert import to_int manager = Manager(create_app) manager.app = manager.create_app() manager.add_command("assets", ManageAssets(manager.app.assets)) # Modify debug server to lisen on 0.0.0.0 port = os.environ.get('PORT') port = to_int(port) or 5000 manager.add_command("runserver", Server(host='0.0.0.0', port=port)) db_manager = DBManager() db_manager.add_app(manager.app) def handle_interrupts(fn): @wraps(fn) def wrapper(*args, **kw): try: return fn(*args, **kw) except KeyboardInterrupt: