How to start learning Python Django
This article has affiliate links at no cost to you!
Are you thinking about being a full-stack Python Django web developer?
Or maybe you have learned the Python programming language and want to advance and create more real-world projects?
So, how do you start learning Python Django?
- Learn the basics of HTML, CSS, and how the overall web works.
- Next, learn Python programming language and understand the basic concepts of functions and classes. Make sure you understand the basics of object-oriented programming concepts such as classes, inheritance, polymorphism, etc.
- Learn one relational database such as MySQL or PostgreSQL. You should learn the basics of relational databases and familiarize yourself with relational database concepts such as tables, columns, primary keys, foreign keys, relationships, etc.
- Gain practical experience by building a simple but functional web application with Django as a backend framework and connecting it to one of the SQL databases for storing data.
Well, Python Django is a great web framework you should learn after learning more advanced concepts of Python.
But before you dive right in, you need to have learned some things to be a better Python Django web developer.
As you want to learn Python Django, there are things you need to know first so that you can understand how Python Django and the web generally work.
Moreover, you need to know what Python Django is and what it is used for.
So, without wasting time, let’s start with the prerequisites to learning Python Django.
1. You need to know the Basics of Python
Django is a Python web framework used in backend development. It is a very versatile framework used to build fast and scalable web applications. As Django uses Python syntax and concepts, you should know the basics of Python programming language before you start to learn Django.
Thus, ensure that you know these Python programming concepts:
Python basics
Before learning Django, ensure that you know Python fundamentals such as iterables, variable declaration, looping, conditional formatting, dictionaries, functions, decorators, modules, and packages.
Object-oriented programming in Python
There are concepts used in Django that are implemented in the object-oriented paradigm. Thus, before learning Django, ensure that you know classes, objects, inheritance, polymorphism, methods, and encapsulation concepts.
In summary, classes are code templates that are used to create objects.
An object in Python is a collection of variables and methods that operate as one unit.
If you’re unfamiliar with these concepts, ensure that you understand them well before diving into learning Python Django.
2. You need to know how relational databases operate
To store data, you will need a database.
Most importantly, a relational database that stores data in the form of rows and columns.
Thus, if you’re familiar with relational database concepts such as tables, keys, and relationships, creating tables and relationships, understanding how data is stored and retrieved from the database by Django will be easier.
3. You should know some HTML & CSS or Bootstrap
As the goal of learning Django is to develop web applications, you should know how to create responsive and attractive web pages.
Django templates use HTML and CSS when generating web pages for your web application. Thus, it is required to know HTML and CSS if you’re aiming to implement your Django website using this method.
However, learning HTML and CSS should not concern you if your goal is to be purely a backend developer.
If you will constantly be creating APIs using Django, learning HTML and CSS should not be a priority if you’re purely concerned with API development.
After you’re good at the above technologies and concepts, you should start learning Django.
Before you get your hands dirty, you should know what Django is and what you will use it for after learning it.
There is a reason why most programmers fail: they fail to identify a goal or an objective before learning a programming language or framework.
Tip: To succeed at programming or any other field, identify a goal before you start learning the technologies or tools.
If you have no goal, you will end up learning technology after technology without having an end to it.
So, what do I mean?
You should only learn Python if your goal involves using Python to realize the execution of the milestones of your goal. It would make no sense to learn PHP, Python, and JavaScript and then endeavor on a plan.
You will find that among the technologies you know, you will rarely use some of them. So, what will be the point of learning? None!
Make a plan that entails why you’re learning how to program with Python or Django.
Be it web development.
Then, based on the plan, identify the technologies needed to complete that goal. After identifying the technologies, start learning these technologies as you execute various milestones contributing to the larger goal.
The same for Django; if you plan to be a web developer or Python backend developer, learning Django should be part of the process.
Learning Django should contribute to realizing your dream – probably becoming a freelance Python Django developer.
So, what is Django, and what is it used for?
What is Django?
Django is a free and open-source web framework used for building web applications with Python. Django helps web developers develop websites in less time and code. Django has many features that make your programming task easier as you do not have to code some functionalities from scratch.
Django is referred to as a “Batteries included” framework. This means that Django comes with many features and functionalities that you do not have to code from scratch.
Django gives you an admin interface for managing data and users, authentication features for managing users, and caching, among many others.
Another cool feature of Django is the Object Relational Mapper (ORM) used to create, query, and process data from the database without writing SQL code.
Thus, as a web developer, you should focus on writing business logic code without reinventing the wheel.
You do not have to create an admin interface to manage data or users from scratch.
But rather, focus on what is needed in the admin interface, how it is processed, and how it is presented.
Django has been around for years. Thus, it is a mature web framework that has enhanced features that have been tested over a couple of years. Moreover, finding help, work, or other Django web developers is easy because Django has a large community of open source developers, enthusiasts, and companies that use it.
Do the Django features highlighted below align with your goals? If so, you should start learning Django right away.
If you love programming in Python and want to get into web development, learning Django is the best strategy for realizing your web developer goal.
Now that we know what Django is, let’s see how Django works.
How does Django work?
As Django is used for developing web applications, you should know how the web works.
To access a web application or website, you type in the URL, for example, ngangasn.com, on your browser. The process is called “pointing to a URL.”
A website has two parts: the frontend and the backend.
The frontend part of a website is loaded on a client application such as a browser. The users on your website use this part of the website to interact with your Django web application.
The backend part of a website is loaded on a server, where it is used to process data, validate business logic, and manage data.
So, a user, let’s name her Cupcake, visits your website by pointing to the URL address of our website, ngangasn.com using a browser.
URL is Uniform Resource Locator. URL is used to locate a resource on the internet. The resources could be a page, image, video, or document.
When Cupcake points to our URL and hits enter, a request is sent to the server that hosts our Django website. The request instructs the server that Cupcake wants to see the homepage of our web application.
So, the web server takes the request, processes it, and returns a response to the client application.
In this case, the server will send an HTML document with data of our home page to Cupcake.
HTML is a hypertext markup language. HTML is used on every website on the web. HTML defines the structure and contents of a web page.
For data exchange, the server and the client must agree on how to communicate.
The HTTP protocol defines the communication between a server and a client application. HTTP is the short form for Hypertext Transfer Protocol. HTTP defines how clients and servers communicate and send data.
So, HTTP facilitates a client sending a request and the server sending a response.
On the server side, a programmer defines the process of how to respond to the client.
There are two possible ways of responding to a request: using HTML or using API.
Using HTML as HTTP response
Upon making a request, let’s say users point to the home page of our Django website, the web server generates an HTML page and returns it to the client.
Therefore, the web server handles business logic processing and the generation of HTML pages for the client.
Using data as HTTP response (APIs in Django)
Another approach is to return only data whenever a client makes a request to our Django web application.
The server sends data to the client.
So, instead of sending a whole HTML document in an HTTP response, the server only returns data to the client.
For example, the web server may return a list of all blog posts in our Django blog.
The client part of our website generates the HTML page for itself. We push the responsibility of generating HTML pages to the client.
The advantage is that we free up the server processing load.
The server can serve more users accessing our website at the same time. The Django web application will be more scalable.
Technologies used on the client-side of a Django web application may include but are not limited to:
- React
- Angular
- Vue
These technologies are used to create beautiful and responsive web pages.
On the other hand, Django is used as a server-side technology to process the business logic of our website.
Other technologies you may use for backend development are:
- ASP.NET CORE framework used by C# developers.
- Express for JavaScript developers.
The main aim of separating how HTML documents are generated and pushing the processing to the client is to reduce server load.
Moreover, you can scale your Django web application to include other endpoints that clients can talk to, get, or save various pieces of data.
So, instead of having the home / endpoint only, you can have /blog, /shop, /order, etc.
For this example, the /blog endpoint returns a list of blog posts on your Django website. On the /shop endpoint, you can return a list of items you’re selling on your website.
After you connect all these endpoints within your Django project, you have an interface.
An interface contains various endpoints that client applications can connect to.
The Application Programming Interface (API) is used by users (clients) to interact with the Django website.
APIs are used by client applications to get and save data on the web server.
Therefore, if you take the approach of creating API, Django is the best framework to create APIs. You can create APIs for blogs, e-commerce, and e-learning websites.
Now that you understand what Django is and how you can use it to develop various types of web applications, go ahead and choose an approach that meets your goal.
If you want more information on how servers work generally, click this link to open an article.
For Django web servers, follow this link to know how Django sends and receives HTTP data.
If you want to create a basic web application, using HTML templates and Django may be the best approach. On the other hand, if you want to create a complex web application with various endpoints, such as an e-commerce website, use Django to create APIs.
For a course that I would always take if I was a complete beginner and wanted to master Python Django within a short time, this would be one:
Django 4 and Python Full-Stack Developer Masterclass
This course offers a comprehensive solution to all your problems. Whether you are struggling with creating responsive and dynamic Django websites or connecting your Django web app to an SQL database, this course is for you.
First, you’ll learn the basics of HTML and CSS, essential for creating static elements and stylish, responsive layouts with Bootstrap.
Then, you’ll dive into Django, mastering the essentials of function and class-based views, the powerful Django Template Language, and Django Models for interacting with your SQL backend.
With this course, you’ll have all the tools necessary to create professional-grade Django web applications that look great and work flawlessly.
So why wait? Enroll today and start your journey toward becoming a successful Django developer!
That’s it for this article. See you guys!