Python & Django & Django-rest-framework
Python is powerful… and fast; plays well with others; runs everywhere; is friendly & easy to learn; is Open. These are some of the reasons people who use Python would rather not use anything else.
Django is a high-level Python Web framework that encourages rapid development and clean, pragmatic design. Thanks for checking it out.
All documentation is in the “docs” directory and online at https://docs.djangoproject.com/en/stable/. If you’re just getting started, here’s how we recommend you read the docs:
- First, read docs/intro/install.txt for instructions on installing Django.
- Next, work through the tutorials in order (docs/intro/tutorial01.txt, docs/intro/tutorial02.txt, etc.).
- If you want to set up an actual deployment server, read docs/howto/deployment/index.txt for instructions.
- You’ll probably want to read through the topical guides (in docs/topics) next; from there you can jump to the HOWTOs (in docs/howto) for specific problems, and check out the reference (docs/ref) for gory details.
- See docs/README for instructions on building an HTML version of the docs.
Django REST framework is a powerful and flexible toolkit for building Web APIs.
Some reasons you might want to use REST framework:
- The Web browsable API is a huge usability win for your developers.
- Authentication policies including packages for OAuth1a and OAuth2.
- Serialization that supports both ORM and non-ORM data sources.
- Customizable all the way down - just use regular function-based views if you don’t need the more powerful features.
- Extensive documentation, and great community support.
- Used and trusted by large companies such as Mozilla and Eventbrite.
REST framework requires the following:
- Python (2.7, 3.2, 3.3, 3.4, 3.5)
- Django (1.7+, 1.8, 1.9)
The following packages are optional:
- Markdown (2.1.0+) - Markdown support for the browsable API.
- django-filter (0.9.2+) - Filtering support.
- django-crispy-forms - Improved HTML display for filtering.
- django-guardian (1.1.1+) - Object level permissions support.