We’ve come a long way in this book. We started with the very basics of properly installing Python 3, Django, and working with virtual environments. Then we built three small apps before our main blog app that featured forms and a user authentication flow. Django’s “batteries-included” approach allowed us to accomplish all of this with very little code of our own. And crucially, we have the ability to extend and customize Django to suit our application’s needs.
With more time, what else could we add to our blog application? Here are just a few features that come to mind along with links on how to add the functionality:
- more testing
- complete user authentication using the messages framework
- improved security
- image uploading
- a site-wide comments system
- payments with Stripe for premium features?
To continue learning Django, I recommend working through the following tutorials:
The current bible for Django best practices is Two Scoops of Django 1.11: Best Practices for the Django Web Framework. I would also strongly recommend working through Test-Driven Development with Python for a robust introduction to testing.
If you’re new to Python, Python Crash Course is a fantastic introduction to the language that also walks you through several real-world projects, including a Django application. For intermediate Python programmers, both Effective Python and Fluent Python are invaluable for a deep understanding of the language.