Application Facets¶
A Flask-Diamond application consists of many components (called facets) that complement each other to form a coherent application. These facets are common to many applications, but they can be enabled and disabled individually depending on specific requirements. A Flask-Diamond application is customized by changing the way these facets behave.
List of Facets¶
Here are all of the facets currently shipping with Flask-Diamond:
flask_diamond.facets.configuration
. the$SETTINGS
environment variable is inspected and the file it points to is loaded.flask_diamond.facets.logs
. based on the configuration, write log messages to a file on the filesystem.flask_diamond.facets.database
. connect to a database and initialize the SQLAlchemy Object Relational Mapper (ORM)flask_diamond.facets.accounts
. manage users, roles, login, passwords, and other security things with Flask-Security.flask_diamond.facets.blueprints
. initialize your application’s views (in the MVC sense), which are saved as “blueprints” in a Flask application.flask_diamond.facets.signals
. Flask provides a signals subsystem that your application can hook into to automate certain behaviors.flask_diamond.facets.forms
. initialize your application’s form helpers, which may be global to the forms used in your application.flask_diamond.facets.handlers
. when something goes wrong, you may want to handle it (e.g. by displaying a 404 page). This is the place to create redirections or other custom request handlers that extend beyond views.flask_diamond.facets.administration
. a quick GUI using Flask-Admin with extensive Model support.flask_diamond.facets.rest
. provide a REST API using Flask-RESTfulflask_diamond.facets.webassets
. it is possible to bundle assets like images, CSS, and javascript with your application. webassets simplifies some of this work.flask_diamond.facets.email
. send email with Flask-Mailflask_diamond.facets.debugger
. when the configuration specifies thatDEBUG = True
, the web interface will display a widget with extra debugging tools.flask_diamond.facets.task_queue
. provide a task queue using Celery
Next Steps¶
Now that you know what facets are, learn how to use them by Writing an Application with Flask-Diamond.