Skip to main content

flask-sqlalchemy-api extension for flask application

Project description

flask-sqlachemy-api

generate API Rest from Model Class

Installation

pip install flask-sqlachemy-api

Or

git clone https://github.com/fraoustin/flask-sqlachemy-api.git
cd flask-sqlachemy-api
python setup.py install

You can load test by

flake8 --ignore E501,E226,E128,F401
python -m unittest discover -s tests

Usage

import os, logging
from flask import Flask
from flask_sqlalchemy import SQLAlchemy
from flask_sqlalchemy_api import ApiRest, error_api

app = Flask(__name__)

# db SQLAlchemy
database_file = "sqlite:///{}".format(os.path.join('.', "test.db"))
app.config["SQLALCHEMY_DATABASE_URI"] = database_file
app.config["SQLALCHEMY_TRACK_MODIFICATIONS"] = False
db = SQLAlchemy() 

class Todo(db.Model):
    __tablename__ = 'todo'

    id = db.Column(db.Integer, primary_key=True, autoincrement=True)
    title = db.Column(db.String, nullable=False)
    description = db.Column(db.String, nullable=True)
    status = db.Column(db.String, nullable=True)


apiManager = ApiRest(db)
for method in ['ALL', 'POST', 'GET', 'DELETE', 'PUT', 'PATCH']:
    apiManager.add_api(Todo, method)
app.register_blueprint(apiManager)


if __name__ == "__main__":
    db.init_app(app)
    with app.app_context():
        db.create_all()
    app.logger.setLevel(logging.DEBUG)
    app.run(host='0.0.0.0', port=5000, debug=True)

This code generate api url:

flask-sqlachemy-api generate 6 Apis from Model Class

You can

  • specific url (default /api/v1) on ApiRest
  • add decorator (login, ...) in sample/sample1.py
  • specific endpoint
  • specific serialize: transform item to json
  • specific api action on column using the comment of column (add "not create by api", "not visible by api", "not update by api")

Sample

You can launch sample 0 and 1

python sample/sample0.py &
python sample/sample0_test.py

You can launch sample3

python sample/sample3.py

And you test API by swagger UI on http://127.0.0.1:5000/swagger

TODO

Feature

  • generate documentation
  • TODO

V. 0.9.2

  • change README

V. 0.9.1

  • correction setup

V. 0.9.0

  • init repos
  • add api 'ALL', 'POST', 'GET', 'DELETE', 'PUT', 'PATCH'
  • manage decorator, serialize, error

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-sqlalchemy-api-0.9.3.tar.gz (6.9 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