Ejemplo n.º 1
0
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)
Ejemplo n.º 2
0
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)
Ejemplo n.º 3
0

#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,
Ejemplo n.º 4
0
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,
Ejemplo n.º 5
0
#!/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()
Ejemplo n.º 6
0
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()
Ejemplo n.º 7
0
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
    """
Ejemplo n.º 8
0
#!/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()

Ejemplo n.º 9
0
 def run(*args, **kwargs):
     app.configure(
         SQLALCHEMY_ECHO=True,
     )
     Shell.run(*args, **kwargs)
Ejemplo n.º 10
0
                   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)
Ejemplo n.º 11
0
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()
Ejemplo n.º 12
0
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()
Ejemplo n.º 13
0
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)
Ejemplo n.º 14
0
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()
Ejemplo n.º 15
0
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(),
}
Ejemplo n.º 16
0
 def get_options(self):
     return (Option('site'),) + BaseShell.get_options(self)
Ejemplo n.º 17
0
#!/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()
Ejemplo n.º 18
0
# 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())
Ejemplo n.º 19
0
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还有一个开发环境
Ejemplo n.º 20
0
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()
Ejemplo n.º 21
0
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()
Ejemplo n.º 23
0
    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()
Ejemplo n.º 24
0
 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())
Ejemplo n.º 25
0
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)
Ejemplo n.º 26
0
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():
Ejemplo n.º 27
0
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 模型,此时获取的是模型对象,而不是外键的值。
Ejemplo n.º 28
0
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()
Ejemplo n.º 29
0
                   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)
Ejemplo n.º 30
0
#!/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()
Ejemplo n.º 31
0
# -*- 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()
Ejemplo n.º 32
0
#!/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
Ejemplo n.º 33
0
# 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()