Setup and Create your First Django Application
Tags: webdev, django, tutorial
Published: 2022-08-07 10:57:00

Django is a python based high-level web framework which is primarily known for rapid development. It supports the Model View Controller (MVC) pattern.

You can observe multiple websites that are built on this framework such as:

- [Instagram](https://www.instagram.com/)

- [Pinterest](https://in.pinterest.com/)

- [Open Stack](https://www.openstack.org/)

If you're new to web development, Django is a fairly easy framework to understand and work on. This was my first web framework and I would suggest it if:

- Your project involves Machine Learning models or is of Scientific nature

- You have some experience or knowledge of Python

---

## Pre-requisites

While Django framework is much simpler to setup relative to other technologies, some fundamental pre requisites include:

- **Installation of Python** If python is not installed, [click here](https://www.python.org/downloads/) and install one of the newer versions of python.

- **Basics of Python** Concept of OOPs, loops and conditional statements, data types and variables, functions and basic data structures are sufficient to get started.

---

## Setup Django

Create a new folder at your desired location and open the same in the terminal

```
PS C:\Users\Manasa\Desktop\first_project>
```
Create a **virtual environment** to install Django

```
PS C:\Users\Manasa\Desktop\first_project> python -m venv env
```
Here, **env** is the name of your virtual environment.

A virtual environment is created for you to install a custom version of Python and its different packages which is not connected to the global installation on the server.

Once the environment is created, activate it by running the command

```
PS C:\Users\Manasa\Desktop\first_project> env/scripts/activate
```
Activated environment should look like this:

```
(env) PS C:\Users\Manasa\Desktop\first_project>
```
Now, install Django

```
 pip install django
```
You can check the installation by calling django-admin
It should give this output:

```
(env) PS C:\Users\Manasa\Desktop\first_project> django-admin

Type 'django-admin help <subcommand>' for help on a specific subcommand.

Available subcommands:

[django]
    check
    compilemessages
    createcachetable
    dbshell
    diffsettings
    dumpdata
    flush
    inspectdb
    loaddata
    makemessages
    makemigrations
    migrate
    optimizemigration
    runserver
    sendtestemail
    shell
    showmigrations
    sqlflush
    sqlmigrate
    sqlsequencereset
    squashmigrations
    startapp
    startproject
    test
    testserver
Note that only Django core commands are listed as settings are not properly configured (error: Requested setting INSTALLED_APPS, but settings are not configured. You must either define the environment variable DJANGO_SETTINGS_MODULE or call settings.configure() before accessing settings.).
(env) PS C:\Users\Manasa\Desktop\first_project>
```

---

## Create Project

Now that Django is successfully installed, you can create your project and applications.

Run the following command

```
 django-admin startproject first_project .
```
Here, your project is named 'first_project'.

NOTE: '.' at the end of the command is essential as the project structure by default makes the file manage.py inaccessible to a number of files. This can cause numerous errors going ahead.

Now, create your app by running the command

```
 django-admin startapp myapp
```
Here, your application is named 'myapp'.

Now that your project and application are created, use manage.py to make further changes.

Its functionality can be observed by the following command.

```
(env) PS C:\Users\Manasa\Desktop\first_project> python manage.py

Type 'manage.py help <subcommand>' for help on a specific subcommand.

Available subcommands:

[auth]
    changepassword
    createsuperuser

[contenttypes]
    remove_stale_contenttypes

[django]
    check
    compilemessages
    createcachetable
    dbshell
    diffsettings
    dumpdata
    flush
    inspectdb
    loaddata
    makemessages
    makemigrations
    migrate
    optimizemigration
    sendtestemail
    shell
    showmigrations
    sqlflush
    sqlmigrate
    sqlsequencereset
    squashmigrations
    startapp
    startproject
    test
    testserver

[sessions]
    clearsessions

[staticfiles]
    collectstatic
    findstatic
    runserver
(env) PS C:\Users\Manasa\Desktop\first_project>
```
If this command throws an error, check whether you added '.' while creating the project.

The next step is optional but **recommended**. Migrate the initial changes by running the command

```
 python manage.py migrate
```
This command sets up the default database that Django provides.

Finally, run the server locally. The following command should give the result.

```
(env) PS C:\Users\Manasa\Desktop\first_project> python manage.py runserver
Watching for file changes with StatReloader
Performing system checks...

System check identified no issues (0 silenced).
August 07, 2022 - 16:21:53
Django version 4.1, using settings 'first_project.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CTRL-BREAK.
```
**http://127.0.0.1:8000/** is the link to the locally hosted application

If you see this page on following the link:


![Django Project Hosted](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/7iz8yjc7xusyn5752rjd.jpg)

Your project is successfully set up and ready to run!