Skip to main content

Automatically create editable grids in browser from SQLAlchemy models

Project description

flask extension for making editable grids from sqlalchemy models. In the example directory of the repo you can find a mimimal flask app demonstrating features and usage of the extension. The code snippets below are all from the example.

Usage

Like other flask extensions, you’ll initialize it with the app. Below is from the “example” application in the repo.

from flask import Flask
from flask_sqlalchemy import SQLAlchemy
from flask_gridify import FlaskGridify

app = Flask(__name__)
db = SQLAlchemy(app)

# initialize the FlaskGridify extension
grid = FlaskGridify(app, flask_sqlalchemy_db=db, root_url_prefix='/grids')

Then for each model class you want grids for you’ll call the gridify function of the grid object above and pass in the SQLAlchemy model class

from .models import User, Note
grid.gridify(User)
grid.gridify(Note)

When you run the app, you’ll have the following URL routes:

  • /

    • This route demonstrates useage of the Jinja macros that allow for creation of grids inside of your application templates

  • /grids/note

    • This is the grid page created for the Note model

  • /grids/user

    • This is the grid page created for the User model

Additionally, the extension will create and use a REST API for each gridified model class that can be used by your application. It uses the FlaskRestless extension so information on the formatting and URLs can be found there

Using FlaskGridify in Templates

The extension also exposes Jinja template macros you can use to embed the editable grids for models in your pages. In the example/templates/index.html.jinja template file we create grids for the User and Note model classes like so:

<div id="user-grid"></div>
<div id="note-grid"></div>
{{ macros.create_grid("user-grid", "user", GRID_REGISTRY["user"]) }}
{{ macros.create_grid("note-grid", "note", GRID_REGISTRY["note"]) }}

Developer information

Beyond just installing the --dev packages with pipenv, you’ll also need to install pandoc. That can be done with:

  • Linux: sudo apt-get -y install pandoc

  • Mac: brew install pandoc

  • Windows: ???

TODO

  • Add Enum field support

  • Add relationship field support

    • many to one

    • many to many

  • Clean up the exposed macros to avoid reference to GRID_REGISTRY

Dependencies

Project details


Download files

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

Source Distribution

flask-gridify-0.1.4.tar.gz (4.6 kB view hashes)

Uploaded Source

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