Metadata-Version: 2.5
Name: Flask-Exts
Version: 0.3.1
Summary: Flask extensions with admin, SQLAlchemy, Babel, forms, fields, widgets, and more.
Project-URL: Documentation, https://flask-exts.readthedocs.io
Project-URL: Source, https://github.com/ojso/flask-exts
Project-URL: Homepage, https://github.com/ojso/flask-exts
Project-URL: Issues, https://github.com/ojso/flask-exts/issues
Project-URL: Changelog, https://flask-exts.readthedocs.io/en/latest/changes.html
Author-email: David Hua <david.dong.hua@gmail.com>
License-Expression: MIT
License-File: LICENSE.rst
Keywords: admin,babel,flask,form,sqlalchemy,widget
Classifier: Development Status :: 3 - Alpha
Classifier: Environment :: Web Environment
Classifier: Framework :: Flask
Classifier: Intended Audience :: Developers
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Topic :: Internet :: WWW/HTTP :: Dynamic Content
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Requires-Python: >=3.10
Requires-Dist: email-validator>=2.0
Requires-Dist: flask-babel>=4.0
Requires-Dist: flask-login>=0.6
Requires-Dist: flask>=3.0
Requires-Dist: pyjwt>=2.0
Requires-Dist: pyotp>=2.0
Requires-Dist: sqlalchemy>=2.0
Requires-Dist: tablib>=3.0
Requires-Dist: wtforms>=3.0
Provides-Extra: dev
Requires-Dist: djlint; extra == 'dev'
Requires-Dist: pytest; extra == 'dev'
Requires-Dist: ruff; extra == 'dev'
Description-Content-Type: text/x-rst

Flask-Exts
==========

Flask-Exts is a toolkit for building Flask applications with an integrated
admin interface, SQLAlchemy support, forms, localization, and user-account
features. It brings common application components together behind a
dependency-aware extension system. The project is inspired by
`Flask-Admin <https://github.com/pallets-eco/flask-admin/>`_ and
`Bootstrap <https://getbootstrap.com/>`_.

Highlights
----------

- **Modern frontend:** Uses Bootstrap 5 and native browser APIs, with no
  jQuery dependency or Bootstrap 4 frontend.
- **Composable extensions:** Initializes extensions in dependency order and
  lets extensions contribute views to the admin interface.
- **Built-in account features:** Provides authentication, email verification
  and recovery flows, TOTP-based two-factor authentication, and recovery
  codes.
- **Integrated admin and data tools:** Includes SQLAlchemy integration,
  model management, forms, filtering, and data export.
- **Localization support:** Integrates Babel for translating application
  interfaces.

Installation
------------

Flask-Exts requires Python 3.10 or later. Install it with pip:

.. code-block:: console

   pip install flask-exts

Quick start
-----------

Create a Flask application and initialize the extension manager:

.. code-block:: python

   from flask import Flask
   from flask_exts import ExtensionManager

   app = Flask(__name__)
   app.config["SECRET_KEY"] = "change-this-for-local-development"
   app.config["SQLALCHEMY_DATABASE_URI"] = "sqlite:///app.sqlite"

   extensions = ExtensionManager()
   extensions.init_app(app)

   if __name__ == "__main__":
       app.run(debug=True)

For a complete example with a custom admin view and database setup, see
``examples/simple``.

Documentation
-------------

- `Documentation <https://flask-exts.readthedocs.io/>`_
- `Runnable examples <https://github.com/ojso/flask-exts/tree/main/examples>`_
- `Changelog <https://flask-exts.readthedocs.io/en/latest/changes.html>`_

License
-------

Flask-Exts is distributed under the terms of the
`MIT License <https://opensource.org/licenses/MIT>`_.
