• Stars
    star
    1,021
  • Rank 45,070 (Top 0.9 %)
  • Language
    Python
  • License
    GNU Affero Genera...
  • Created over 12 years ago
  • Updated over 4 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

NO LONGER MAINTAINED - A Flask extension for creating simple ReSTful JSON APIs from SQLAlchemy models.

NO LONGER MAINTAINED

This repository is no longer maintained due to lack of time.

You might check out the fork https://github.com/mrevutskyi/flask-restless-ng instead.

Flask-Restless

Introduction

This is Flask-Restless, a Flask extension that creates URL endpoints that satisfy the requirements of the JSON API specification. It is compatible with models that have been defined using either SQLAlchemy or Flask-SQLAlchemy.

This document contains some brief instructions concerning installation of requirements, installation of this extension, configuration and usage of this extension, and building of documentation.

For more information, see the

Build status

Copyright license

The code comprising this program is copyright 2011 Lincoln de Sousa and copyright 2012, 2013, 2014, 2015, 2016 Jeffrey Finkelstein and contributors, and is dual-licensed under the following two copyright licenses:

  • the GNU Affero General Public License, either version 3 or (at your option) any later version
  • the 3-clause BSD License

For more information, see the files LICENSE.AGPL and LICENSE.BSD in this directory.

The documentation is licensed under the Creative Commons Attribution-ShareAlike 4.0 license.

Contents

This is a partial listing of the contents of this package.

  • LICENSE.AGPL - one possible copyright license under which this program is distributed to you (the GNU Affero General Public License version 3)
  • LICENSE.BSD - another possible copyright license under which this program is distributed to you (the 3-clause BSD License)
  • docs/ - the Sphinx documentation for Flask-Restless
  • examples/ - example applications of Flask-Restless
  • flask_restless/ - the Python package containing the extension
  • MANIFEST.in - indicates files to include when packaging Flask-Restless
  • README.md - this file
  • setup.py - Python setuptools configuration file for packaging this extension
  • tests/ - unit tests for Flask-Restless

The flask_restless directory is a Python package containing the following files and directory:

  • helpers.py - utility functions, mainly for performing introspection on SQLAlchemy objects
  • manager.py - contains the main class that end users will utilize to create ReSTful JSON APIs for their database models
  • search.py - functions and classes that facilitate searching the database on requests that require a search
  • serialization.py - basic serialization and deserialization for SQLAlchemy models
  • views/ - the view classes that implement the JSON API interface

Installing

This application can be used with any Python version that Flask supports, which currently includes versions 2.6, 2.7, 3.3, and 3.4. (Python 3.2 is not supported by Flask and therefore cannot be supported by Flask-Restless.)

This application requires the following libraries to be installed:

These requirements (and some additional optional packages) are also listed in the requirements/install.txt file. Using pip is probably the easiest way to install these:

pip install -r requirements/install.txt

Building as a Python egg

This package can be built, installed, etc. as a Python egg using the provided setup.py script. For more information, run

python setup.py --help

How to use

For information on how to use this extension, build the documentation here or view it on the Web.

Testing

If your Python interpreter is cpython, run:

pip install -r requirements/test-cpython.txt

Otherwise, if your Python interpreter is pypy, run:

pip install -r requirements/test-pypy.txt

To run the tests:

python setup.py test

Building documentation

Flask-Restless requires the following program and supporting library to build the documentation:

These requirements are also listed in the requirements/doc.txt file. Using pip is probably the easiest way to install these:

pip install -r requirements/doc.txt

The documentation is written for Sphinx in reStructuredText files in the docs/ directory. Documentation for each class and function is provided in the docstring in the code.

The documentation uses the Flask Sphinx theme. It is included as a git submodule of this project, rooted at docs/_themes. To get the themes, do

git submodule update --init

Now to build the documentation, run the command

python setup.py build_sphinx

in the top-level directory. The output can be viewed in a web browser by opening build/sphinx/html/index.html.

Contributing

Please report any issues on the GitHub Issue Tracker.

To suggest a change to the code or documentation, please create a new pull request on GitHub. Contributed code must come with an appropriate unit test. Please ensure that your code follows PEP8, by running, for example, flake8 before submitting a pull request. Also, please squash multiple commits into a single commit in your pull request by rebasing onto the master branch.

By contributing to this project, you are agreeing to license your code contributions under both the GNU Affero General Public License, either version 3 or any later version, and the 3-clause BSD License, and your documentation contributions under the Creative Commons Attribution-ShareAlike License version 4.0, as described in the copyright license section above.

Artwork

The artwork/flask-restless-small.svg and docs/_static/flask-restless-small.png are licensed under the Creative Commons Attribute-ShareAlike 4.0 license. The original image is a scan of a (now public domain) illustration by Arthur Hopkins in a serial edition of "The Return of the Native" by Thomas Hardy published in October 1878.

The artwork/flask-restless.svg and docs/_static/flask-restless.png are licensed under the Flask Artwork License.

Contact

Jeffrey Finkelstein [email protected]

More Repositories

1

tuxguitar

*This is not the official repository of TuxGuitar*
Java
52
star
2

PADS

Packaged version of Python Algorithms and Data Structures (PADS).
Python
24
star
3

birkhoff

Birkhoff decomposition for doubly stochastic matrices.
Python
15
star
4

analyticalengine

Java simulation of Charles Babbage's Analytical Engine.
Java
10
star
5

hyphenate

Hyphenation of English words
Python
10
star
6

fraciso

Fractional graph isomorphism algorithms
Python
5
star
7

ophot

Mirror for ophot
Python
3
star
8

sbclassifier

A standalone package containing the SpamBayes classifier.
Python
3
star
9

hopper

Perseus Hopper
Java
3
star
10

parallel

Models of parallel computation in theoretical computer science
TeX
3
star
11

parseable

Complexity of determining if a given set of symbols is parseable with respect to a fixed context-free grammar
TeX
2
star
12

turingmachine

Python Turing machine simulator.
Python
2
star
13

peyo

Program which evolves a protein chain based on a hidden Markov model.
Java
2
star
14

equivalence

On the computational complexity of equivalence relations under kernel reductions
TeX
1
star
15

sticks

Sticks problem
Python
1
star
16

graphmatching

TeX
1
star
17

apxcompleteness

Proof that Maximum 3-Satisfiability is complete for APX under polynomial time AP reductions.
TeX
1
star
18

raytracer

Rust ray tracer
Rust
1
star
19

ncapproximation

Definitions for and reductions among NC approximation problems
TeX
1
star
20

jfcommon-test

Testing tools for Java programs
Java
1
star
21

equivalence-talk

Slideshow on kernel reductions among equivalence relations
JavaScript
1
star
22

irs-a2a-foia-request

Freedom of Information Act request for IRS
1
star
23

jfcommon-pom

Parent POM for jfcommon Maven projects
1
star
24

docklight

Computes statistics from Docklight data
Python
1
star
25

socialinvesting

Notes on socially responsible investing.
HTML
1
star
26

jfcommon-functional

Functional programming tools for Java programs
Java
1
star
27

cs548

BU CS548 problem sets
Shell
1
star
28

concerts

Listing of concerts I've seen, plus pretty rendering with HTML, PHP, and Javascript
JavaScript
1
star
29

jmona

Evolutionary algorithms framework
Java
1
star