===============
Flask-ShellPlus
===============
Flask-ShellPlus is a Flask extension aimed to enhance your debugging with Flask apps.
It's heavily affected by `Django-Extentions `_
``shell_plus`` module but focused on Flask and on the top of `Flask-Script
`_.
Flask-ShellPlus supports BPython, IPython, ptPython and ptiPython now, and also with
Jupyter notebook on the way.
Installation
------------
You could easily install it via pip::
pip install flask_shellplus
Quick start
-----------
This should be used with Flask-Script:
.. code-block:: python
from flask_shellplus import Shell
def make_context():
return dict(app=app, db=db, models=models)
manager.add_command('shell', Shell(make_context=make_context))
Then run this in your shell::
python manage.py shell
Flask-ShellPlus will find the first available one in BPython, ptiPython,
IPython, ptPython, and Python.
Or you can manually define the preferred shell with flag ``--plain``,
``--bpython``, ``--ptipython``, ``--ipython`` or ``--ptpython`` just
like ``shell_plus`` in DjangoExtensions.
.. note::
If you want to use Flask ShellPlus with IPython, IPython 3.0 or newer is needed.
Configure
---------
Flask ShellPlus also provide configures as Django-Extensions do.
By now, ``SHELL_PLUS_PRE_IMPORTS`` and ``SHELL_PLUS_POST_IMPORTS`` is supported,
and others in progress:
.. code-block:: python
SHELL_PLUS_PRE_IMPORTS = ( # SHELL_PLUS_POST_IMPORTS is similar to this
('module.submodule1', ('class1', 'function2')),
('module.submodule2', 'function3'),
('module.submodule3', '*'),
'module.submodule4'
)
You could define these arguments in your Flask application's configure file,
and they will be automate imported before and after ``make_context`` runs.
Indices
-------
* :ref:`genindex`
* :ref:`modindex`
* :ref:`search`