A Simple Flask-Script Example.
Next thing we are going to add is the ability to run a shell which that shares your applications environment. You need to decide what you ant to import and put it in the shell_context function. Call it whatever you want, but it has to return a dict with your context items inside. To keep it simple I just import the app itself. The lines you need to change are:
from flaskext.script import Manager, Server, Shell
and
def shell_context():
return dict(app=app)
if __name__ == "__main__":
manager.add_command('dev', DevServer())
manager.add_command('test', Test())
manager.add_command('zen', ZenTest())
manager.add_command('shell', Shell(make_context=shell_context))
manager.run()
now test it:
python manager.py shell >>> app.debug True >>> app.logger<flask.logging.DebugLogger instance at 0x2ee3518>
and so on.
There's one final installment to follow - Let Your Imagination Run Riot On Our Flask-Script Example
The full listing for what we did here is below:
from flaskext.script import Manager, Server, Shell
from flaskext.zen import Test, ZenTest
import application
app = application.create_app()
manager = Manager(app)
class DevServer(Server):
def handle(self, app, host, port, use_debugger, use_reloader):
try:
from flaskext.lesscss import lesscss
lesscss(app)
except: pass
app.run(host=host,
port=port,
debug=use_debugger,
use_debugger=use_debugger,
use_reloader=use_reloader,
**self.server_options)
def shell_context():
return dict(app=app)
if __name__ == "__main__":
manager.add_command('dev', DevServer())
manager.add_command('test', Test())
manager.add_command('zen', ZenTest())
manager.add_command('shell', Shell(make_context=shell_context))
manager.run()
No comments:
Post a Comment