{"repo":"dpgaspar/Flask-AppBuilder","free":true,"listed":false,"github":"https://github.com/dpgaspar/Flask-AppBuilder","clone":"git clone https://github.com/dpgaspar/Flask-AppBuilder.git","description":"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. Demo (login with guest/welcome) - http://flaskappbuilder.pythonanywhere.com/","language":"Python","stars":4958,"topics":["authentication","crud","flask","python","rbac","rest","rest-api","sql","web"],"license":"BSD-3-Clause","category":"saas_starter","readme_excerpt":"Flask App Builder\n=================\n\n.. image:: https://github.com/dpgaspar/Flask-AppBuilder/workflows/Python/badge.svg\n        :target: https://github.com/dpgaspar/Flask-AppBuilder/actions\n\n.. image:: https://img.shields.io/pypi/v/Flask-AppBuilder.svg\n        :alt: PyPI\n        :target: https://pypi.org/project/Flask-AppBuilder/\n\n.. image:: https://img.shields.io/badge/pyversions-3.8%2C%203.9%2C%203.10%2C%203.11%2C%203.12-blue.svg\n        :target: https://www.python.org/\n\n.. image:: https://codecov.io/github/dpgaspar/Flask-AppBuilder/coverage.svg?branch=master\n        :target: https://codecov.io/github/dpgaspar/Flask-AppBuilder\n\n.. image:: https://img.shields.io/badge/code%20style-black-000000.svg\n    :target: https://github.com/psf/black\n\n\nSimple and rapid application development framework, built on top of `Flask <http://flask.pocoo.org/>`_.\nincludes detailed security, auto CRUD generation for your models, google charts and much more.\n\nExtensive configuration of all functionality, easily integrate with normal Flask/Jinja2 development.\n\n- Documentation: `Documentation <http://flask-appbuilder.readthedocs.org/en/latest/>`_\n\n- Mailing list: `Google group <https://groups.google.com/forum/#!forum/flask-appbuilder>`_\n\n- Chat: `Gitter <https://gitter.im/dpgaspar/Flask-AppBuilder>`_\n\n- Examples: `examples <https://github.com/dpgaspar/Flask-AppBuilder/tree/master/examples>`_\n\nCheckout installation video on `YouTube <http://youtu.be/xvum4vfwldg>`_\n\nQuick how to `Demo from the docs <http://flaskappbuilder.pythonanywhere.com/>`_ (login has guest/welcome).\n\nChange Log\n----------\n\n`Versions <https://github.com/dpgaspar/Flask-AppBuilder/tree/master/CHANGELOG.rst>`_ for further detail on what changed.\n\nFixes, Bugs and contributions\n-----------------------------\n\nYou're welcome to report bugs, propose new features, or even better contribute to this project.\n\n`Issues, bugs and new features <https://github.com/dpgaspar/Flask-AppBuilder/issues/new>`_\n\n`Contribute <https://github.com/dpgaspar/Flask-AppBuilder/fork>`_\n\nIncludes:\n---------\n\n  - Database\n      - SQLAlchemy, multiple database support: sqlite, MySQL, ORACLE, MSSQL, DB2 etc.\n      - Partial support for MongoDB using MongoEngine.\n      - Multiple database connections support (Vertical partitioning).\n      - Easy mixin audit to models (created/changed by user, and timestamps).\n  - Security\n      - Automatic permissions lookup, based on exposed methods. It will grant all permissions to the Admin Role.\n      - Inserts on the Database all the detailed permissions possible on your application.\n      - Public (no authentication needed) and Private permissions.\n      - Role based permissions.\n      - Authentication support for OAuth, OpenID, Database, LDAP and REMOTE_USER environ var.\n      - Support for self user registration.\n  - Views and Widgets\n      - Automatic menu generation.\n      - Automatic CRUD generation.\n      - Multiple actions on db records.\n      - Big variety of filters for your lists.\n      - Various view widgets: lists, master-detail, list of thumbnails etc\n      - Select2, Datepicker, DateTimePicker\n      - Related Select2 fields.\n      - Google charts with automatic group by or direct values and filters.\n      - AddOn system, write your own and contribute.\n  - CRUD REST API\n      - Automatic CRUD RESTful APIs.\n      - Internationalization\n      - Integration with flask-jwt-extended extension to protect your endpoints.\n      - Metadata for dynamic rendering.\n      - Selectable columns and metadata keys.\n      - Automatic and configurable data validation.\n  - Forms\n      - Automatic, Add, Edit and Show from Database Models\n      - Labels and descriptions for each field.\n      - Automatic base validators from model's definition.\n      - Custom validators, extra fields, custom filters for related dropdown lists.\n      - Image and File support for upload and database field association. It will handle everything for you.\n      - Field sets for Form's (Django style).\n  - i18n\n      - Support for multi-language via Babel\n  - Bootstrap 3.1.1 CSS and js, with Select2 and DatePicker\n  - Font-Awesome icons, for menu icons and actions.\n\n\nSome pictures\n-------------\n\nLogin page (with AUTH_DB)\n\n.. image:: https://raw.github.com/dpgaspar/flask-AppBuilder/master/images/login_db.png\n    :width: 480px\n    :target: https://raw.github.com/dpgaspar/flask-AppBuilder/master/images/login_db.png\n\n\nLogin page (with AUTH_OAUTH)\n\n.. image:: https://raw.github.com/dpgaspar/flask-AppBuilder/master/images/login_oauth.png\n    :width: 480px\n    :target: https://raw.github.com/dpgaspar/flask-AppBuilder/master/images/login_oauth.png\n\n\nSecurity\n\n.. image:: https://raw.github.com/dpgaspar/flask-AppBuilder/master/images/security.png\n    :width: 480px\n    :target: https://raw.github.com/dpgaspar/flask-AppBuilder/master/images/security.png\n\n\nLists:\n\nList contacts example\n\n.. image:: https://raw.github.com/dpgaspar/flask-AppBuilder/master/images/contact_list.png\n    :width: 480px\n    :target: https://raw.github.com/dpgaspar/flask-AppBuilder/master/images/contact_list.png\n\n\nList Group example with search\n\n.. image:: https://raw.github.com/dpgaspar/flask-AppBuilder/master/images/group_list.png\n    :width: 480px\n    :target: https://raw.github.com/dpgaspar/flask-AppBuilder/master/images/group_list.png\n\n\n\nCharts:\n\nGroup by pie chart\n\n.. image:: https://raw.github.com/dpgaspar/flask-AppBuilder/master/images/grouped_chart.png\n    :width: 480px\n    :target: https://raw.github.com/dpgaspar/flask-AppBuilder/master/images/grouped_chart.png\n\nDirect time chart\n\n.. image:: https://raw.github.com/dpgaspar/flask-AppBuilder/master/images/direct_chart.png\n    :width: 480px\n    :target: https://raw.github.com/dpgaspar/flask-AppBuilder/master/images/chart_time1.png\n\nGroup by time chart\n\n.. image:: https://raw.github.com/dpgaspar/flask-AppBuilder/master/images/chart_time2.png\n    :width: 480px\n    :target: https://raw.github.com/dpgaspar/flask-AppBuilder/master/images/chart_time2.png\n\n\nProjects/Organizations using FAB\n--------------------------------\n\nIf you would like to share your project, or let everyone know that you're using FAB\non your organization please submit a PR or send me an email with the details.\n\nProjects:\n\n- `Superset <https://github.com/apache/incubator-superset>`_ - a data exploration platform designed to be visual, intuitive, and interactive\n\n- `Airflow <https://github.com/apache/airflow>`_ - a platform to programmatically author, schedule, and monitor workflows.\n\n\nOrganizations:\n\n- Miniclip\n- EuroBIC\n- `On Beat Digital <https://onbeat.digital/>`_\n\n\nDepends on:\n-----------\n\n- flask\n- click\n- colorama\n- flask-sqlalchemy\n- flask-login\n- flask-openid\n- flask-wtform\n- flask-Babel\n","default_branch":"master","files":843,"tree":[".coveragerc",".env",".github/FUNDING.yml",".github/ISSUE_TEMPLATE.md",".github/PULL_REQUEST_TEMPLATE.md",".github/SECURITY.md",".github/dependabot.yml",".github/prlint.json",".github/stale.yml",".github/workflows/ci.yml",".github/workflows/codeql-analysis.yml",".github/workflows/odbcinst.ini",".github/workflows/prlint.yml",".gitignore",".readthedocs.yaml","CHANGELOG.rst","CONTRIBUTING.rst","LICENSE","MANIFEST.in","README.rst","RELEASE.rst","babel/babel.cfg","babel/messages.pot","bin/babel_extract.sh","bin/babel_init.sh","bin/bootswatch_update.sh","bin/config.py","bin/db_create.py","bin/db_migrate.py","bin/db_upgrade.py","bin/hash_db_password.py","bin/migrate_db_0.7.py","bin/migrate_db_1.3.py","bin/sqlite_upgrade_1.3.sql","docker-compose.yml","docker/openldap/ldifs/users.ldif","docker/openldap/schemas/memberof.ldif","docs/Makefile","docs/_static/Flask-AppBuilder.png","docs/_templates/layout.html","docs/_themes/LICENSE","docs/_themes/README","docs/_themes/flask/layout.html","docs/_themes/flask/relations.html","docs/_themes/flask/static/Flask-AppBuilder.png","docs/_themes/flask/static/flasky.css_t","docs/_themes/flask/theme.conf","docs/_themes/flask_small/layout.html","docs/_themes/flask_small/static/flasky.css_t","docs/_themes/flask_small/theme.conf","docs/_themes/flask_theme_support.py","docs/actions.rst","docs/addons.rst","docs/advanced.rst","docs/api.rst","docs/breaking.rst","docs/cli.rst","docs/conf.py","docs/config.rst","docs/customizing.rst","docs/diagrams.rst","docs/generic_datasource.rst","docs/i18n.rst","docs/images/ListThumbnail.png","docs/images/chart.png","docs/images/chart_time1.png","docs/images/chart_time2.png","docs/images/charts.png","docs/images/contact_list.png","docs/images/contacts.png","docs/images/direct_chart.png","docs/images/fab.png","docs/images/group_list.png","docs/images/grouped_chart.png","docs/images/groups.png","docs/images/images_list.png","docs/images/list_cascade.png","docs/images/list_cascade_block.png","docs/images/list_compact_inline.png","docs/images/list_master_detail.png","docs/images/login.png","docs/images/login_db.png","docs/images/oauth_login.png","docs/images/oauth_login_one_provider.png","docs/images/security.png","docs/images/simpleview2.png","docs/images/swagger001.png","docs/images/swagger002.png","docs/index.rst","docs/installation.rst","docs/intro.rst","docs/make.bat","docs/multipledbs.rst","docs/quickcharts.rst","docs/quickfiles.rst","docs/quickhowto.rst","docs/quickminimal.rst","docs/relations.rst","docs/rest_api.rst","docs/security.rst","docs/templates.rst","docs/user_registration.rst","docs/versionmigration.rst","docs/views.rst","examples/README.rst","examples/base_api/README.rst","examples/base_api/app/__init__.py","examples/base_api/app/api.py","examples/base_api/app/extensions.py","examples/base_api/config.py","examples/base_filters/NAMES.DIC","examples/base_filters/README.rst","examples/base_filters/app/__init__.py","examples/base_filters/app/extensions.py","examples/base_filters/app/models.py","examples/base_filters/app/translations/pt/LC_MESSAGES/messages.mo","examples/base_filters/app/translations/pt/LC_MESSAGES/messages.po","examples/base_filters/app/views.py","examples/base_filters/babel/babel.cfg","examples/base_filters/babel/messages.pot","examples/base_filters/config.py","examples/base_filters/testdata.py","examples/basefilter/babel/messages.pot~","examples/composite_keys/README.rst","examples/composite_keys/app/__init__.py","examples/composite_keys/app/extensions.py","examples/composite_keys/app/models.py","examples/composite_keys/app/views.py","examples/composite_keys/config.py","examples/composite_keys/testdata.py","examples/crud_rest_api/NAMES.DIC","examples/crud_rest_api/README.rst","examples/crud_rest_api/app/__init__.py","examples/crud_rest_api/app/api.py","examples/crud_rest_api/app/extensions.py","examples/crud_rest_api/app/models.py","examples/crud_rest_api/app/translations/pt/LC_MESSAGES/messages.mo","examples/crud_rest_api/app/translations/pt/LC_MESSAGES/messages.po","examples/crud_rest_api/babel/babel.cfg","examples/crud_rest_api/babel/messages.pot","examples/crud_rest_api/config.py","examples/crud_rest_api/testdata.py","examples/employees/README.rst","examples/employees/app/__init__.py","examples/employees/app/extensions.py","examples/employees/app/models.py","examples/employees/app/security.py","examples/employees/app/views.py","examples/employees/babel/babel.cfg","examples/employees/config.py","examples/enums/NAMES.DIC","examples/enums/README.rst","examples/enums/app/__init__.py","examples/enums/app/extensions.py","examples/enums/app/models.py","examples/enums/app/translations/pt/LC_MESSAGES/messages.mo","examples/enums/app/translations/pt/LC_MESSAGES/messages.po","examples/enums/app/views.py","examples/enums/babel/babel.cfg","examples/enums/babel/messages.pot","examples/enums/config.py","examples/enums/testdata.py","examples/extendsecurity/NAMES.DIC","examples/extendsecurity/README.rst","examples/extendsecurity/app/__init__.py","examples/extendsecurity/app/extensions.py","examples/extendsecurity/app/models.py","examples/extendsecurity/app/sec.py","examples/extendsecurity/app/sec_forms.py","examples/extendsecurity/app/sec_views.py","examples/extendsecurity/app/translations/pt/LC_MESSAGES/messages.mo","examples/extendsecurity/app/translations/pt/LC_MESSAGES/messages.po","examples/extendsecurity/app/views.py","examples/extendsecurity/babel/babel.cfg","examples/extendsecurity/babel/messages.pot","examples/extendsecurity/babel/messages.pot~","examples/extendsecurity/config.py","examples/extendsecurity/testdata.py","examples/extendsecurity2/NAMES.DIC","examples/extendsecurity2/README.rst","examples/extendsecurity2/app/__init__.py","examples/extendsecurity2/app/models.py","examples/extendsecurity2/app/sec.py","examples/extendsecurity2/app/sec_forms.py","examples/extendsecurity2/app/sec_views.py","examples/extendsecurity2/app/translations/pt/LC_MESSAGES/messages.mo","examples/extendsecurity2/app/translations/pt/LC_MESSAGES/messages.po","examples/extendsecurity2/app/views.py","examples/extendsecurity2/babel/babel.cfg","examples/extendsecurity2/babel/messages.pot","examples/extendsecurity2/config.py","examples/extendsecurity2/testdata.py","examples/factoryapp/babel/messages.pot~","examples/masterdetail/NAMES.DIC","examples/masterdetail/app/__init__.py","examples/masterdetail/app/models.py","examples/masterdetail/app/translations/pt/LC_MESSAGES/messages.mo","examples/masterdetail/app/translations/pt/LC_MESSAGES/messages.po","examples/masterdetail/app/views.py","examples/masterdetail/babel/babel.cfg","examples/masterdetail/babel/messages.pot","examples/masterdetail/babel/messages.pot~","examples/masterdetail/config.py","examples/masterdetail/testdata.py","examples/mongoengine/babel/messages.pot~","examples/mongoimages/babel/messages.pot~","examples/oauth/.gitignore","examples/oauth/README.rst","examples/oauth/app/__init__.py","examples/oauth/app/forms.py","examples/oauth/app/models.py","examples/oauth/app/security.py","examples/oauth/app/views.py","examples/oauth/babel/babel.cfg","examples/oauth/babel/messages.pot","examples/oauth/config.py","examples/oauth/run.py","examples/productsale/README.rst","examples/productsale/app/__init__.py","examples/productsale/app/models.py","examples/productsale/app/translations/es/LC_MESSAGES/messages.mo","examples/productsale/app/translations/es/LC_MESSAGES/messages.po","examples/productsale/app/translations/pt/LC_MESSAGES/messages.mo","examples/productsale/app/translations/pt/LC_MESSAGES/messages.po","examples/productsale/app/views.py","examples/productsale/babel/babel.cfg","examples/productsale/config.py","examples/productsale/run.py","examples/quickactions/app/__init__.py","examples/quickactions/app/models.py","examples/quickactions/app/translations/es/LC_MESSAGES/messages.mo","examples/quickactions/app/translations/es/LC_MESSAGES/messages.po","examples/quickactions/app/translations/pt/LC_MESSAGES/messages.mo","examples/quickactions/app/translations/pt/LC_MESSAGES/messages.po","examples/quickactions/app/views.py","examples/quickactions/babel/babel.cfg","examples/quickactions/config.py","examples/quickactions/run.py","examples/quickactions/testdata.py","examples/quickcharts/README.rst","examples/quickcharts/app/__init__.py","examples/quickcharts/app/data.py","examples/quickcharts/app/models.py","examples/quickcharts/app/translations/pt/LC_MESSAGES/messages.mo","examples/quickcharts/app/translations/pt/LC_MESSAGES/messages.po","examples/quickcharts/app/views.py","examples/quickcharts/babel/babel.cfg","examples/quickcharts/babel/messages.pot","examples/quickcharts/babel/messages.pot~","examples/quickcharts/config.py","examples/quickcharts2/app/__init__.py","examples/quickcharts2/app/models.py","examples/quickcharts2/app/translations/pt/LC_MESSAGES/messages.mo","examples/quickcharts2/app/translations/pt/LC_MESSAGES/messages.po","examples/quickcharts2/app/views.py","examples/quickcharts2/babel/babel.cfg","examples/quickcharts2/babel/messages.pot","examples/quickcharts2/babel/messages.pot~","examples/quickcharts2/build/bdist.linux-i686/egg/app/__init__.py","examples/quickcharts2/build/bdist.linux-i686/egg/app/models.py","examples/quickcharts2/build/bdist.linux-i686/egg/app/views.py","examples/quickcharts2/build/lib/app/__init__.py","examples/quickcharts2/build/lib/app/models.py","examples/quickcharts2/build/lib/app/views.py","examples/quickcharts2/config.py","examples/quickcharts2/run.py","examples/quickfiles/README.rst","examples/quickfiles/app/__init__.py","examples/quickfiles/app/models.py","examples/quickfiles/app/translations/__init__.py","examples/quickfiles/app/translations/es/LC_MESSAGES/messages.mo","examples/quickfiles/app/translations/es/LC_MESSAGES/messages.po","examples/quickfiles/app/translations/es/LC_MESSAGES/messages.po~","examples/quickfiles/app/translations/pt/LC_MESSAGES/messages.mo","examples/quickfiles/app/translations/pt/LC_MESSAGES/messages.po","examples/quickfiles/app/translations/pt/LC_MESSAGES/messages.po~","examples/quickfiles/app/views.py","examples/quickfiles/babel/babel.cfg","examples/quickfiles/babel/messages.pot","examples/quickfiles/config.py","examples/quickfiles/run.py","examples/quickhowto/NAMES.DIC","examples/quickhowto/README.rst","examples/quickhowto/app/__init__.py","examples/quickhowto/app/extensions.py","examples/quickhowto/app/models.py","examples/quickhowto/app/translations/pt/LC_MESSAGES/messages.mo","examples/quickhowto/app/translations/pt/LC_MESSAGES/messages.po","examples/quickhowto/app/utils.py","examples/quickhowto/app/views.py","examples/quickhowto/babel/babel.cfg","examples/quickhowto/babel/messages.pot","examples/quickhowto/babel/messages.pot~","examples/quickhowto/config.py","examples/quickhowto/testdata.py","examples/quickhowto2/NAMES.DIC","examples/quickhowto2/app/__init__.py","examples/quickhowto2/app/forms.py","examples/quickhowto2/app/indexview.py","examples/quickhowto2/app/models.py","examples/quickhowto2/app/sec.py","examples/quickhowto2/app/sec_models.py","examples/quickhowto2/app/sec_views.py","examples/quickhowto2/app/static/angularAssets/abBtnAdd.html","examples/quickhowto2/app/static/angularAssets/abBtnDelete.html","examples/quickhowto2/app/static/angularAssets/abBtnEdit.html","examples/quickhowto2/app/static/angularAssets/abBtnShow.html","examples/quickhowto2/app/static/angularAssets/abDate.html","examples/quickhowto2/app/static/angularAssets/abMenuPageSize.html","examples/quickhowto2/app/static/angularAssets/abModalOkCancel.html","examples/quickhowto2/app/static/angularAssets/abModelSearch.html","examples/quickhowto2/app/static/angularAssets/abModelTable.html","examples/quickhowto2/app/static/angularAssets/abPagination.html","examples/quickhowto2/app/static/angularAssets/abSelect.html","examples/quickhowto2/app/static/css/clean-blog.min.css","examples/quickhowto2/app/static/css/scrolling-nav.css","examples/quickhowto2/app/static/img/brand.jpg","examples/quickhowto2/app/static/img/loading.gif","examples/quickhowto2/app/static/js/Controllers/alertsCtrl.js","examples/quickhowto2/app/static/js/Controllers/searchCtrl.js","examples/quickhowto2/app/static/js/Controllers/tableCtrl.js","examples/quickhowto2/app/static/js/Directives/bigDirectives.js","examples/quickhowto2/app/static/js/Directives/btnDirectives.js","examples/quickhowto2/app/static/js/Services/apiService.js","examples/quickhowto2/app/static/js/angular.min.js","examples/quickhowto2/app/static/js/app.js","examples/quickhowto2/app/static/js/clean-blog.min.js","examples/quickhowto2/app/static/js/scrolling-nav.js","examples/quickhowto2/app/templates/appbuilder/index.html","examples/quickhowto2/app/templates/index.html","examples/quickhowto2/app/templates/list_angulajs.html","examples/quickhowto2/app/templates/list_contacts.html","examples/quickhowto2/app/templates/list_json.html","examples/quickhowto2/app/templates/mylist.html","examples/quickhowto2/app/templates/new_base.html","examples/quickhowto2/app/templates/show_contacts.html","examples/quickhowto2/app/templates/widgets/list.html","examples/quickhowto2/app/templates/widgets/list_override.html","examples/quickhowto2/app/translations/pt/LC_MESSAGES/messages.mo","examples/quickhowto2/app/translations/pt/LC_MESSAGES/messages.po","examples/quickhowto2/app/views.py","examples/quickhowto2/babel/babel.cfg","examples/quickhowto2/babel/messages.pot","examples/quickhowto2/babel/messages.pot~","examples/quickhowto2/config.py","examples/quickhowto2/run.py","examples/quickhowto2/testdata.py","examples/quickhowto3/.coverage","examples/quickhowto3/NAMES.DIC","examples/quickhowto3/README.rst","examples/quickhowto3/app/__init__.py","examples/quickhowto3/app/models.py","examples/quickhowto3/app/translations/pt/LC_MESSAGES/messages.mo","examples/quickhowto3/app/translations/pt/LC_MESSAGES/messages.po","examples/quickhowto3/app/views.py","examples/quickhowto3/babel/babel.cfg","examples/quickhowto3/babel/messages.pot","examples/quickhowto3/babel/messages.pot~","examples/quickhowto3/config.py","examples/quickhowto3/migrate_db_0.7.py","examples/quickhowto3/run.py","examples/quickhowto3/testdata.py","examples/quickimages/README.rst","examples/quickimages/app/__init__.py","examples/quickimages/app/models.py","examples/quickimages/app/translations/es/LC_MESSAGES/messages.mo","examples/quickimages/app/translations/es/LC_MESSAGES/messages.po","examples/quickimages/app/translations/pt/LC_MESSAGES/messages.mo","examples/quickimages/app/translations/pt/LC_MESSAGES/messages.po","examples/quickimages/app/views.py","examples/quickimages/babel/babel.cfg","examples/quickimages/config.py","examples/quickmigrate/NAMES.DIC","examples/quickmigrate/README.rst","examples/quickmigrate/app/__init__.py","examples/quickmigrate/app/models.py","examples/quickmigrate/app/translations/pt/LC_MESSAGES/messages.mo","examples/quickmigrate/app/translations/pt/LC_MESSAGES/messages.po","examples/quickmigrate/app/views.py","examples/quickmigrate/babel/babel.cfg","examples/quickmigrate/babel/messages.pot","examples/quickmigrate/config.py","examples/quickmigrate/testdata.py","examples/quickminimal/run.py","examples/quicksqlviews/.idea/encodings.xml","examples/quicksqlviews/.idea/misc.xml","examples/quicksqlviews/.idea/modules.xml","examples/quicksqlviews/.idea/quicksqlviews.iml","examples/quicksqlviews/.idea/workspace.xml","examples/quicksqlviews/NAMES.DIC","examples/quicksqlviews/README.rst","examples/quicksqlviews/app/__init__.py","examples/quicksqlviews/app/models.py","examples/quicksqlviews/app/translations/pt/LC_MESSAGES/messages.mo","examples/quicksqlviews/app/translations/pt/LC_MESSAGES/messages.po","examples/quicksqlviews/app/views.py","examples/quicksqlviews/babel/babel.cfg","examples/quicksqlviews/babel/messages.pot","examples/quicksqlviews/config.py","examples/quicksqlviews/testdata.py"],"storefront":"/r/dpgaspar","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/dpgaspar/Flask-AppBuilder/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}