0

As a beginner to web applications and front end stuff, I'm really confused about if it's good practice to use the Django template system and its admin interface in commercial applications.

As far as I know, the modern approach for web apps is to modularize them between a back end and a front end. It seems that this modularity has important benefits related to separation of concerns, and that would mean:

  • Creating a Django back end with a REST API to be used by the front end.
  • Creating an independent React or Vue front end that makes requests to the API.

With this in mind, while I read the Django tutorial, I was convinced that using templates and the admin site was not a good idea because there would be no modularity, as everything would be inside the Django project, and the UI would also be dependent on Django templates, which seems to be limited by design.

But on the other hand it seems that CRUD applications for management in general would benefit a lot from the Django admin interface. I wonder if it's a terrible idea to deploy a system that is an extension of a Django admin site and if using Django templates would turn into a nightmare later. And if someday I hired a front end developer, if they would even be able to work effectively with the HTML pages I create via the Django template system.

So in short, is it a terrible idea to make a commercial web app UI based on Django nowadays?

Obs: this question is a repost of my stackoverflow question.

1
  • 1
    Web frameworks like Django and RoR are very good at quickly creating a production-ready system. An admin interface is part of such a system. There's nothing wrong with using the bundled features. For more complex projects you might outgrow them, for example you might want to use a different template engine for interoperability purposes, or create your own back-office interface. If you only want a REST API, you don't need a template system at all – but doing everything as a single page application is often unnecessary.
    – amon
    Jul 11, 2021 at 13:53

1 Answer 1

1

This depends on multiple factors and goals of your application. The existing Django template system and admin panel is called Monolithic Architecture of building web applications. It contains all the business logic code, database access code, routes, middle-wares and front-end code all at the same repository. There is other architecture pattern used now days, which is called as Micro-services Architecture where you try to decouple the system and try to divide you application in smaller independent services.

If your application is changing and you want to deploy the changes more frequently then for even simpler change, you have to always go ahead and deploy the whole code again and again.

But, If you are building a relatively simple app with not much having high scalability and performance requirements, then you can go ahead with the Django views approach. If you want to focus more on the business and have less time and resources to develop the admin panel from scratch, then you can go ahead with the Django views and admin panel.

In short, It will depend upon the scale of the project and what are your goals for the project.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.