Join us and get access to thousands of tutorials and a community of expert Pythonistas.
This lesson is for members only. Join us and get access to thousands of tutorials and a community of expert Pythonistas.
Setting Up a Django Project
00:00 In this lesson, you will finally start working with the Django package that you installed in the previous lesson and you will use it to set up a Django project.
00:09 Before you do that practically, let’s take a little detour and just talk about the difference between Django projects and Django apps, because these are two specific terms that have a meaning for Django and it’s good to have an overview understanding of what each of them are.
00:25 So, a Django project is a larger-scale structure. A Django project can contain multiple apps and generally when you set up a Django project, you get this larger-level structure plus a management app.
00:39 The management app is a Django app, but it is a special one in that case, so any other app that you will set up following this one is going to be a bit different, but they’re going to be the same to each other.
00:51
But what you are going to do in this lesson is set up a Django project, which means this larger-level structure plus the management app. And the command for doing this is django-admin startproject and then you give it a name—a name that you want your project to have.
01:09
For this example, I will call the project setup, so my command will be django-admin startproject setup. Let’s head over to VS Code and do that practically and see what happens.
01:23
Over here with my activated virtual environment, I’m ready to start a Django project by typing django-admin startproject, and then give it a name, and I said it’s going to be setup for here.
01:39 So once I type this, I can press Enter and let Django do its thing. It’s already done. You can see a new folder pop up here in the folder structure. And this is the project folder, so you can think of it as the black square.
01:53
It contains a couple of things. It contains another folder of the same name and then a file called manage.py. Let’s look at this in a schema, what happened here.
02:05
So, running the command django-admin startproject setup gave us this structure here. So that was the folder that I was in when running the command, and it created a folder called setup/ with some other stuff in there.
02:21 Let’s actually walk over the most important things step-by-step, but keep in mind that what you created here now is this black square with the management app inside of it.
02:31
So setup/ is the black square and the nested setup/ is the red management app.
02:39
And just to drive the point home, let’s look at this step-by-step. So, you’re inside of the current folder, you ran a command, you get one folder in there called setup/.
02:48
This is your project folder for your Django project and it then contains another folder of the same name—in this case, it’s called setup/ because that’s the project name you gave, so setup/setup/.
03:01 That’s down here, this is your management app for your Django project and it contains a couple of files that you can check out.
03:09
And then, finally, it also contains a Python file called manage.py, which is the command center of your app and you will use this file quite often when you interact on a project level—for example, when you do some tasks involving the database or if you want to create a superuser, then this is where the commands for this live and this is part of your Django project.
03:33
All right! So, you might wonder “Why do you have this double?” Like, why do we have setup/ and then another setup/ in here and isn’t that kind of, like, superfluous?
03:43 And there are ways of skipping one level of these directories by just essentially declaring the current folder that you’re in as your Django project folder.
03:53 And in the next lesson, I will show you how to do that.
Become a Member to join the conversation.