Comment commencer un projet Django

Django Docker Docker Compose

Franck

Date publication: Oct. 22, 2019, 3:14 p.m.
Dernière mise à jour: Oct. 25, 2019, 3:14 p.m.


Django - Photo by Artem Sapegin on Unsplash

Voici quelques étapes pour bien démarrer un projet Django


Aujourd'hui je vous propose de voir comment bien démarrer un projet Django et Docker.

Installation

Pour commencer il va nous falloir un fichier DockerFile qui va nous permettre de créer l'image avec tous les services necessaire dedans. Ajouter ceci dans un fichier DockerFile.

FROM python:3
ENV PYTHONUNBUFFERED 1
RUN mkdir /code
WORKDIR /code
COPY requirements.txt /code/
RUN pip install -r requirements.txt
COPY . /code/

Premièrement nous prenons l'image de Python:3, ensuite nous disons de ne pas mettre en memoire tampon la sortie de Python dans la mémoire tampon de sortie standard, mais simplement de l'envoyer directement au terminal.

Nous créeons un dossier code et nous copions le fichier requirements.txt dans code

Ensuite nous installons les dépendances incluses dans le fichier requirements.tx

et pour finir nous copions tout ce qui il a au premier niveau dans le dossier code.

Création du fichier requirements.txt

Django>=2.0,<3.0
psycopg2>=2.7,<3.0

Dans le fichier requirements.txt nous avons Django et Posgres pour la base de donée.

Nous créons ensuite le fichier docker-compose.yml qui facilitera l'utilisation de Docker.

version: '3'

services:
  db:
    image: postgres
  web:
    build: .
    command: python manage.py runserver 0.0.0.0:8000
    volumes:
      - .:/code
    ports:
      - "8000:8000"
    depends_on:
      - db

Nous voyons ici que nous avons 2 services, db pour la base de donnée et web pour notre application Django.

Nous avons aussi la commande python manage.py runserver 0.0.0.0:8000 pour pouvoir lancer notre application sur le port 8000.

A partir de maintenant, nous avons tout ce qu'il nous faut pour pouvoir travailler.

Création de l'Application

Premièrement je vous propose de construire l'image docker. Pour cela lancer la commande suivante dans votre terminal

docker-compose build

Maintenant, nous allons pouvoir créer notre projet Django (ne pas oublier le point a la fin).

docker-compose run web django-admin startproject monexemple .

Si vous êtes sous Linux vous aurez peut être besoin d'ajuster les droits de fichiers pour cela faire :

sudo chown -R $USER:$USER .

Connection à la base de données.

Changer le fichier monexemple/settings.py de votre application pour pouvoir faire la connection avec votre base de données.
 

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.postgresql',
        'NAME': 'postgres',
        'USER': 'postgres',
        'HOST': 'db',
        'PORT': 5432,
    }
}

Ensuite lancer la commande suivante pour démarrer le tout.

docker-compose up 

Si vous allez sur dans votre navigateur a l'adresse suivante: http://localhost:8000

vous devriez avoir ceci:
Image de depart de Django
Félicitation, maintenant il ne vous reste plus qu'a coder votre superbe application.