Article
Cover
RJPS Journal Cover Page

RJPS Vol No: 14 Issue No: 3 eISSN: pISSN:2249-2208

Article Submission Guidelines

Dear Authors,
We invite you to watch this comprehensive video guide on the process of submitting your article online. This video will provide you with step-by-step instructions to ensure a smooth and successful submission.
Thank you for your attention and cooperation.

Review Article
Shubham Dhadil1, Anshul Srivastava2, Vidya Shinde3, Vinayak Walhekar4, Ashwini Patil5, Ankit Ganeshpurkar6, M Karthikeyan7, Ravindra Kulkarni*,8,

1Department of Pharmaceutical Chemistry, BVDU’S Poona College of Pharmacy, Paud Road, Erandwane Pune, Maharashtra, India

2Department of Pharmaceutical Chemistry, BVDU’S Poona College of Pharmacy, Paud Road, Erandwane Pune, Maharashtra, India

3Department of Pharmaceutical Chemistry, BVDU’S Poona College of Pharmacy, Paud Road, Erandwane Pune, Maharashtra, India

4Department of Pharmaceutical Chemistry, BVDU’S Poona College of Pharmacy, Paud Road, Erandwane Pune, Maharashtra, India

5Department of Pharmaceutical Chemistry, BVDU’S Poona College of Pharmacy, Paud Road, Erandwane Pune, Maharashtra, India

6Department of Pharmaceutical Chemistry, BVDU’S Poona College of Pharmacy, Paud Road, Erandwane Pune, Maharashtra, India

7Chemical Engineering and Process Development, National Chemical Laboratory Dr. Homi Bhabha Road, Pune, Maharashtra, India

8Dr. Ravindra Kulkarni, Professor, Department of Pharmaceutical Chemistry, BVDU’S Poona College of Pharmacy, Paud Road, Erandwane Pune, Maharashtra, India.

*Corresponding Author:

Dr. Ravindra Kulkarni, Professor, Department of Pharmaceutical Chemistry, BVDU’S Poona College of Pharmacy, Paud Road, Erandwane Pune, Maharashtra, India., Email: ravigk2000@gmail.com
Received Date: 2024-01-18,
Accepted Date: 2024-08-07,
Published Date: 2024-09-30
Year: 2024, Volume: 14, Issue: 3, Page no. 1-9, DOI: 10.26463/rjps.14_3_7
Views: 396, Downloads: 26
Licensing Information:
CC BY NC 4.0 ICON
This work is licensed under a Creative Commons Attribution-NonCommercial 4.0.
Abstract

Django is a powerful framework for developing web applications, enabling researchers and students to efficiently access and analyse organic compound data, contributing to improved patient care and safety. Its security, data modelling, integration capabilities, and user friendly interfaces make it an excellent choice for building systems that assist in reaction planning and retro synthesis, enhancing the efficiency and effectiveness of chemical research and development. This paper presents a comprehensive review on the core features, user friendliness, and extensive documentation of the framework, providing guidance and instructions on how to integrate it with these and other technologies, empowering developers to create robust and innovative web applications.

<p>Django is a powerful framework for developing web applications, enabling researchers and students to efficiently access and analyse organic compound data, contributing to improved patient care and safety. Its security, data modelling, integration capabilities, and user friendly interfaces make it an excellent choice for building systems that assist in reaction planning and retro synthesis, enhancing the efficiency and effectiveness of chemical research and development. This paper presents a comprehensive review on the core features, user friendliness, and extensive documentation of the framework, providing guidance and instructions on how to integrate it with these and other technologies, empowering developers to create robust and innovative web applications.</p>
Keywords
Django, Web framework, Python, MVC concept, HTML database management
Downloads
  • 1
    FullTextPDF
Article
Introduction

The model view controller (MVC) architectural plan is embraced by Django which is a python based framework. It offers a comprehensive toolkit and features that facilitate the rapid and efficient development of web applications. The framework upholds the principle of "don't repeat yourself" (DRY), promoting code reusability and maintainability. At its core, a robust object relational mapper (ORM) is incorporated, enabling developers’ interaction with databases using Python code rather than direct structured query language (SQL) queries. This simplifies database operations and enhances security by mitigating common SQL injection attacks.

History Django's inception can be traced back to the fall of 2003 when Simon Willison and Adrian Holovaty, web programmers working at the Lawrence Journal World newspaper, started using Python for their application development needs. In the early stages of Django, shortly before Simon, Jacob Kaplan-Moss joined the team. Willison's internship came to an end.1

At present, Django is an open-source project, made available to the global community for contributions from developers worldwide. The latest developments include the release of Django 3.0a1, which is currently in its beta phase, showcasing the ongoing evolution of the framework.2

Models

In Django, models serve as blueprints for organizing and managing data. They are commonly defined as Python classes that derive from Django's fundamental model class. By doing so, models represent database tables and offer a convenient means to interact with the underlying database. Django leverages Object-Relational Mapping (ORM) to handle database operations, enabling developers to work with databases seamlessly without the need to write SQL code directly.

Views

In Django, views play a crucial role in handling Hypertext Transfer Protocol (HTTP) requests and generating HTTP responses. They encapsulate the logic behind each page or endpoint within your application. Views have the capability to render Hypertext Markup Language (HTML) templates, retrieve data from databases, process forms, and execute other necessary operations. Django offers a range of view types, including class-based and function-based views, to cater to diverse requirements and preferences.

Template

In Django, templates play a vital role in generating the HTML output delivered to the user's browser. They facilitate the separation of presentation logic from the rest of your application. By utilizing Django's template language, you can dynamically insert data into HTML templates, control the template's flow, and reuse template snippets effectively. Templates enable a flexible and organized approach to crafting dynamic HTML content while maintaining a clear distinction between presentation and application logic.

URL Routing

In Django, a Uniform Resource Locator (URL) dispatcher is employed to associate URLs with the corresponding view functions or class-based views. The URL dispatcher comprises a collection of patterns that are compared against the requested URL to identify the appropriate view for handling the request. This mechanism enables to establish well-structured and meaningful URLs for the application, enhancing readability and user experience.

Django has an integrated admin interface which automates the management of the application's data. This admin interface enables to effortlessly execute CRUD operations (Create, Read, Update, Delete) on database records, eliminating the need for custom views or templates. It presents a user-friendly interface specifically designed for efficiently managing the application's data models.3

What is web framework?

The architecture of a Web application built employing the Common Gateway Interface (CGI) standard, which was a prevalent approach for creating Web applications around 1998. During that era, when building a CGI application, developers had to handle every aspect manually, similar to making a cake entirely from raw ingredients.4

Framework Overview

Template system basics

In Django, a template serves as a text string that aims to separate the data presentation from the actual document. While templates are typically utilized to generate HTML content, Django templates have the flexibility to generate any text-based format. Let's explore a straightforward example template that represents an HTML page expressing gratitude to an individual for placing an order with a company. Consider it as a pre-designed letter template that can be customized with specific details.5

<!DOCTYPE html>

<html>

<head>

<!-- Sets the title of the webpage that appears on the browser tab -->

<title>Order Confirmation</title>

<style>

/* Applies styles to the body of the document */ body

{

font-family: Arial, sans-serif; /* Sets the font family

*/

margin: 0/* Removes default margin */

padding: 20px; /* Adds padding around the content */

}

/* Styles the container class */

.container

{

max-width: 600px; /* Sets the maximum width of the container */

margin: 0 auto; /* Centres the container horizontally

*/

text-align: centre; /* Centres the text */

background-colour: #f4f4f4; /* Sets the background colour */

padding: 20px; /* Adds padding inside the container

*/

border-radius: 5px; /* Rounds the corners of the container */

box-shadow: 0 0 10px rgba (0, 0, 0, 0.1); /* Adds a subtle shadow effect */

}

/* Styles the h1 elements */

h1

{

colour: #333; /* Sets the text colour */

}

/* Styles the paragraph elements */

p

{

margin-bottom: 20px; /* Adds margin below each paragraph */

}

/* Styles the paragraph with class thank-you */ . thank-you {

font-size: 24px; /* Sets a larger font size */

font-weight: bold; /* Makes the text bold */

colour: #555; /* Sets the text colour */

}

</style>

</head>

<body>

<!-- Container for the content -->

<div class="container">

<!-- Main heading of the document -->

<h1>Order Confirmation</h1>

<!-- Paragraph with special styling -->

<p class="thank-you">Thank you for placing your order with our company! </p>

<!-- Regular paragraph elements -->

<p>We are excited to serve you. Your order details are being processed, and we will notify you once it's shipped. </p>

<p>If you have any questions or need further assistance, please contact our customer support team. </p>

<p>Thank you again for choosing our company. </p>

<p>Sincerely, </p>

<p>The [Company Name] Team</p>

</div>

</body>

</html>

MVC design pattern

The MVC (Model-View-Controller) concept has gained significant popularity, particularly with the rise of the Internet, as it provides an excellent framework for designing client-server applications. Understanding the MVC pattern is relatively straightforward.

The Model (M) represents the data or data interface. It serves as a representation of the underlying data, allowing seamless interaction with the database without needing in-depth knowledge of its intricacies. Additionally, the model often includes an abstraction layer that enables compatibility with multiple databases.

The View (V) is responsible for the presentation layer. It encompasses what users see in a web app's browser or the user interface (UI) in a desktop app.

The Controller (C) plays a crucial role in coordinating the flow of information between the Model and the View components. It utilizes predefined logic to decide which data should be retrieved from the database through the Model and what information needs to be passed to the View.6

The Controller may perform various tasks such as modifying the View or the data within the Model, or both, based on the specific business rules and requirements. By employing programmed logic, the Controller ensures that the Model and the View interact seamlessly, facilitating effective communication and manipulation of data in the application.7

URL routing and request handling

URL routing and request handling are essential aspects of web application development in Django. Let's delve into each concept individually to gain a better understanding.

URL Routing

In Django, URL routing is the mechanism used to map incoming URLs to the relevant view functions or classbased views responsible for handling the corresponding requests. Django's URL routing system employs a predefined set of patterns that are compared against the requested URLs to identify the appropriate view for processing the request. This enables the creation of organized and descriptive URLs for various pages or endpoints within the application.

Request Handling

Request handling in Django involves the process of receiving and processing HTTP requests from clients. When a user interacts with a web application, their actions generate requests that are sent to the server. In Django, the view functions or class-based views associated with the matched URL pattern are responsible for handling these requests. They contain the logic and instructions to process the request, retrieve data from the database if necessary, and generate an appropriate response, such as rendering HTML templates or returning data in different formats (e.g., JSON).8

Core Components

Models and database management

Defining ‘Models’ in Python is a fundamental part of Django's "MTV" pattern. In Django, a model represents the structure and behaviour of data in the repository, defined as ‘Python code’. It goes beyond mere database column definitions and allows Django to execute SQL code and provide convenient data access APIs (Application Programming Interface)9

Views and URL Configuration

In Django, views and URL configuration are key and determine the appropriate response for each URL. Let's explore each of these concepts more in detail.

Views

In Django, views can be implemented using either function-based views or class-based views.

Function-based views

Function-based views are defined as Python functions. They receive an HTTP request as an argument and return an HTTP response. Within a function-based view, you can write custom code to process the request, retrieve data from models, interact with the database, and create a response. Function-based views provide a simple and straightforward way to handle requests.

Class-based views

Class-based views are defined as Python classes that inherit from Django's built-in view classes. Class-based views give more structured and reusable approach to handling requests. By extending the base view classes and overriding specific methods, you can customize the behaviour of class-based views. Django provides rich set of pre-built class-based views for common use cases, such as creating, updating, or deleting objects.10

URL Configuration

URL configuration in Django maps URLs to the corresponding views that handle the requests. It determines which view should be invoked based on the requested URL. URL configuration is typically defined in two levels: project-level and app-level.

Project-level URL configuration

It includes the URL patterns for various apps or modules within the project. In this file, you can specify the root URL patterns and associate them with corresponding views.

App-level URL configuration

Each Django app can have its own urls.py file to define URL patterns specific to that app. These app-level urls. py files are then included in the project's main urls.py f ile to combine the URL patterns from all the apps.

Configuring Database

Configuring the database in Django involves specifying the necessary settings to connect your Django project to a database. Django supports multiple database back ends, including popular options like MySQL, and Oracle.11

To configure a database in Django:

1. Install Database Software: Ensure your database software (e.g., PostgreSQL, MySQL, SQLite) is installed and running.

2. Install Database Adapter: For PostgreSQL: pip install psycopg2

3. Update settings.py:

    DATABASES =

    {

    'default':

    {

    'ENGINE': 'django.db.backends.postgresql',  # Or 'mysql', 'sqlite3', etc.

    'NAME': 'your_db_name',

    'USER': 'your_db_user',

    'PASSWORD': 'your_db_password',

    'HOST': 'your_db_host',  # Usually 'localhost'

    'PORT': 'your_db_port',  # Usually '' for default

    }

    }

4. Apply Migrations:

    python manage.py makemigrations

    python manage.py migrate

5. Test the Connection:

    python manage.py runserver

SQL Database

Now, let's discuss the final component of the puzzle - data persistence. Once you have your Python code, powered by Django, and your web server (such as Apache or lighttpd) set up to handle dynamic requests, you need a reliable way to store and retrieve data. When using Django, you have several options for running a database.

MySQL

It is another relational open-source database management system. It is mostly used and known for its speed and scalability. Django offers comprehensive support for MySQL, enabling to leverage its features and take advantage of its performance.

Oracle

Oracle is commonly used in enterprise environments and Django's Oracle support allows you to integrate your Django application with Oracle databases seamlessly. By supporting multiple databases and providing the required Python libraries, Django offers f lexibility and allows you to choose the database that best suits your project's needs.12

Django Features and Benefits

Admin Interface

The admin interface in Django is a robust feature that simplifies the management and manipulation of data in your application's database. It offers a user-friendly, web-based interface that facilitates the execution of CRUD (Create, Read, Update, Delete) operations on your models.13

Security in Django

Cross site scripting (XSS) protection

Django templates come up with significant protection against the majority of XSS attacks. They have builtin mechanisms to escape specific characters that pose a threat to HTML security. By doing so, Django templates effectively safeguard users from potential malicious input. However, it is crucial to acknowledge that these protections have certain limitations and may not provide absolute immunity against all possible XSS vulnerabilities. For example, it protects the following:

<style class={{ var }}>...</style>

If var is set to 'class1 onmouseover=javascript:func()',

This can lead to uncertified execution of JavaScript, depending on how the browser renders flawed HTML (Quoting the attribute value would resolve this issue.).14

Cross site request forgery (CSRF) protection

CSRF, these attacks allow hostile users to carry out actions using the data of unsuspecting users without their knowledge or permission. Django incorporates built-in protection mechanisms against most forms of CSRF attacks, provided that you have enabled and appropriately utilized them. The CSRF protection in Django functions by verifying the presence of a secret token in each POST (Power-On-Self-Test) request. This secures that malicious users cannot "replay" a form submission to your website and trick another logged-in user into accidentally submitting that form.15

SQL injection protection

SQL injection refers to a form of attack where a malicious user can accomplish arbitrary SQL code on a database, potentially leading to data loss or unauthorized data access.

Django provides protection against SQL injection through the use of query parameterization in its query sets. By separating the SQL code from the query's parameters, Django ensures that user provided parameters are properly escaped by the underlying database driver, making them safe to use in queries.16

Clickjacking protection

Django includes built-in clickjacking protection through the X-Frame-Options middleware. This middleware adds an HTTP header to the server's response, which, when supported by the browser, prevents the site from being rendered inside a frame. The clickjacking protection is enabled by default in Django.17

SSL/HTTPS

Deploying your site behind HTTPS is crucial for enhancing security. Without HTTPS, malicious network users can potentially intercept and access sensitive information, such as authentication credentials, during transmission between the server and client. In more severe cases, active network attackers can even manipulate the data being exchanged.18

Django vs Other Web Frameworks

Comparison with popular frameworks such as flask, ruby on rails and Laravel

Django, a widely used web framework, is renowned for developing powerful and scalable web applications. Like any framework, it possesses its own set of strengths and weaknesses, making it a subject of comparison with other frameworks in terms of features, performance, ease of use, community support and suitability for various project types. Let us delve into a comparison between Django and a few other notable frameworks:

a. Flask

A lightweight Python web framework prioritizes simplicity and flexibility. Unlike Django, it does not come bundled with an ORM or a built-in authentication system. Flask is particularly well suited for small to medium sized projects that demand extensive customization options.

b. Ruby on Rails

It is widely used Ruby web framework that adheres to the convention over configuration principle. It places a strong emphasis on developer productivity and aims to maximize developer happiness. Rails is designed for rapid application development and provides a streamlined experience.

c. Laravel

It is a PHP (Hypertext Preprocessor) web framework that is well-known for its elegant syntax and expressive features. It places a strong emphasis on simplicity and gives a wide range of built-in features, including routing, caching, and queueing. Similarly, Django, built on Python offers a comparable set of features.

How to deploy Django

Django provides a wide range of shortcuts to simplify the lives of web developers, but these tools are only valuable if deploying the sites is straightforward. From its inception, Django has prioritized ease of deployment as a significant objective. There are multiple deployment options available for the Django application, depending on the structure and specific business requirements. However, detailed discussions about deployment options are beyond the scope of Django's guidance. As a web framework, Django relies on a web server to function. Since most web servers do not congenitally support Python, an interface is needed to facilitate communication between the server and the Django application.19

Case Studies of Prominent Websites Built with Django

Instagram

Scalability

Instagram manages vast volumes of data and high user interactions, such as likes, comments, and shares. This requires a robust backend capable of handling largescale operations seamlessly. Django, with its ability to handle high-traffic applications, plays a crucial role here.

The framework's scalability ensures that Instagram can grow its user base without compromising performance.

Focus on UI/UX

With Django handling the backend complexities, the Instagram team can focus on enhancing the user interface (UI) and user experience (UX). This division of labour allows for a more polished and responsive application, as the development team can prioritize front-end improvements without being bogged down by backend issues.

Security

Django comes with built-in security features to protect against common threats like SQL injection, cross-site scripting (XSS), and cross-site request forgery (CSRF). This security framework is crucial for Instagram, where protecting user data is a top priority.

YouTube

Challenges with PHP

As the audience grew, the PHP-based architecture struggled with scalability and performance issues. Adding new features became cumbersome, slowing down the development process and impacting user experience.

Decision to transition

To address these challenges, the team opted to migrate to Django. This move was driven by Django's reputation for handling high-traffic websites, its robust feature set, and its ability to streamline development workflows.

Implementation

The transition involved rewriting the backend in Django, leveraging its ORM for efficient database management, and utilizing its built-in tools for rapid development. The team also took advantage of Django's strong security features to safeguard user data.

Advantages of Using Django

The advantages provided by Django enable the creation of the Python-based web applications mentioned above. These advantages can be summarized as follows:

a. Rapid development focus

Django was designed to assist developers in quickly translating ideas and concepts into functional code.

b. Proven versatility

Django is well suited for building a broad range of web applications, including fintech services, booking platforms, edtech portals, social networks, and online newspapers, among others. Its versatility makes it adaptable to various project requirements.20

Disadvantages of Django Framework

While Django offers extensive functionality for web development, like any technology, it also has certain disadvantages, primarily related to design considerations rather than performance. Some of these drawbacks include:

a. Steep learning curve

Django has a significant learning curve, especially for beginners with limited experience in web development. Its extensive features and conventions may require time and effort to grasp fully.

b. Dependency on Django ecosystem

As a framework, Django has its own ecosystem of libraries and packages. While this can be beneficial in terms of compatibility and community support, it can also result in a reliance on specific Django related tools, limiting options for integrating with other non-Django components or frameworks.21

Potential Areas for Further Research and Exploration

a. Chemical Database

Django is an ideal framework for developing a chemical database that efficiently stores and organizes information related to organic compounds. With Django's powerful features, you can design a database schema to represent the structures, properties, reactions and spectra of organic compounds accurately. By leveraging Django's built-in models, you can define the necessary fields and relationships to capture and manage this data effectively.

b. Drug Information Systems

With Django's extensibility, additional features can be incorporated into the platform, such as drug interaction checkers, personalized medication recommendations, or integration with electronic medical record (EMR) systems.

c. Reaction Prediction

By integrating Django with machine learning libraries and frameworks like TensorFlow or scikit-learn, the web application can deploy sophisticated models trained on vast chemical datasets. Django serves as a powerful framework for developing web applications that leverage machine learning algorithms to predict chemical reactions.22

d.  Pharmaceutical E-commerce

Online pharmacies: Build platforms for selling medications and health products online, complete with payment processing and delivery tracking.

Personalized recommendations: Utilize machine learning to offer personalized medication and health product recommendations based on user data.

e. Pharmacovigilance

Adverse event reporting: Create systems for monitoring and reporting adverse drug reactions, with real-time data analysis and alerts.

Drug safety monitoring: Implement tools for tracking and analysing drug safety data, including automated risk assessment and reporting for clinical trial management.

f. Pharmacy Management Systems

Inventory management: Develop systems to track drug inventory, manage stock levels, and automate reordering processes.

Prescription management: Implement features for electronic prescription processing, refill management, and tracking prescription history.

Conclusion

Django, being built on Python, benefits from the reputation and power of the Python language. Python is widely regarded as one of the most beginner friendly programming languages, making it a popular choice for newcomers.

When developers consider choosing a framework, they often think about its scalability for future growth. In this aspect, Django proves to be an excellent choice. It offers various scalability options, which include working different servers for the database, media, and application, as well as utilizing the choice between clustering, load balancing, or a combination of both depending on the specific requirements and characteristics of the application. The Django team has prioritized user and client satisfaction in the framework's design. Building an admin interface from scratch just to manage basic CRUD operations can be impractical. Which is why Django providing a comprehensive administrative interface, that is both proficient and adaptable. According to the documentation, developers can now focus on their development tasks while considering the presentation aspect of their applications.

Author's Contribution

Shubham Dhadil and Anshul Srivastava contributed equally

Conflict of Interest

Nil

Supporting File
References
  1. Django (web framework) [Internet]. Wikipedia. Available from: https://en.wikipedia.org/wiki/ Django_(web_framework). [Accessed 04 june 2023].
  2. History of Django [Internet]. Available from: https://www.mygreatlearning.com/django/tutorials/ history-of-django. [Accessed 04 june 2023]. 
  3. What is Django MTV Model Template View Architecture [Online]. Available from: https:// vegibit.com/what-is-djangos-mtv-model-templateview-architecture.
  4. What is python's Django Framework and How does it facilitate full-stack Development [Internet]. Available from: https://vegibit.com/what-is-pythons- django-framework-and-how-does-it-facilitate-fullstack-development/.
  5. George N. Mastering Django. Hamilton NSW, Australia: GNW Independent Publishing; 2020.
  6. Forcier J, Bissex P, Chun W. Python Web Development with Django. Adison Wesley; 2009. p. 80. 
  7. George N. The Model-View-Controller (Mvc) Design Pattern. In: Mastering Django. Hamilton NSW, Australia: GNW Independent Publishing; 2020. p. 35.
  8. Forcier J, Bissex P, Chun W. Python Web Development with Django. Adison Wesley; 2009. p. 117.
  9. Holovaty A, Kaplan-Moss J. Interacting with a Database: Models. In: The Definitive Guide to Django: Web Development Done Right. 2nd edition. Apress; 2009. p. 48.
  10. Holovaty A, Kaplan-Moss J. Configuring database. In: The Definitive Guide to Django: Web Development Done Right. 2nd edition. Apress; 2009. p. 50.
  11. W. Vincent, in Django for APIs: Build web APIs with Python and Django. WelcomeToCode; 2022. p. 56. 
  12. Django: The web framework for perfectionists with deadlines [Internet]. Available from: https://docs. djangoproject.com/en/3.2/topics/http/urls/.
  13. The Django admin site [Internet]. Available from: https://docs.djangoproject.com/en/3.2/ref/contrib/ admin/.
  14. Cross Site Scripting [Internet]. Available from: https://www.synopsys.com/glossary/what-is-crosssite-scripting.html.
  15. Cross Site Request Forgery [Internet]. Available from: https://www.imperva.com/learn/application-security/csrf-cross-site-request-forgery/.
  16. Berkley UC. How to protect against SQL injection attacks [Internet]. Available from: https://security. berkeley.edu/education-awareness/how-protect-against-sql-injection-attacks.
  17. Clickjacking Protection [Online]. Available: https:// book.hacktricks.xyz/pentesting-web/clickjacking .
  18. Security in Django [Internet]. Available from: https:// docs.djangoproject.com/en/4.2/topics/security/.
  19. How to deploy Django [Internet]. Available from: https://docs.djangoproject.com/en/4.2/howto/ deployment/. 
  20. Benefits of using Django [Online]. Available from: https://djangostars.com/blog/10-popular-sites-made-on-django/. 
  21. Django Advantages-and Disadvantages – Why You Should Choose Django? [Internet]. Available from: https://data-flair.training/blogs/django-advantages and-disadvantages/.
  22. Django Project [Internet]. Available from: https:// docs.djangoproject.com/en/3.2/integrations/.
HealthMinds Logo
RGUHS Logo

© 2024 HealthMinds Consulting Pvt. Ltd. This copyright specifically applies to the website design, unless otherwise stated.

We use and utilize cookies and other similar technologies necessary to understand, optimize, and improve visitor's experience in our site. By continuing to use our site you agree to our Cookies, Privacy and Terms of Use Policies.