Files
awesome-django/README.md
2018-11-12 08:00:00 -05:00

199 lines
11 KiB
Markdown

# Awesome Django
> A curated list of awesome things related to Django.
## Table of Contents
* [Table of Contents](#table-of-contents)
* [Resources](#resources)
* [Official Resources](#official-resources)
* [General Tutorials](#general-tutorials)
* [External Resources](#external-resources)
* [Starter Projects](#starter-projects)
* [Example Apps: Beginner](#example-apps-beginner)
* [Example Apps: Advanced](#example-app-advanced)
* [Docker](#docker)
* [Django REST Framework](#django-rest-framework)
* [Resources](#drf-resources)
* [General Tutorials](#drf-tutorials)
* [DRF and React Tutorials](#drf-and-react-tutorials)
* [Starter Projects](#drf-starter-projects)
* [Example Apps](#drf-example-apps)
* [Third-Party Packages](#third-party-packages)
* [Books](#books)
* [Videos](#videos)
- [Free](#free)
- [Paid](#paid)
## Resources
### Official Resources
* [Django Official Website](https://www.djangoproject.com/)
* [Django Documentation](https://docs.djangoproject.com/en/dev/)
* [Django Polls Tutorial](https://docs.djangoproject.com/en/dev/intro/tutorial01/)
* [Django Source Code](https://github.com/django/django)
### General Tutorials
* [Django for Beginners](https://djangoforbeginners.com/) - Build 3 apps from scratch: Hello World, Pages, and Message Board
* [Django Girls Tutorial](https://tutorial.djangogirls.org/en/) - Use function-based views to build a blog app
* [Mozilla Tutorial](https://developer.mozilla.org/en-US/docs/Learn/Server-side/Django) - Create a lending library app
* [A Complete Beginner's Guide to Django](https://simpleisbetterthancomplex.com/series/beginners-guide/1.11/) - In-depth and excellent walkthrough of a new Django app
* [Build a HackerNews clone](https://medium.com/@danieldng/a-little-hacker-news-in-django-part-1-f12aa81dc25d) - Very well-done tutorial for Django 2.0.
### External Resources
* [Classy Class-Based Views](http://ccbv.co.uk/) - Detailed descriptions for each generic class-based view.
* [Django Packages](https://djangopackages.org/) - Comprehensive directory of reusable Django apps and tools.
* [William Vincent's Website](https://wsvincent.com) - Up-to-date tutorials on Django and Django REST Framework.
* [Simple is Better than Complex](https://simpleisbetterthancomplex.com/) - Regularly updated website with many tutorials and tips on Django.
* [Full Stack Python's Django Page](https://www.fullstackpython.com/django.html) - Explanation of Django philosophy and links to other resources and tutorials.
### Starter Projects
* [cookiecutter-django](https://github.com/pydanny/cookiecutter-django) - A full-bodied starter project, highly customizable.
* [djangox](https://github.com/wsvincent/djangox) - Comes with complete user registration, email/password, Pipenv, and more.
* [django-starter-project](https://github.com/jpadilla/django-project-template) - A deliberately simple project that has multiple staging environments and Heroku deployment config.
### Example Apps: Beginner
* [Hello, World app](https://github.com/wsvincent/djangoforbeginners/tree/master/ch2-hello-world-app)
* [Message Board app](https://github.com/wsvincent/djangoforbeginners/tree/master/ch4-message-board-app)
* [Blog app with users and forms](https://github.com/wsvincent/djangoforbeginners/tree/master/ch7-blog-app-with-users)
* [Newspaper app with custom user model, full user auth](https://github.com/wsvincent/djangoforbeginners/tree/master/ch15-comments)
* [Behavior-Driven Development with Aloe](https://github.com/testdrivenio/django-aloe-bdd)
### Example Apps: Advanced
* [wagtail](https://github.com/wagtail/wagtail) - Very popular Django-based content management system
* [Zulip](https://github.com/zulip/zulip) - Open-source team chat
* [django-oscar](https://github.com/django-oscar/django-oscar) - E-commerce for Django
* [django-cms](https://github.com/divio/django-cms) - CMS for Django
* [saleor](https://github.com/mirumee/saleor) - E-commerce storefront
### Docker
> Docker is commonly used to work with production-level databases locally like PostgreSQL or MySQL.
* [Why Docker?](https://wsvincent.com/django-tips-docker/)
* [How to use Django, Docker, and PostgreSQL](https://wsvincent.com/django-docker-postgresql/)
* [A Brief Intro to Docker for Djangonauts](https://www.revsys.com/tidbits/brief-intro-docker-djangonauts/)
* [Dockerizing Django with Postgres, Gunicorn, and Nginx](https://testdriven.io/dockerizing-django-with-postgres-gunicorn-and-nginx)
## Django REST Framework
> The most popular way to build web APIs with Django.
### DRF Resources
* [Official Documentation](http://www.django-rest-framework.org/)
* [DRF Source Code](https://github.com/encode/django-rest-framework)
### DRF Tutorials
* [Official REST Framework - A Beginner's Guide](https://wsvincent.com/official-django-rest-framework-tutorial-beginners-guide/)
* [DRF Blog API](https://wsvincent.com/django-rest-framework-tutorial/)
* [Building APIs with Django and DRF](https://books.agiliq.com/projects/django-api-polls-tutorial/en/latest/)
* [DRF Serializers, Viewsets, and Routers](https://wsvincent.com/django-rest-framework-serializers-viewsets-routers/)
* [DRF Todo API with User Auth](https://wsvincent.com/django-rest-framework-authentication-tutorial/)
* [DRF User Authentication](https://wsvincent.com/django-rest-framework-user-authentication-tutorial/)
### DRF and React Tutorials
* [DRF with React: Todo API](https://wsvincent.com/django-rest-framework-react-tutorial/)
* [DRF with React](https://www.valentinog.com/blog/tutorial-api-django-rest-react/)
* [Making React and Django play well together](https://fractalideas.com/blog/making-react-and-django-play-well-together/)
### DRF Starter Projects
* [DRFx](https://github.com/wsvincent/drfx)
### DRF Example Apps
* [DRF Polls](https://github.com/wsvincent/drf-polls) - API of the official Django polls tutorial
* [DRF Blog](https://github.com/wsvincent/drf-blog-api) - Basic Blog API
* [ECGC](https://github.com/flowerncsu/ecgc-2017) - Example from DjangoCon 2017 talk [Write an API for Almost Anything](https://www.youtube.com/watch?v=-6tR5TffP0w)
## Third-Party Packages
> For a complete listing of all available packages, see [Django Packages](https://djangopackages.org/)
* [django-allauth](https://github.com/pennersr/django-allauth/) - User registration, social authentication, account management, and more.
* [django-compressor](https://github.com/django-compressor/django-compressor/) - Compress JavaScript/CSS into a single cached file
* [django-crispy-forms](https://github.com/django-crispy-forms/django-crispy-forms/) - DRY Django forms
* [django-debug-toolbar](https://github.com/jazzband/django-debug-toolbar/) - Configurable panels to debug requests/responses
* [django-environ](https://github.com/joke2k/django-environ) - Environment variables
* [django-extensions](https://github.com/django-extensions/django-extensions/) - Custom management extensions, notably `runserver_plus` and `shell_plus`
* [django-filter](https://github.com/carltongibson/django-filter) - Powerful filters based on Django QuerySets
* [django-guardian](https://github.com/django-guardian/django-guardian) - Per object permissions in Django
* [django-hijack](https://github.com/arteria/django-hijack) - Admins can log in and work on behalf of other users without having to know their credentials
* [django-model-utils](https://github.com/jazzband/django-model-utils) - Django model mixins and utilities
* [django-silk](https://github.com/jazzband/django-silk) - Live profiling and inspection of HTTP requests and database queries
* [django-storages](https://github.com/jschneier/django-storages) - A single library to support multiple custom storage backends for Django
* [django-tables2](https://github.com/jieter/django-tables2) - HTML tables with pagination/sorting
* [django-test-plus](https://github.com/revsys/django-test-plus/) - Useful additions to Django's default TestCase
* [easy-thumbnails](https://github.com/SmileyChris/easy-thumbnails) - Image thumbnails for Django
* [pytest-django](https://github.com/pytest-dev/pytest-django) - Use pytest features in Django
* [wagtail](https://github.com/wagtail/wagtail) - Popular Django content management system (CMS)
* [whitenoise](https://github.com/evansd/whitenoise) - Simplified static file serving for Python websites
> Django Rest Framework specific packages
* [django-rest-auth](https://github.com/Tivix/django-rest-auth) - REST API endpoints for authentication and registration
* [django-rest-framework](https://github.com/encode/django-rest-framework) - Web APIs for Django
* [django-rest-framework-simplejwt](https://github.com/davesque/django-rest-framework-simplejwt) - JSON web tokens for DRF
* [django-rest-swagger](https://github.com/marcgibbons/django-rest-swagger) - API document generator for Swagger UI
## Books
> Django 2.1
* [Django for Beginners: Build websites with Python and Django](https://djangoforbeginners.com/)
* [REST APIs with Django: Build web APIs with Python and Django](https://restapiswithdjango.com/)
* [Build Your First Website with Django 2.1](https://transactions.sendowl.com/stores/9897/130290)
> Django 2.0
* [Hello Web App 2.0](https://hellowebbooks.com/learn-django/)
* [Django Design Patterns and Best Practices](https://www.amazon.com/dp/1788831349/?tag=wsvincent-20)
* [Building Django 2.0 Web Applications](https://www.amazon.com/dp/B079DW6TRJ/?tag=wsvincent-20)
* [Django RESTful Web Services](https://www.amazon.com/dp/1788833929/?tag=wsvincent-20)
> Django 1.11
* [Two Scoops of Django: Best Practices for Django 1.11](https://www.amazon.com/dp/0692915729/?tag=wsvincent-20)
* [Build Your First Website with Python and Django 1.11](https://www.amazon.com/Build-First-Website-Python-Django/dp/0994616856/?tag=wsvincent-20)
* [Test-Driven Development with Python](https://www.amazon.com/dp/1491958707/?tag=wsvincent-20)
## Videos
### Free
* [Django 2.1 Authentication Tutorial by Vitor Freitas](https://youtu.be/60GTvKCuam8?list=PLLxk3TkuAYnryu1lEcFaBr358IynT7l7H)
* [Build a Startup with Django 2.1 by CSDojo](https://youtu.be/UyQn0BhVqNU)
* [Django 2.0 Blog Tutorial by Corey Schafer](https://youtu.be/UmljXZIypDc?list=PL-osiE80TeTtoQCKZ03TU5fNfx2UY6U4p)
* [Django 1.11 Todo App by Traversy Media](https://youtu.be/2yXfUPwlZTw)
* [Django Crash Course by Traversy Media](https://youtu.be/D6esTdOLXh4)
* [Django 1.9 Web Development by Harrison Kinsley](https://www.youtube.com/watch?v=FNQxxpM1yOs&list=PLQVvvaa0QuDeA05ZouE4OzDYLHY-XH-Nd)
* [Effective Django (2013)](https://youtu.be/NfsJDPm0X54)
### Paid
* [GoDjango](https://godjango.com/)
* [Treehouse](https://teamtreehouse.com/tracks/learn-django)
* [Coding for Entrepreneurs](https://www.codingforentrepreneurs.com/)
* Udemy:
- [Django 2 & Python](https://click.linksynergy.com/link?id=1*FmkJFU6n4&offerid=507388.1562632&type=2&murl=https%3A%2F%2Fwww.udemy.com%2Fthe-ultimate-beginners-guide-to-django-django-2-python-web-dev-website%2F)
- [Python Django Dev to Deployment](https://click.linksynergy.com/link?id=1*FmkJFU6n4&offerid=507388.1952540&type=2&murl=https%3A%2F%2Fwww.udemy.com%2Fpython-django-dev-to-deployment%2F)
- [Build a Django eCommerce Application](https://click.linksynergy.com/link?id=1*FmkJFU6n4&offerid=507388.1396598&type=2&murl=https%3A%2F%2Fwww.udemy.com%2Fpython-ecommerce-build-a-django-ecommerce-web-application%2F)
---
> Some links contain affiliate codes which help me justify the time to keep this list up-to-date.
### License
[![CC0](http://i.creativecommons.org/p/zero/1.0/88x31.png)](http://creativecommons.org/publicdomain/zero/1.0/)