Flask, Celery, SQLAlchemy integration toolkit
A configurable, lightweight framework that integrates Flask, SQLAlchemy, and Celery.
Why use Kit?
Kit enables you to configure Flask, Celery and SQLAlchemy in a single location. Keeping track of all your different configuration options becomes much easier!
With the kit command line tool, switching configurations is as simple as changing a flag: kit server -c dev.yaml vs. kit server -c prod.yaml.
Kit sets up the Flask, Celery and SQLAlchemy applications smartly, only creating those you need. It also makes sure database connections and sessions are correctly handled.
Kit is under development. You can find the latest version on GitHub.
$ pip install kit
Here is a minimalistic kit configuration file:
database_url: sqlite:///db.sqlite flask: debug: yes testing: yes engine: echo: yes
The flask and engine options are used to configure the Flask application and SQLAlchemy engine respectively (cf. Configuration for a full list of available options). The following code gives a sneak peak into how simple it then is to use these:
from kit import Kit kit = Kit('/path/to/conf.yaml') flask_app = kit.flask # Flask app celery_app = kit.celery # Celery app session = kit.session # SQLAlchemy scoped session maker # in this snippet we will only use flask_app @flask_app.route('/') def index(): return 'Hello World!' if __name__ == '__main__': flask_app.run()
For a more detailed example, take a look at the simple page view tracker in examples/view_tracker.
Kit uses YAML as configuration file format, which allows a lot of flexibility for customizing your options and is very simple to read.
The following options are special in a kit configuration file:
database_url: url to the database used.
flask: any valid flask configuration option.
celery: any valid celery configuration option.
engine: any valid engine configuration option.
session: any valid session maker configuration option.
commit_on_teardown: if True, the session will be committed after each request or task executed in a worker, otherwise the session is simply removed (default behavior).
modules: the list of modules that belong to this kit. This is used by the command line tool to know which modules to import.
root_folder: the kit’s root folder, the modules defines in modules should be importable from this folder (defaults to the configuration file’s directory).
flask_app_folder: the root folder of the Flask application, relative to root_folder (defaults to the same directory).
flask_static_folder: the Flask application’s static folder, relative to flask_app_folder (defaults to static/).
flask_template_folder: the Flask application’s template folder, relative flask_app_folder (defaults to templates/).
You can of course include other options in this file, these will be available on the conf kit attribute.
Command line tool
Kit includes a command line tool from where you can:
Launch the Flask built in Werkzeug server:
kit server -p 5050 -d will start a server on port 5050 in debug mode.
Start Celery workers:
kit worker will start a worker listening for tasks sent from your application.
Run the Flower monitoring tool:
kit flower -p 8000
Run a shell in your project’s context:
Help is available for each command by typing kit <command> -h.
Kit also comes with extensions for commonly needed functionalities:
Expanded SQLAlchemy models and queries
Release history Release notifications | RSS feed
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.