DEV Community

Harlin Seritt
Harlin Seritt

Posted on

Django Project Setup and Package Mangament

The proper way to create a Django project is by using the Django command-line utility, django-admin, which is automatically installed when you install Django.

Steps to create a new Django project:

  1. Open a terminal or command prompt window.
  2. Navigate to the directory where you want to create your new Django project.

  3. Run the following command:

django-admin startproject myproject
Enter fullscreen mode Exit fullscreen mode

This command creates a new directory called myproject in the current directory, which contains the basic file structure for a new Django project. The myproject directory contains a manage.py file and a subdirectory with the same name, which contains the settings.py, urls.py, asgi.py and wsgi.py files.

  1. Once you've created the project, you can navigate into the project directory
cd myproject
Enter fullscreen mode Exit fullscreen mode
  1. Run the development server to check if everything is working
python manage.py runserver
Enter fullscreen mode Exit fullscreen mode

This will start the development server on port 8000 by default, you can visit http://127.0.0.1:8000/ to see the default welcome page.

  1. And you can create an app inside your project:
python manage.py startapp myapp
Enter fullscreen mode Exit fullscreen mode

This will create a new directory called myapp in the project directory, which will contain the basic file structure for a new Django app.

Note that myproject and myapp are placeholders and you can use any name you want for your project and app.

Additionally, you can use the django-admin startproject --template option to use a project template, or you can use a package like "cookiecutter" to create a Django project with a pre-configured structure and settings.

It's also important to note that you need to have Python and Django installed in your computer before creating a project with django-admin.

Virtual Environments

A virtual environment is a way to create an isolated Python environment where you can install and manage different versions of Python packages without interfering with other projects. It is a recommended practice to create a virtual environment for each of your Django projects.

Here are the steps to set up a virtual environment for a Django project:

  1. Open a terminal or command prompt window.
  2. Navigate to the directory where you want to create your virtual environment.
  3. Run the following command to create a new virtual environment:
python -m venv myenv
Enter fullscreen mode Exit fullscreen mode

This command creates a new directory called myenv in the current directory, which contains the necessary files for an isolated Python environment.

  1. Once the virtual environment is created, activate it by running the following command:
source myenv/bin/activate
Enter fullscreen mode Exit fullscreen mode

On Windows, the command is:

myenv\Scripts\activate.bat
Enter fullscreen mode Exit fullscreen mode
  1. After the virtual environment is activated, you can verify that you are using the correct version of Python by running
python --version
Enter fullscreen mode Exit fullscreen mode
  1. Next, you can install Django in the virtual environment by running:
pip install django
Enter fullscreen mode Exit fullscreen mode

Once you've created the virtual environment, you can navigate into the project directory

cd myproject
Enter fullscreen mode Exit fullscreen mode

Now that you have the virtual environment setup, you can install any additional packages your project needs using pip, for example:

pip install requests
Enter fullscreen mode Exit fullscreen mode

And you can run the development server to check if everything is working

python manage.py runserver
Enter fullscreen mode Exit fullscreen mode

When you're done working on your project and want to exit the virtual environment, you can deactivate it by running the command:

deactivate
Enter fullscreen mode Exit fullscreen mode

It's worth noting that virtual environments are optional but highly recommended, they allow you to keep your projects isolated and prevent conflicts between different versions of libraries and packages.

Pip Tools

pip-tools is a package that allows you to easily manage the packages and dependencies of your Django project. It includes two main tools: pip-compile and pip-sync, which help you to create and manage a requirements.txt file, that lists all the packages and versions that your project depends on.

Here are the steps to install and use pip-tools for your Django project:

First, activate your virtual environment, if you have one set up, by running the command:

source myenv/bin/activate
Enter fullscreen mode Exit fullscreen mode

On Windows, the command is:

myenv\Scripts\activate.bat
Enter fullscreen mode Exit fullscreen mode

Next, install pip-tools by running:

pip install pip-tools
Enter fullscreen mode Exit fullscreen mode

Once pip-tools is installed, you can create a new file called requirements.in in the root of your project directory. This file will list all the packages and versions that your project depends on. For example:

Django==3.2
requests==2.24.0
Enter fullscreen mode Exit fullscreen mode

Now you can use pip-compile to create the requirements.txt file, which will include all the packages and versions including the ones that are dependencies of your packages.

pip-compile requirements.in
Enter fullscreen mode Exit fullscreen mode

To update or add new packages to your project, you can edit the requirements.in file and then re-run pip-compile to update the requirements.txt file.

To install the packages listed in the requirements.txt file, you can use the pip-sync command.

pip-sync
Enter fullscreen mode Exit fullscreen mode

If you need to add a new package and its dependencies to your project, you can use the pip install command, and then use pip-compile to update the requirements.txt file.

pip install new_package
pip-compile requirements.in
Enter fullscreen mode Exit fullscreen mode

Once you have the requirements.txt file, you can use it to set up your development or production environment by running pip install -r requirements.txt.

Using pip-tools is an easy way to manage the dependencies of your project, it allows you to keep track of the packages and versions that your project depends on, and to easily reproduce your development or production environments.

Pipenv

pipenv is another tool that can be used to manage the packages and dependencies of your Django project. It provides a more advanced and user-friendly interface compared to pip and pip-tools. Here are the steps to install and use pipenv for your Django project:

First, you need to install pipenv by running:

pip install pipenv
Enter fullscreen mode Exit fullscreen mode

Once pipenv is installed, you can use it to create a new virtual environment for your project by running:

pipenv install --python 3.11
Enter fullscreen mode Exit fullscreen mode

This will create a new virtual environment and install the latest version of python 3.11 in it.

Once the virtual environment is created, you can activate it by running:

pipenv shell
Enter fullscreen mode Exit fullscreen mode

Now you can use pipenv to install the packages that your project depends on. For example, to install Django, you can run:

pipenv install django==4.1
Enter fullscreen mode Exit fullscreen mode

pipenv will automatically update the Pipfile and Pipfile.lock files which are used to manage the packages and dependencies of your project. The Pipfile file lists all the packages and versions that your project depends on, while the Pipfile.lock file lists all the packages and versions that were actually installed, including their dependencies.

To add more packages to your project, you can use the pipenv install command. For example, to install the requests package, you can run:

pipenv install requests==2.24.0
Enter fullscreen mode Exit fullscreen mode

To check the packages that are currently installed in your virtual environment, you can use the pipenv graph command.

You can use the pipenv lock command to lock the current versions of packages, so that they can be used in another environment.

To install all the packages listed in the Pipfile and Pipfile.lock files, you can use the pipenv install --ignore-pipfile command.

To remove a package from your virtual environment and from the Pipfile and Pipfile.lock files, you can use the pipenv uninstall command.

Using pipenv is an easy way to manage the dependencies of your project, it allows you to keep track of the packages and versions that your project depends on, and to easily reproduce your development or production environments.It also allows you to easily switch between different python versions, and use different environment variables for different projects.

Top comments (1)

Collapse
 
sloan profile image
Sloan the DEV Moderator

Hey, this article seems like it may have been generated with the assistance of ChatGPT.

We allow our community members to use AI assistance when writing articles as long as they abide by our guidelines. Could you review the guidelines and edit your post to add a disclaimer?

An Animated Guide to Node.js Event Loop

>> Check out this classic DEV post <<