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 details)

Uploaded Source

File details

Details for the file flask-sqlalchemy-api-0.9.3.tar.gz.

File metadata

  • Download URL: flask-sqlalchemy-api-0.9.3.tar.gz
  • Upload date:
  • Size: 6.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.10.6

File hashes

Hashes for flask-sqlalchemy-api-0.9.3.tar.gz
Algorithm Hash digest
SHA256 d0dbaa93ae3311f481b0c0a3999c1ae3c4829536a9abf52544fd5bc65997f83e
MD5 9bfb8592bec8ae0563701b46d7223c83
BLAKE2b-256 639d39206c4cba0b03c00ba365dcedc78a7c355638e5a0df1e90aee4a87772bb

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