Have you completed the Django tutorial and wonder what’s next? Here are 5 topics worth diving into:

Making your application less ugly

The design of the application you build in the Django tutorial is quite… minimal.

If you have some design skills, you might want to create your own look. Learn more about Django templates, especially template inheritance, so you don’t have to copy and paste your code into all template files.

For non-designers, a solid alternative to hand-crafting HTML and CSS is the Bootstrap framework, which you can also use with Django easily.

User authentication

One of Django’s strengths is the handling of user authentication. The polls application doesn’t know anything about users, only the built-in admin is restricted to staff users. Here are a couple of features you might want to implement:

Allowing users to log in

Allowing users to registers

Allowing users to reset their passwords

Require users to validate their email addresses

Restrict access to certain pages to logged in users

Restrict access to certain objects to certain users

Deploying your application

Django’s built-in development server, which you can start with manage.py runserver , makes it incredibly easy to run your project on your local computer.

As easy as it is to get started locally, as daunting a task can it be to deploy your application. The Django documentation on deployment outlines some options, but it can’t answer all of the questions that arise:

Should I use Nginx or Apache? Should I use gunicorn or uwsgi? What provider should I use? Should I use to a dedicated server? Or should I use a cloud provider like AWS or Heroku? What about Docker? And why do my static files not work?

The easiest way to get your application online for free is probably Heroku. They have an extensive tutorial on deploying a Django app to Heroku you can follow.

Implementing a REST API

Let’s face it, chances are you don’t want to render your pages on your server like it’s 1999. Instead, you want to use a JavaScript framework like React.js or Angular.

That means you have to implement a REST API in your backend that your frontend can talk to. You could roll your own solution for that, but I encourage you to check out Django REST framework.

Scaling your web application

The most upvoted Django-related questions on StackOverflow is “Does Django scale?”. This is a vague question, so the equally vague answer is “it depends.”

There are a bunch of measures you should consider to ensure your application scales.

Using Django’s cache framework

Delegating long-running tasks to a job queue like Celery

Rate-limiting requests as a simple DoS protection

What’s next for you?

Web development is a wide topic and Django is a powerful framework. This list should give you some starting points what to learn next.

You can work on your own personal project or you can extend the polls application you built in the Django tutorial.

I’m currently writing a tutorial that does just that: it picks up where the Django tutorial ends. Subscribe to my mailing list in the box below to get notified when it gets published.

Image Source