Full Stack Development in Django - Reading Time: 3 Mins

Introduction

When it comes to Django, there is tons of information. Which introduced on what could be done with default capabilities. Which is quite extensive that won't be covered in this article. I think I could list out the various option to break apart Django for each use cases.

For web developers, who are looking to take advantage part of Django. To fulfil what they need for their use case, by removing or replacing it with another technology specific to their needs.

Front-End

For the front-end besides using Django's templating engine. Which serves web pages generated from pre-created html templates with Django tags and data drawn from the Django ORM. You can use Jinja2 for loading web page faster.

Regardless of which type of templating engine you use, one can always beautify it with Bootstrap. Which if you look for pre-created templates. There is multiple pretty bootstrap theme from CreativeTim that you can use.

For the front-end side, you can totally ignore the template language and use a Javascript Front-end framework like Vue, React, Angular. Have Django become part of your backend serving endpoints using either Graphene Django or as a Django REST Framework.

Back-end

In terms of backend portion for Django, you might need to convert Django to serve endpoints for the front-end web framework. As either GraphQL using Graphene Django or Restful API using Django REST Framework.

Sometimes you might require your API services as an asynchronous task. Which you adopt it through the use of Celery. Previously there are a few ways through the use of Django Channels or Celery.

Now with the release of the latest Django 3.0, that comes with asynchronous capability that comes built-in by default that allows the deploying using a new webs server like ASGI.

Deployment

In terms of deployments, there are really multiple ways for you to skin the cat by deploying through self-hosting, cloud provider or as a microservice.

In terms of self-hosting, one could go for using docker to deploying on a cloud-like Linode or Heroku.

Now you can even use microservice like Serverless or Zappa to deploy in AWS. So there's really tons of way to do it with different advantage based upon the use case.

Conclusion

I hope that it will be useful for you to learn more about Django. Which took a lot of time for me watching youtube or trying out stuff on which works. Learning from failure like configuring mob_wsgi in Apache or configuring Gunicorn to make it work on Nginx.

As I gain more knowledge and be willing to learn from multiple points of view to create software. Which is specific to the use case instead of being dogmatic or narrow-minded in the type of using only one technology to solve a problem.

Reference