Pour démarrer un nouveau projet Django, vous devez utiliser la commande django-admin
. Cette commande vous permet de créer un répertoire de projet et quelques fichiers de base pour votre application Django. Par exemple, si vous souhaitez créer un projet appelé my_project
, vous pouvez exécuter cette commande dans votre terminal :
django-admin startproject my_project
├──
Le fichier manage.py
est un script qui vous permet d'effectuer diverses tâches pour votre projet, telles que l'exécution du serveur de développement, la création de migrations de bases de données et le test de votre code. Le répertoire project/
contient les paramètres et les fichiers de configuration de votre projet.
Le fichier settings.py
définit les principaux paramètres de votre projet, tels que la connexion à la base de données, les applications installées et le middleware. Le fichier urls.py
mappe les URL de votre projet aux vues de vos applications.
python manage.py runserver
manage.py
: Un script qui fournit diverses commandes pour gérer votre projet, telles que la création d'applications, la migration de la base de données et le test de votre code.
project/
: Un répertoire qui contient les paramètres et les fichiers de configuration de votre projet. Les principaux fichiers de ce répertoire sont :
`settings.py`: A file that defines the main settings for your project, such as the database connection, the installed apps, and the middleware. You can customize this file to suit your needs and preferences. `urls.py`: A file that maps the URLs of your project to the views of your apps. You can define different URL patterns for different parts of your web application.
apps/
: Un répertoire qui contient toutes les applications Django qui composent votre projet. Chaque application Django est un package Python distinct qui fournit une fonctionnalité ou une fonctionnalité spécifique pour votre application Web. Vous pouvez créer vos propres applications ou utiliser celles existantes provenant de sources tierces.
python manage.py runserver
python manage.py test
Ran 1 test in 0.001s Ok
FROM python:3.9 #Install Django and other required packages RUN pip install django # Copy the Django project files into the image COPY ./app # Set the working directory WORKDIR /app # Start the Django development server CMD ["python", "manage.py", "runserver", "0.0.0.0:8000"]
version: "3.9" services: web: build: ports: -"8000:8000" volumes -./:/app db: image: postgres:14.0-alpine volumes: -./postgres:/var/lib/postgresql/data
Ce fichier docker-compose.yml définit deux services : web
et db
. Le service web
construira l'image Docker à partir du fichier Docker que nous avons créé dans la section précédente. Le service web
exposera également le port 8000 sur la machine hôte afin que nous puissions accéder au serveur de développement Django.
Le service db
utilisera l'image Docker officielle de PostgreSQL. Le service db
montera également le répertoire postgres
sur la machine hôte dans le répertoire /var/lib/postgresql/data
à l'intérieur du conteneur. Cela garantira que les fichiers de base de données sont conservés entre les redémarrages du conteneur.
docker-compose up -d
Vous pouvez également vous connecter à la page d'administration de Django à l' //localhost:8000/admin/
. Le nom d'utilisateur et le mot de passe sont admin
et admin
par défaut.
- Accédez à votre page de profil et cliquez sur le bouton Nouveau à côté de Dépôts .
- Donnez un nom à votre référentiel, tel que django-docker-app
, et ajoutez éventuellement une description.
- Cliquez sur le bouton Créer un référentiel .
- Accédez au dossier de votre projet Django dans le terminal et tapez git status
pour voir l'état actuel de votre référentiel. Vous devriez voir quelque chose comme ceci :
On branch main Your branch is up to date with 'origin/main'. Changes not staged for commit: (use "git add <file>..." to update what will be committed) (use "git restore <file>..." to discard changes in working directory) modified: Dockerfile modified: docker-compose.yml modified: requirements.txt no changes added to commit (use "git add" and/or "git commit -a")
Cela signifie que certains fichiers modifiés ne sont pas préparés pour la validation. Pour les préparer à la validation, vous devez utiliser la commande git add
.
- Tapez git add
. pour préparer tous les fichiers modifiés à valider. Vous pouvez également spécifier les noms de fichiers que nous souhaitons mettre en scène, tels que git add
Dockerfile docker-compose.yml
requirements.txt
.
- Tapez à nouveau git status
pour voir l'état mis à jour de notre référentiel. Vous devriez voir quelque chose comme ceci :
On branch main Your branch is up to date with 'origin/main'. Changes to be committed: (use "git restore --staged <file>..." to unstage) modified: Dockerfile modified: docker-compose.yml modified: requirements.txt
Cela signifie que certaines modifications sont prêtes à être validées. Pour les valider, vous devez utiliser la commande git commit
.
- Tapez git commit -m "Add Docker configuration files"
pour valider les modifications par étapes avec un message décrivant ce que nous avons fait. Alternativement, vous pouvez omettre l'indicateur -m
et saisir un message plus long dans un éditeur qui s'ouvrira après avoir tapé git commit
.
- Tapez à nouveau git status
pour voir l'état final de notre référentiel. Vous devriez voir quelque chose comme ceci :
On branch main Your branch is ahead of 'origin/main' by 1 commit. (use "git push" to publish your local commits) nothing to commit, working tree clean
Cela signifie que vous avez un commit qui n'est pas encore poussé vers le référentiel distant. Pour le pousser, vous devez utiliser la commande git push
.
- Tapez git push origin main
pour pousser votre commit local vers le référentiel distant sur GitHub.
Vous pouvez également spécifier le nom distant et le nom de la branche que vous souhaitez transmettre, par exemple git push origin main
.
- Allez sur et cliquez sur le bouton Inscription .
- Remplissez les informations requises, telles que le nom, l'e-mail, le mot de passe, etc. - Choisissez un langage de développement principal, tel que Python.- Cliquez sur le bouton Créer un compte gratuit .
- Consultez notre e-mail et cliquez sur le lien pour vérifier notre compte.
- Ouvrez un terminal et tapez heroku --version
pour vérifier que l'installation a réussi. Vous devriez voir quelque chose comme ceci :
heroku/7.59.0 win32-x64 node-v12.21.0
- Accédez au dossier de votre projet Django dans le terminal et tapez heroku login
pour vous connecter à votre compte Heroku à l'aide de l'outil Heroku CLI. Il vous sera peut-être demandé de saisir votre adresse e-mail et votre mot de passe ou d'utiliser un navigateur Web pour vous authentifier.
- Tapez heroku create django-docker-app
pour créer une nouvelle application Heroku avec le nom django-docker-app
. Alternativement, vous pouvez omettre le nom et laisser Heroku générer un nom aléatoire pour vous. Vous devriez voir quelque chose comme ceci :
Creating ⬢ django-docker-app... done //django-docker-app.herokuapp.com/ | //git.heroku.com/django-docker-app.git
- Tapez heroku config:set SECRET_KEY=<your_secret_key>
pour définir une variable d'environnement pour le paramètre SECRET_KEY de notre projet Django. Vous devez remplacer <your_secret_key>
par une chaîne aléatoire que vous pouvez générer à l'aide d'un outil comme .
Vous pouvez également utiliser la clé secrète existante que vous avez dans votre fichier settings.py , mais cela n'est pas recommandé pour des raisons de sécurité.
- Tapez heroku addons:create heroku-postgresql:hobby-dev
pour ajouter un module complémentaire de base de données PostgreSQL gratuit à votre application Heroku. Cela créera une nouvelle base de données pour votre projet Django et définira une variable d'environnement pour le paramètre DATABASE_URL de votre projet Django. Vous devriez voir quelque chose comme ceci :
Creating heroku-postgresql:hobby-dev on ⬢ django-docker-app... free Database has been created and is available ! This database is empty. If upgrading, you can transfer ! data from another database with pg:copy Created postgresql-curved-12345 as DATABASE_URL Use heroku addons:docs heroku-postgresql to view documentation
Cela signifie que vous avez ajouté un module complémentaire de base de données PostgreSQL portant le nom PostgreSQL-curved-12345 et l'URL DATABASE_URL .
- Tapez heroku config
pour voir la liste des variables d'environnement que vous avez définies pour votre application Heroku. Vous devriez voir quelque chose comme ceci :
=== django-docker-app Config Vars DATABASE_URL: postgres://<username>: <password>@<host>:<port>/<database> SECRET_KEY: <your_secret_key>
Cela signifie que vous disposez de deux variables d'environnement, DATABASE_URL et SECRET_KEY , que vous pouvez utiliser dans les paramètres de votre projet Django.
Comment déployer votre projet Django sur Heroku à l'aide de la commande ` heroku
` ?
Pour déployer notre projet Django sur Heroku à l'aide de la commande heroku
, vous devez suivre ces étapes :
- Accédez au dossier de votre projet Django dans le terminal et tapez heroku container:login
pour vous connecter au Heroku Container Registry à l'aide de l'outil Heroku CLI. Cela vous permettra de pousser notre image Docker vers Heroku.
- Tapez heroku container:push web -a django-docker-app
pour créer et transférer votre image Docker vers Heroku. Vous devez spécifier le nom de votre application Heroku, qui est django-docker-app dans ce cas. Vous devriez voir quelque chose comme ceci :
=== Building web (Dockerfile) Sending build context to Docker daemon 1.024kB Step 1/9 : FROM python:3.9-slim ---> 7f5b6ccd03e9 Step 2/9 : ENV PYTHONUNBUFFERED 1 ---> Using cache ---> 64b5d0e40a22 Step 3/9 : RUN mkdir /code ---> Using cache ---> 4d8c638f2b6c Step 4/9 : WORKDIR /code ---> Using cache ---> e69c02a028cd Step 5/9 : COPY requirements.txt /code/ ---> Using cache ---> 8f0f3e0f2d8c Step 6/9 : RUN pip install -r requirements.txt ---> Using cache ---> 0f7b497d81ed Step 7/9 : COPY . /code/ ---> Using cache ---> c0a8e9a32b16 Step 8/9 : EXPOSE 8000 ---> Using cache ---> a1d36a4a2da4 Step 9/9 : CMD ["gunicorn", "django_docker.wsgi", "--bind", "0.0.0.0:8000"] ---> Using cache ---> f7f3c0418a1d Successfully built f7f3c0418a1d Successfully tagged registry.heroku.com/django-docker-app/web:latest === Pushing web (Dockerfile) The push refers to repository [registry.heroku.com/django-docker-app/web] f7f3c0418a1d: Pushed latest: digest: sha256:6cbbf22cf6aa60e0343e6d8e7c4c2eeb2e cb8fd5e82a42dfe5f4aeeb15af89ec size: 528 Your image has been successfully pushed. You can now release it with the 'container:release' command.
- Tapez heroku container:release web -a django-docker-app
pour publier notre image Docker sur notre application Heroku. Vous devriez voir quelque chose comme ceci :
Releasing images web to django-docker-app... done
- Tapez heroku run python manage.py migrate -a django-docker-app
pour exécuter les migrations de bases de données sur votre application Heroku. Cela créera les tables et index nécessaires pour votre projet Django sur la base de données PostgreSQL. Vous devriez voir quelque chose comme ceci :
Running python manage.py migrate on ⬢ django-docker-app... up, run.1234 (Free) Operations to perform: Apply all migrations: admin, auth, contenttypes, sessions, polls Running migrations: Applying contenttypes.0001_initial... OK Applying auth.0001_initial... OK Applying admin.0001_initial... OK Applying admin.0002_logentry_remove_auto_add... OK Applying admin.0003_logentry_add_action_flag_choices... OK Applying contenttypes.0002_remove_content_type_name... OK Applying auth.0002_alter_permission_name_max_length... OK Applying auth.0003_alter_user_email_max_length... OK Applying auth.0004_alter_user_username_opts... OK Applying auth.0005_alter_user_last_login_null... OK Applying auth.0006_require_contenttypes_0002... OK Applying auth.0007_alter_validators_add_error_messages... OK Applying auth.0008_alter_user_username_max_length... OK Applying auth.0009_alter_user_last_name_max_length... OK Applying auth.0010_alter_group_name_max_length... OK Applying auth.0011_update_proxy_permissions... OK Applying auth.0012_alter_user_first_name_max_length... OK Applying polls.0001_initial... OK Applying sessions.0001_initial... OK
- Tapez heroku open -a django-docker-app
pour ouvrir notre application Web déployée dans un navigateur Web. Vous devriez voir notre projet Django s'exécuter sur Heroku.
Vous avez déployé avec succès votre projet Django sur Heroku à l'aide de la commande heroku
. Vous pouvez désormais profiter de votre application Web et la partager avec d'autres.
Lire ensuite : CI/CD est essentiel pour une livraison de logiciels rapide et fiable. Pour optimiser votre pipeline CI/CD pour une efficacité maximale, choisissez les bons outils, rationalisez votre flux de travail, utilisez des tests et un contrôle qualité automatisés, parallélisez les builds, utilisez des boucles de surveillance et de rétroaction, effectuez des contrôles de sécurité et améliorez continuellement votre pipeline. En savoir plus
Lire aussi : Tout ce que nous avons appris à la DockerCon 2023 Lire la suite