When you start developing with Django it is really easy to get started with HTML templates. But as a developer you quickly find out that there is also the possibility to introduce JavaScript in your application. But what frontend framework should you use in your application? In this blogpost we elaborate on when to use HTML, and when to pick a JavaScript framework.
What are the options?
HTML and JavaScript are the main important technologies in web development and they serve different purposes. HTML is the standard markup language used to create web pages, while JavaScript is a scripting language used to add dynamic and interactive elements to web pages. In my view there are three ways to develop your frontend with Django as a backend.
- Full HTML: All of your frontend written in HTML.
- HTML together with JavaScript: Use a HTML template as the basis, but introduce some JavaScript to addd some dynamic capabilities.
- Full JavaScript with a JS Framework: Use one HTML template from where you serve a JavaScript framework such as React or Angular.
When to use HTML
When you work with Django the use of HTML templates is a very convenient way to frontend development. HTML is very good at the creation of:
- Simple web applications
- Basic user interactions
- Rendering of static pages
HTML is a good choice for simple applications where the focus is on displaying content and there is little need for complex interactivity.
The great advantage of HTML is that it is relatively simple and intuitive to learn, making your development process simple and fast.
When to use a JavaScript framework
But when do you want to introduce JavaScript in your applications? Well, you do that when you want to create:
- Complex and interactive user interfaces: If you have an application that should display dynamic content a JavaScript framework is your best friend.
- Dynamic updates: JavaScript can dynamically update the web page based on certain defined triggers. For example: Every time a form is changed a notification pops up on the screen.
- Single-page applications (SPAs): When you use a framework such as React you are able to dynamically show components to the user, whilst remaining on the same HTML page. This makes the webpage fast since there is no switching between HTML templates.
JavaScript is a good choice for applications where there is a lot of user interaction and the interface needs to be dynamic and responsive.
Packages that can provide you with advanced functionality such as data tables with elaborate filters and calendars are often JavaScript based.
A disadvantage of introducing JavaScript is that it can also introduce complexity and performance issues if used incorrectly.
In conclusions: Adjust to your use case
In summary, you would typically use HTML with Django when building simple web applications that require basic user interactions and rendering of static pages, whereas you would introduce JavaScript with Django when building complex, interactive user interfaces that require dynamic updates and SPA functionality.
Ultimately, the choice depends on your use case. In my experience introducing a JavaScript framework opens a lot of opportunities, but also adds complexity and additional knowledge.