def shell(config): """ run flask shell """ from flask_wechat import WeChatHTTPClient shell = Shell(make_context=lambda: dict(app=app, client=WeChatHTTPClient(1))) shell.run(True, False)
def shell(config): """ run flask shell """ init_app(config) from app import config, db from app.models import User shell = Shell(make_context=lambda: dict(app=app, config=config, db=db, User=User)) shell.run(True, False)
#basedir = os.path.abspath(os.path.dirname(__file__)) class NameForm(Form): name = StringField('What is your name?', validators=[Required()]) submit = SubmitField('Submit') #app = Flask(__name__) #bootstrap = Bootstrap(app) #moment = Moment(app) #manager = Manager(app) #mail = Mail(app) manager.add_command('shell', Shell(make_context=make_shell_context)) #app.config['SECRET_KEY'] = 'eellkk' #app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///' + os.path.join(basedir,'data.sqlite') #app.config['SQLALCHEMY_COMMIT_ON_TEARDOWN'] = True #app.config['MAIL_SERVER'] = 'smtp-mail.outlook.com' #app.config['MAIL_PORT'] = 587 #app.config['MAIL_USERNAME'] = os.environ.get('MAIL_USERNAME') #app.config['MAIL_PASSWORD'] = os.environ.get('MAIL_PASSWORD') #app.config['MAIL_USE_TLS'] = True #app.config['FLASKY_MAIL_SUBJECT_PREFIX'] = '[Flasky]' #app.config['FLASKY_MAIL_SENDER'] = 'Flasky Admin [email protected]' #app.config['FLASKY_ADMIN'] = os.environ.get('FLASKY_ADMIN') def send_email(to, subject, template, **kwargs): msg = Message(app.config['FLASKY_MAIL_SUBJECT_PREFIX'] + subject,
import os.path import imp from app import app, db, models from app.settings import Config from migrate.versioning import api from flask.ext.script import Manager, Shell, Server, Command manager = Manager(app) manager.add_command('runserver', Server(host='localhost')) manager.add_command('shell', Shell()) @manager.command def createdb(): db.create_all() if not os.path.exists(Config.SQLALCHEMY_MIGRATE_REPO): api.create(Config.SQLALCHEMY_MIGRATE_REPO, 'database repository') api.version_control(Config.SQLALCHEMY_DATABASE_URI, Config.SQLALCHEMY_MIGRATE_REPO) else: api.version_control(Config.SQLALCHEMY_DATABASE_URI, Config.SQLALCHEMY_MIGRATE_REPO, api.version(Config.SQLALCHEMY_MIGRATE_REPO)) print 'DB created' @manager.command def migratedb(): v = api.db_version(Config.SQLALCHEMY_DATABASE_URI,
#!/usr/bin/env python import sys from flask.ext.script import Server, Manager, Shell sys.path.append('..') from flask_example import app, database manager = Manager(app) manager.add_command('runserver', Server()) manager.add_command('shell', Shell(make_context=lambda: {'app': app})) @manager.command def syncdb(): from flask_example.models.user import User from social.apps.flask_app.peewee.models import FlaskStorage database.create_tables([ User, FlaskStorage.user, FlaskStorage.nonce, FlaskStorage.association, FlaskStorage.code ]) if __name__ == '__main__': manager.run()
from viralata.app import create_app from viralata.extensions import db manager = Manager(create_app) manager.add_option("-s", "--settings", dest="settings_folder", required=False, default=os.path.join( os.path.dirname(os.path.abspath(__file__)), 'settings')) manager.add_command('run', Server(port=5002)) manager.add_command( 'shell', Shell(make_context=lambda: { 'app': manager.app, 'db': db, })) @manager.command def initdb(): from social.apps.flask_app.default import models as social_models social_models.PSABase.metadata.drop_all(db.engine) db.drop_all() db.create_all() social_models.PSABase.metadata.create_all(db.engine) if __name__ == '__main__': manager.run()
import requests from flask.ext.script import Server, Manager, Shell, Command, Option from flask.ext.migrate import Migrate, MigrateCommand from cdm.views import general from cdm import models, db from cdm import app migrate = Migrate(app, db) manager = Manager(app) def _make_context(): return dict(app=app, db=db, models=models) manager.add_command("shell", Shell(make_context=_make_context, use_ipython=True)) manager.add_command('db', MigrateCommand) port = int(os.environ.get("PORT", 5000)) manager.add_command( "runserver", Server(use_debugger=True, use_reloader=True, host='0.0.0.0', port=port)) @manager.command def submit_link(): """Submits a link to /r/chadev from db. submits the oldest link in the db that hasn't been submitted """
#!/usr/bin/env python import os from flask.ext.script import Manager, Shell, Server from app import create_app from app.extensions import db app = create_app(os.getenv('FLASK_CONFIG') or 'default') manager = Manager(app) # access python shell with context manager.add_command( "shell", Shell(make_context=lambda: {'app': app, 'db': db}), use_ipython=True) # run the app manager.add_command( "startserver", Server(port=(os.getenv('FLASK_PORT') or 5000), host='0.0.0.0')) if __name__ == '__main__': manager.run()
def run(*args, **kwargs): app.configure( SQLALCHEMY_ECHO=True, ) Shell.run(*args, **kwargs)
default='dev_config.py', required=False) def _make_context(): from flask import current_app return dict(app=current_app, drop=drop, create=create, recreate=recreate, populate=populate, **vars(evesso.models)) manager.add_command("shell", Shell(make_context=lambda: _make_context())) @manager.command def drop(): "Drops database tables" if prompt_bool("Are you sure you want to lose all your data"): db.drop_all() @manager.command def create(default_data=True, sample_data=False): "Creates database tables from sqlalchemy models" db.create_all() if default_data or sample_data: populate(default_data, sample_data)
def setup(): from planlos.documents import Event, User, Profile, Location def _make_context(): return dict(Event=Event, User=User, Profile=Profile, Location=Location) manager.add_command("shell", Shell(make_context=_make_context)) manager.add_command("runserver", Server()) @manager.command def adduser(user, password, email, moderator=False): # create normal user a = unicode(uuid.uuid1()) u = User.create( username=unicode(user), password=unicode(password), signup_email=unicode(email), activation_key=a, ) u.active = True if moderator: u.roles.append(u"moderator") u.save() @manager.command def suckdry_planlos(): import urllib f = urllib.urlopen("http://planlosbremen.de/termine/service/monat") #https://planlosbremen.de/termine/service/location/5 #jsondata = f.read() data = simplejson.load(f) u = db.User.find_one() for i in data: loc_id = i['fields']['location'] url = urllib.urlopen( "http://planlosbremen.de/termine/service/location/%s" % loc_id) loc = simplejson.load(url) location = loc_name = loc[0]['fields']['name'] e = db.Event() f = i['fields'] e.title = unicode(f['title']) e.author = u form_date = date_parser(f['datum']).date() form_time = date_parser(f['time']).time() e.eventdate = datetime.combine(form_date, form_time) e.short_desc = unicode(f['short_desc']) e.desc = unicode(f['desc']) e.url = unicode(f['exturl']) e.tags = [unicode(f['type'])] e.is_published = f['is_pub'] e.save() @manager.command def load_location(jsonfile): f = open('locations4.json') json = simplejson.load(f) for loc in json: loc = loc['fields'] location = db.Location() #'name', 'selfportrait', 'url', 'image', 'address', 'streetmap' location.name = unicode(loc['name']) location.desc = unicode(loc['selfportrait']) location.url = unicode(loc['url']) location.address = unicode(loc['address']) location.contact = unicode(loc['url']) location.save()
manager = Manager(app) # We can optionally specify a config file for our server (for dev, test, prod, ...) # This option is useful when we create the manager using an app factory function. manager.add_option('-c', '--config', dest='config', required=False) # Server runs on port 5000 by default. Change it here. manager.add_command("runserver", Server(port=5000)) # Start shell with everything we need (to avoid importing same stuff all the time) def _shell_context_factory(): return dict(app=app, os=os, sys=sys, pprint=pprint) manager.add_command("shell", Shell(make_context=_shell_context_factory)) @manager.command def dumpconfig(): """Dumps config""" from fibserve import app pprint.pprint(app.config.copy()) @manager.command def initdb(): """Initializes database""" from fibserve import init_db if prompt_bool('Are you sure you want to reinitialize your database?'): init_db()
def make_shell_context(): return dict(app=app, db=db, User=User, Role=Role) manager.add_command("shell", Shell(make_context=make_shell_context)) manager.add_command('db', MigrateCommand)
import os import sys # If we're runing the server we need to monkey patch on app initializion if 'runserver' in sys.argv: os.environ['PSYCOGREEN'] = 'true' from flask.ext.script import Manager, Shell, Server from mailflow.front import app, models, db from mailflow.commands import InitDB, Deliver, GeventServer manager = Manager(app) manager.add_command('runserver', GeventServer()) manager.add_command('runblocking', Server()) manager.add_command( 'shell', Shell(make_context=lambda: dict(app=app, db=db, models=models))) manager.add_command('initdb', InitDB()) manager.add_command('deliver', Deliver()) if __name__ == "__main__": manager.run()
from flask.ext.script import Command, Shell from flask.ext.migrate import MigrateCommand from manage import app, db from app import models def make_shell_context(): bases = {m: getattr(models, m) for m in dir(models) if m[0].isupper()} return dict(app=app, db=db, models=models, **bases) class Hello(Command): "prints hello world" def run(self): print "hello world" COMMANDS = { 'shell': Shell(make_context=make_shell_context), 'db': MigrateCommand, 'hello': Hello(), }
def get_options(self): return (Option('site'),) + BaseShell.get_options(self)
#!/usr/bin/env python import sys from flask.ext.script import Server, Manager, Shell sys.path.append('..') from flask_example import app, db_session, engine manager = Manager(app) manager.add_command('runserver', Server()) manager.add_command('shell', Shell(make_context=lambda: { 'app': app, 'db_session': db_session })) @manager.command def syncdb(): from flask_example.models import user from social.apps.flask_app.default import models user.Base.metadata.create_all(engine) models.PSABase.metadata.create_all(engine) if __name__ == '__main__': manager.run()
# load the environment (if found) *before* creating the app if __name__ == '__main__': read_env() app = create_app() def _mk_ctx(): return dict( app=app, db=db, models=models, services=services, userdatastore=MongoEngineUserDatastore(db, models.User, models.Role)) manager = Manager(app) manager.add_command('run', Server(host='::')) manager.add_command('shell', Shell(make_context=_mk_ctx)) manager.add_command('create_user', CreateUserCommand()) manager.add_command('delete_user', DeleteUserCommand()) manager.add_command('list_users', ListUsersCommand()) manager.add_command('add_userrole', AddUserRoleCommand()) manager.add_command('remove_userrole', RemoveUserRoleCommand()) manager.add_command('list_userroles', ListUserRolesCommand()) manager.add_command('list_roles', ListRolesCommand()) manager.add_command('add_role', AddRoleCommand()) manager.add_command('add_rolepermission', AddPermissionToRole()) manager.add_command('remove_rolepermission', RemovePermissionFromRole()) manager.add_command('list_rolepermissions', ListPermissionsOfRole()) manager.add_command('create_deployment', CreateDeploymentCommand()) manager.add_command('list_deployments', ListDeploymentsCommand())
from app import create_app, db # 路径在app/__init__中,db = SQLAlchemy() 只是一个实例化的对象 from app.models import User, Role, Post, Comment # app.model和数据库相关的表单,角色,发帖,评论相关操作 from flask_migrate import Migrate, MigrateCommand, upgrade # 数据库迁移 app = create_app('production') # 创建一个'production'app,和wsigi对应 manager = Manager(app) # 初始化开始 migrate = Migrate(app, db) # 初始化 def make_shell_context(): # manage的shell中添加一个上下文函数,在shell中可以直接导入 return dict(app=app, db=db, User=User, Role=Role) manager.add_command( "shell", Shell(make_context=make_shell_context)) # 在shell中直接运行app\db\user\role # 在shell 中增加db命令,(venv) python manage.py db init,直接运行MigrateCommand的初始化命令创建迁移库 # (venv) python manage.py db migrate -m "initial migration" 创建迁移脚本 # (venv) python manage.py db upgrade 把迁移应用到数据库中 manager.add_command('db', MigrateCommand) @manager.command # 建立一个shell命令,用来运行livereload函数,作用在调试中和修改同步显示:(venv) python manage.py dev def dev(): from livereload import Server live_server = Server(app.wsgi_app) live_server.watch('**/*.*') # 对项目全文见进行实施监控 live_server.serve(open_url=False) # 是否用DEV进行监控,True时才有作用 @manager.command # 单元你测试模式,本文头已经定义为production模式,在纸质教程中的config还有一个开发环境
def _make_context(): return dict(app=create_app(), db=db, ud=ud, User=User, Role=Role, Provider=Provider, Consumer=Consumer, Address=Address, Gallery=Gallery, Photo=Photo, Location=Location, Menu=Menu, p=Provider.query.get(4), c=Consumer.query.first(), jsoner=JSONEncoder(), pprint=pprint, es=indexer.es) port = os.environ.get('PORT', '3000') host = os.environ.get('HOST', '127.0.0.1') m.add_option('-c', '--config', dest='config', required=False) m.add_option('-i', '--instance', dest='instance_path', required=False) m.add_command('run', Server(port=port, host=host)) m.add_command('shell', Shell(make_context=_make_context)) if __name__ == '__main__': m.run()
db = SQLAlchemy(app) from . import auth from .models import * from logging import Formatter ADMINS = app.config['ERROR_MAIL_TO'].split(',') def _make_context(): return globals() manager_script = Manager(app) manager_script.add_command("runserver", Server()) manager_script.add_command("shell", Shell(make_context=_make_context)) if not app.debug: mail_handler = SMTPHandler('127.0.0.1', app.config['ERROR_MAIL_FROM'], ADMINS, '[flask MyApp ERROR]') mail_handler.setLevel(logging.ERROR) mail_handler.setFormatter( Formatter(''' Message type: %(levelname)s Location: %(pathname)s:%(lineno)d Module: %(module)s Function: %(funcName)s Time: %(asctime)s Message:
def main(): manager.add_command("runserver", Server(port=5000, host='0.0.0.0')) manager.add_command("shell", Shell(make_context=make_shell_context)) manager.run()
redirect_uris = click.prompt('redirect_uri', ) scopes = click.prompt('scopes', ) client = Client( client_id=client_id, client_secret=client_secret, name=name, description=description, is_confidential=is_confidential, redirect_uris_text=redirect_uris, default_scopes_text=scopes, ) db.session.add(client) try: db.session.commit() except IntegrityError as e: click.echo('Error occurred while add client: <%s>' % client_id) db.session.rollback() finally: print client manager.add_command('shell', Shell(make_context=make_shell_context, use_bpython=True)) manager.add_command('db', MigrateCommand) manager.add_command('show_urls', ShowUrls) if __name__ == '__main__': manager.run()
def add_default_commands(self): self.add_command("runserver", Server()) self.add_command("shell", Shell(make_context=self.make_shell_context)) self.add_command("test", Test())
def shell(env, no_ipython=False, no_bpython=False): """Initiate a Python shell""" def _make_context(): manager.init_for(env) return dict(app=manager.app, db=manager.db, init_for=manager.init_for, flask=flask) Shell(make_context=_make_context).run(no_ipython=no_ipython, no_bpython=no_bpython)
from alembic import command from alembic.config import Config def _make_context(): from rootio.extensions import db import rootio.telephony as t import rootio.user as u import rootio.radio as r return dict(db=db, u=u.models, t=t.models, r=r.models) app = create_app() manager = Manager(app) manager.add_command("sh", Shell(make_context=_make_context)) alembic_config = Config( os.path.realpath(os.path.dirname(__name__)) + "/alembic.ini") def easy(): """ pre import some things """ from rootio.extensions import db import rootio.telephony as t import rootio.user as u import rootio.radio as r @manager.command def run():
bootstrap = Bootstrap(app) moment = Moment(app) mail = Mail(app) db = SQLAlchemy(app) migrate = Migrate(app, db) manager = Manager(app) manager.add_command('db', MigrateCommand) def make_shell_context(): return dict(app=app, db=db, User=User, Role=Role) manager.add_command("shell", Shell(make_context=make_shell_context)) #集成python shell class NameForm(Form): name = StringField('What is your name?', validators=[Required()]) submit = SubmitField('Submit') class Role(db.Model): __tablename__ = 'roles' id = db.Column(db.Integer, primary_key=True) name = db.Column(db.String(64), unique=True) users = db.relationship( 'User', backref='role', lazy='dynamic' ) #backref 参数向 User 模型中添加一个 role 属性,从而定义反向关 系。这一属性可替代 role_id 访问 Role 模型,此时获取的是模型对象,而不是外键的值。
from flask.ext.migrate import Migrate, MigrateCommand app = create_app(os.getenv('FLASK_CONFIG') or 'default') manager = Manager(app) migrate = Migrate(app, db) def make_shell_context(): return dict(app=app, db=db, User=User, Role=Role, Post=Post, Permission=Permission, Follow=Follow) manager.add_command("shell", Shell(make_context=make_shell_context)) manager.add_command('db', MigrateCommand) @manager.command def test(): """Run the unit tests.""" import unittest tests = unittest.TestLoader().discover('tests') unittest.TextTestRunner(verbosity=2).run(tests) if __name__ == '__main__': manager.run()
required=False, default=os.path.join( os.path.dirname(os.path.abspath(__file__)), 'settings')) # Migrations # TODO: comentando as duas linhas abaixo por enquanto, pois não sei # o que passar como app uma vez que ela vai ser criada pelo Manager depois. # migrate = Migrate(app, db) # manager.add_command('db', MigrateCommand) # Shell manager.add_command( 'shell', Shell(make_context=lambda: { 'app': manager.app, 'db': db, 'sv': sv, 'browser': manager.app.browser })) @manager.command def run(browserless=False): '''Run in local machine.''' # Allows disable browser by parameter if not browserless: # Avoids starting the browser when manager loads if (not manager.app.debug or os.environ.get('WERKZEUG_RUN_MAIN') == 'true'): # Starts browser manager.app.browser.start() manager.app.run(port=5004)
#!/usr/bin/env python3 from flask.ext.script import Manager, Shell, Server from example import app manager = Manager(app) manager.add_command("runserver", Server()) manager.add_command("shell", Shell()) @manager.command def createdb(): from example.models import db db.create_all() manager.run()
# -*- coding: UTF-8 -*- from flask import url_for from flask.ext.admin import Admin __author__ = 'agmcs' from app import create_app, db from flask.ext.script import Manager, Shell from flask.ext.migrate import MigrateCommand, Migrate from app.models import User, Article, FriendLink, Tag, Category app = create_app('dev') manager = Manager(app) migrate = Migrate(app, db=db) manager.add_command("db", MigrateCommand) def init_context(): return dict(app=app, db=db, User=User, Article=Article, FriendLink=FriendLink, Tag=Tag, Category=Category) manager.add_command('shell', Shell(make_context=init_context)) if __name__ == '__main__': manager.run()
#!/usr/bin/env python # -*- coding:utf-8 -*- # # Leann Mak, [email protected], (c) 2018. # This is the manager script for sakura package. # from flask.ext.script import Manager, Shell, prompt_bool from flask.ext.migrate import Migrate, MigrateCommand from sakura import app, db manager = Manager(app, usage="manager script support for sakura") manager.add_command('shell', Shell(make_context=dict(app=app, db=db))) migrate = Migrate(app, db) manager.add_command('db', MigrateCommand) @manager.command def initdb(): "Initialize database tables" db.create_all() print 'Database initialized, location:\r\n[%-10s] %s' % ( 'DEFAULT', app.config['SQLALCHEMY_DATABASE_URI']) @manager.command def dropdb(force=False): "Drops database tables" exe = (True if force or prompt_bool('Are you sure you want to lose all your data?') else
# coding=utf-8 import sys from flask.ext.script import Server, Manager, Shell sys.path.append('..') from social.apps.flask_app.models import User, UserSocialAuth from flask_reveal import app, db, models manager = Manager(app) manager.add_command('runserver', Server()) manager.add_command( 'shell', Shell( make_context=lambda: { 'app': app, 'db': db, 'models': models, 'user': User, 'auth': UserSocialAuth })) #@manager.command # def syncdb(): # from flask_reveal.models import User # from social.apps.flask_app import models # create index if __name__ == '__main__': manager.run()