[PYTHON] Créer une application Todo avec Django ① Créer un environnement avec Docker

introduction

J'ai créé une application Todo, qui est représentative du tutoriel, avec Django. J'ai l'intention de l'écrire avec le plus de détails possible en termes de signification du code.

Personne cible

Ceux qui veulent se lancer avec django

Liste des articles

Créer une application Todo avec Django ① Créer un environnement avec Docker Créer une application Todo avec Django ② Créer une page de liste de dossiers Créer une application Todo avec Django ③ Créer une page de liste de tâches Création de l'application Todo avec Django ④ Implémentation de la fonction de création de dossier et de tâche Création d'une application Todo avec Django ⑤ Création d'une fonction d'édition de tâches

Dessin d'achèvement

--Page de création de dossier フォルダー作成機能.png

Liste des fonctions

--Fonction de création de tâches

Cela ressemble à ceci lorsque les fonctions sont grossièrement classées! Faisons-le!

Créer un environnement de développement avec Docker

Créez la structure de répertoires suivante.

django_todo
├── docker-compose.yml
├── dockerfile
├── manage.py
├── requirements.txt
└── django_todo
    ├── __init__.py
    ├── __pycache__
    │   ├── __init__.cpython-38.pyc
    │   ├── settings.cpython-38.pyc
    │   ├── urls.cpython-38.pyc
    │   └── wsgi.cpython-38.pyc
    ├── settings.py
    ├── urls.py
    └── wsgi.py

** 1. Création d'un répertoire de travail **

$ mkdir django_todo
$ cd django_todo

** 2. Créez un fichier docker, requirements.txt ** Créez Dockerfile, docker-compose.yml et requirements.txt dans le répertoire django_todo.

$ touch Dockerfile docker-compose.yml requirements.txt

3.Dockerfile Décrivez comme suit dans Dockerfile, docker-compose.yml, requirements.txt.

Dockerfile



#Spécifiez l'image de base
FROM python:3
#Réglage de ne pas conserver les données dans la mémoire tampon(Tout caractère n'a pas besoin d'être 1)
ENV PYTHONUNBUFFERED 1
#Créer un répertoire à l'intérieur du conteneur
RUN mkdir /code
#Spécifiez le répertoire de travail
WORKDIR /code
COPY requirements.txt /code/
RUN pip install -r requirements.txt
COPY . /code/

Docker-compose.yml


#Spécifiez la version du fichier yml
version: '3'
#Définir le conteneur
services:
    web:
        #Construire Dockerfile
        build: .
        command: python3 manage.py runserver 0.0.0.0:8000
        #Spécification de l'emplacement de montage
        volumes:
            - .:/code
        ports:
            - "8000:8000"
        #Spécifiez pour démarrer après le démarrage du service de base de données
        depends_on:
            - db
    db:
        image: postgres
        ports: 
            - "5432"
        environment:
          - POSTGRES_DB=postgres
          - POSTGRES_USER=postgres
          - POSTGRES_PASSWORD=postgres

requirements.txt


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

En écrivant requirements.txt, vous pouvez installer les packages décrits dans un lot avec la version spécifiée.

** 4. Création d'un projet Django **

$ docker-compose run web django-admin.py startproject django_todo .

Cela indique à Compose d'exécuter django-admin.py startproject django_todo à l'intérieur du conteneur. En conséquence, la structure du répertoire sera la suivante.

django_todo
├── Dockerfile
├── django_todo
│   ├── __init__.py
│   ├── settings.py
│   ├── urls.py
│   └── wsgi.py
├── docker-compose.yml
├── manage.py
└── requirements.txt

** 5. Paramètres de la base de données ** La base de données utilise postgresql. Modifiez django_todo / setting.py pour configurer la base de données. DATABASES = ... ALLOWED_HOSTS =... Au suivant.

setting.py


ALLOWED_HOSTS = ['localhost']

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

** 6. Construire l'image, créer / démarrer le conteneur ** Utilisez les commandes suivantes pour créer une image et créer / démarrer un conteneur.

$ docker-compose up --build

** 7. Construction de l'environnement terminée! ** ** http://localhost:8000/ Si vous accédez et que l'écran suivant s'affiche, c'est OK! Screenshot from 2020-03-16 17-36-49.png

Configuration de la base de données

$ docker-compose run web python3 manage.py migrate

Lorsque cette commande est exécutée, la migration sera effectuée comme suit.

Screenshot from 2020-04-16 23-17-22.png

Créer une nouvelle application

Exécutez la commande suivante pour créer l'application.

$ docker-compose run web python3 manage.py  startapp todo

La structure des répertoires après exécution est la suivante.

django_todo
├── Dockerfile
├── django_todo
│   ├── __init__.py
│   ├── __pycache__
│   │   ├── __init__.cpython-38.pyc
│   │   ├── settings.cpython-38.pyc
│   │   ├── urls.cpython-38.pyc
│   │   └── wsgi.cpython-38.pyc
│   ├── settings.py
│   ├── urls.py
│   └── wsgi.py
├── docker-compose.yml
├── manage.py
├── requirements.txt
└── todo
    ├── __init__.py
    ├── admin.py
    ├── apps.py
    ├── migrations
    │   └── __init__.py
    ├── models.py
    ├── tests.py
    └── views.py

Une fois que vous avez créé votre application, vous devez dire à Django de l'utiliser. Pour ce faire, ajoutez todo à INSTALLED_APPS dans django_todo / settings.py. Donc, settings.py ressemble à ceci:

setting.py


INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'todo',
]

Définissez également le fuseau horaire, la langue et le chemin du fichier statique comme suit.

setting.py


LANGUAGE_CODE = 'ja'

TIME_ZONE = 'Asia/Tokyo'

setting.py


STATIC_URL = '/static/'

STATIC_ROOT = os.path.join(BASE_DIR, 'static')

en conclusion

C'est la fin de la construction de l'environnement! Le code jusqu'à présent peut être trouvé dans la Branche du chapitre1 du référentiel. Dans le chapitre suivant, nous allons implémenter l'affichage de la liste des dossiers! Créer une application Todo avec Django ② Créer une page de liste de dossiers

Liste des articles

Créer une application Todo avec Django ① Créer un environnement avec Docker Créer une application Todo avec Django ② Créer une page de liste de dossiers Créer une application Todo avec Django ③ Créer une page de liste de tâches Création de l'application Todo avec Django ④ Implémentation de la fonction de création de dossier et de tâche Création d'une application Todo avec Django ⑤ Création d'une fonction d'édition de tâches

Recommended Posts

Créer une application Todo avec Django ① Créer un environnement avec Docker
Créer une application Todo avec Django REST Framework + Angular
Essayez de créer une application Todo avec le framework Django REST
Créer une application Todo avec Django ③ Créer une page de liste de tâches
Créer une application Todo avec Django ⑤ Créer une fonction d'édition de tâches
Créez un environnement de développement avec Poetry Django Docker Pycharm
Créez un environnement de développement Django avec Docker! (Docker-compose / Django / postgreSQL / nginx)
[Memo] Construire un environnement de développement pour Django + Nuxt.js avec Docker
[Django] Créez rapidement un environnement de développement de conteneur Django (Docker) avec PyCharm
[Linux] Créer un environnement Jenkins avec Docker
[Linux] Construction de l'environnement Docker avec Amazon Linux 2
[DynamoDB] [Docker] Créer un environnement de développement pour DynamoDB et Django avec docker-compose
Créer un environnement de construction python3 avec Sublime Text3
Créez un environnement Django avec Vagrant en 5 minutes
Créer un environnement de Nginx + uWSGI + Python (Django) avec docker
Créer un environnement de développement Django à l'aide de Doker Toolbox
Créez rapidement un environnement Python Django avec IntelliJ
Créer une application Todo avec Django ④ Implémenter la fonction de création de dossier et de tâche
Créer un environnement avec virtualenv
Créer une API avec Django
Créer une page d'accueil avec django
Comment créer un environnement Django (python) sur Docker
Déployer une application existante avec docker + pyenv-virtualenv + uwsgi + django
Créer un environnement django avec docker-compose (MariaDB + Nginx + uWSGI)
Construire un environnement Django pour Win10 (avec espace virtuel)
Créer un environnement go à l'aide de Docker
Créer un fichier deb avec Docker
Construire un environnement Mysql + Python avec docker
Déployer l'application Django avec Docker
Créez un environnement virtuel avec Python!
Créez une application de tableau d'affichage à partir de zéro avec Django. (Partie 2)
Créer une application Web avec Django
Créez une application de tableau d'affichage à partir de zéro avec Django. (Partie 3)
Créez un environnement de développement Python simple avec VSCode et Docker Desktop
Créer un téléchargeur de fichiers avec Django
Pratique de développement d'applications Web: Créez une page de création d'équipe avec Django! (Page de création de décalage)
Créer un environnement pour Django x Apache x mod_wsgi avec Vagrant (Ubuntu 16.04)
J'ai créé un environnement de développement pour Django 3.0 avec Docker, Docker-compose, Poetry
Créez un environnement d'apprentissage automatique arbitraire avec GCP + Docker + Jupyter Lab
Créez facilement un environnement de développement avec Laragon
Créer un environnement Jupyter Lab (Python) avec Docker
Créer un environnement Tensorflow avec Raspberry Pi [2020]
[Python] Créez un environnement virtuel avec Anaconda
Créer une application graphique avec Tkinter de Python
Obtenez un environnement local pour DynamoDB avec Docker
Créer un environnement Python + uWSGI + Nginx avec Docker
Créez une application Web simple avec Flask
Créer une application Python-GUI dans Docker (PySimpleGUI)
Création de la première application avec Django startproject
Créez une application de mots anglais avec python
Créez un environnement virtuel pour python avec pyenv
Créer un service Web avec Docker + Flask
Créez un environnement Python moderne avec Neovim
Construire un environnement de NGINX + NGINX Unit + MySQL avec Docker