Skip to main content

Simple and rapid application development framework, built on top of Flask. includes detailed security, auto CRUD generation for your models, google charts and much more.

Project description

https://travis-ci.org/dpgaspar/Flask-AppBuilder.png?branch=master PyPI https://img.shields.io/badge/pyversions-3.6%2C3.7-blue.svg https://codecov.io/github/dpgaspar/Flask-AppBuilder/coverage.svg?branch=master https://img.shields.io/badge/code%20style-black-000000.svg

Simple and rapid application development framework, built on top of Flask. includes detailed security, auto CRUD generation for your models, google charts and much more.

Extensive configuration of all functionality, easily integrate with normal Flask/Jinja2 development.

Checkout installation video on YouTube

Quick how to Demo from the docs (login has guest/welcome).

Change Log

Versions for further detail on what changed.

BREAKING CHANGE on 3.0.0 (OAuth)

Major version 3, changed it’s OAuth dependency from flask-oauth to authlib, due to this OAuth configuration changed:

Before:

OAUTH_PROVIDERS = [
    {'name':'google', 'icon':'fa-google', 'token_key':'access_token',
        'remote_app': {
            'consumer_key':'GOOGLE KEY',
            'consumer_secret':'GOOGLE SECRET',
            'base_url':'https://www.googleapis.com/oauth2/v2/',
            'request_token_params':{
              'scope': 'email profile'
            },
            'request_token_url':None,
            'access_token_url':'https://accounts.google.com/o/oauth2/token',
            'authorize_url':'https://accounts.google.com/o/oauth2/auth'}
    }
]

Now:

OAUTH_PROVIDERS = [
    {'name':'google', 'icon':'fa-google', 'token_key':'access_token',
        'remote_app': {
            'client_id':'GOOGLE KEY',
            'client_secret':'GOOGLE SECRET',
            'api_base_url':'https://www.googleapis.com/oauth2/v2/',
            'client_kwargs':{
              'scope': 'email profile'
            },
            'request_token_url':None,
            'access_token_url':'https://accounts.google.com/o/oauth2/token',
            'authorize_url':'https://accounts.google.com/o/oauth2/auth'}
    }
]

Also make sure you change your dependency for flask-oauth to authlib

Fixes, Bugs and contributions

You’re welcome to report bugs, propose new features, or even better contribute to this project.

Issues, bugs and new features

Contribute

Includes:

  • Database
    • SQLAlchemy, multiple database support: sqlite, MySQL, ORACLE, MSSQL, DB2 etc.

    • Partial support for MongoDB using MongoEngine.

    • Multiple database connections support (Vertical partitioning).

    • Easy mixin audit to models (created/changed by user, and timestamps).

  • Security
    • Automatic permissions lookup, based on exposed methods. It will grant all permissions to the Admin Role.

    • Inserts on the Database all the detailed permissions possible on your application.

    • Public (no authentication needed) and Private permissions.

    • Role based permissions.

    • Authentication support for OAuth, OpenID, Database, LDAP and REMOTE_USER environ var.

    • Support for self user registration.

  • Views and Widgets
    • Automatic menu generation.

    • Automatic CRUD generation.

    • Multiple actions on db records.

    • Big variety of filters for your lists.

    • Various view widgets: lists, master-detail, list of thumbnails etc

    • Select2, Datepicker, DateTimePicker

    • Related Select2 fields.

    • Google charts with automatic group by or direct values and filters.

    • AddOn system, write your own and contribute.

  • CRUD REST API
    • Automatic CRUD RESTful APIs.

    • Internationalization

    • Integration with flask-jwt-extended extension to protect your endpoints.

    • Metadata for dynamic rendering.

    • Selectable columns and metadata keys.

    • Automatic and configurable data validation.

  • Forms
    • Automatic, Add, Edit and Show from Database Models

    • Labels and descriptions for each field.

    • Automatic base validators from model’s definition.

    • Custom validators, extra fields, custom filters for related dropdown lists.

    • Image and File support for upload and database field association. It will handle everything for you.

    • Field sets for Form’s (Django style).

  • i18n
    • Support for multi-language via Babel

  • Bootstrap 3.1.1 CSS and js, with Select2 and DatePicker

  • Font-Awesome icons, for menu icons and actions.

Some pictures

Login page (with AUTH_DB)

https://raw.github.com/dpgaspar/flask-AppBuilder/master/images/login_db.png

Login page (with AUTH_OAUTH)

https://raw.github.com/dpgaspar/flask-AppBuilder/master/images/login_oauth.png

Security

https://raw.github.com/dpgaspar/flask-AppBuilder/master/images/security.png

Lists:

List contacts example

https://raw.github.com/dpgaspar/flask-AppBuilder/master/images/contact_list.png

List Group example with search

https://raw.github.com/dpgaspar/flask-AppBuilder/master/images/group_list.png

Charts:

Group by pie chart

https://raw.github.com/dpgaspar/flask-AppBuilder/master/images/grouped_chart.png

Direct time chart

https://raw.github.com/dpgaspar/flask-AppBuilder/master/images/direct_chart.png

Group by time chart

https://raw.github.com/dpgaspar/flask-AppBuilder/master/images/chart_time2.png

Projects/Organizations using FAB

If you would like to share your project, or let everyone know that you’re using FAB on your organization please submit a PR or send me an email with the details.

Projects:

  • Superset - a data exploration platform designed to be visual, intuitive, and interactive

  • Airflow - a platform to programmatically author, schedule, and monitor workflows.

Organizations:

Depends on:

  • flask

  • click

  • colorama

  • flask-sqlalchemy

  • flask-login

  • flask-openid

  • flask-wtform

  • flask-Babel

Project details


Release history Release notifications | RSS feed

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

Flask-AppBuilder-3.0.1rc1.tar.gz (1.6 MB view details)

Uploaded Source

Built Distribution

Flask_AppBuilder-3.0.1rc1-py3-none-any.whl (1.7 MB view details)

Uploaded Python 3

File details

Details for the file Flask-AppBuilder-3.0.1rc1.tar.gz.

File metadata

  • Download URL: Flask-AppBuilder-3.0.1rc1.tar.gz
  • Upload date:
  • Size: 1.6 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/40.6.2 requests-toolbelt/0.9.1 tqdm/4.47.0 CPython/3.6.10

File hashes

Hashes for Flask-AppBuilder-3.0.1rc1.tar.gz
Algorithm Hash digest
SHA256 e94bd50889d5622017c92e1b9d1245bfa460559c379b71475d1714b7ff3a9c67
MD5 72acf1ef0a3c2473ddad37e471bdf1b6
BLAKE2b-256 c020db08df67dfa994225e5c69ca331ac6dcf1ad6a3017910d6f8f262f8718f4

See more details on using hashes here.

File details

Details for the file Flask_AppBuilder-3.0.1rc1-py3-none-any.whl.

File metadata

  • Download URL: Flask_AppBuilder-3.0.1rc1-py3-none-any.whl
  • Upload date:
  • Size: 1.7 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/40.6.2 requests-toolbelt/0.9.1 tqdm/4.47.0 CPython/3.6.10

File hashes

Hashes for Flask_AppBuilder-3.0.1rc1-py3-none-any.whl
Algorithm Hash digest
SHA256 bfc3a40307a70e8b3963fbf2e0bc2d73457f761b6544b8919e14dd31c191593f
MD5 9881ee01523588c8f6a85d4eea3341a4
BLAKE2b-256 dde7f10fa47248be7700e2d3384a6927566264fe35d9651bb610fb2805fbc190

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page