[PYTHON] Erstellen einer Todo-App mit Django ① Erstellen Sie eine Umgebung mit Docker

Einführung

Ich habe mit Django eine Todo-App erstellt, die für das Tutorial repräsentativ ist. Ich beabsichtige, es in Bezug auf die Bedeutung des Codes so detailliert wie möglich zu schreiben.

Zielperson

Diejenigen, die mit Django anfangen wollen

Liste der Artikel

Erstellen einer Todo-App mit Django ① Erstellen einer Umgebung mit Docker Erstellen einer Todo-App mit Django ② Erstellen einer Ordnerlistenseite Todo-App mit Django erstellen ③ Seite mit Aufgabenliste erstellen Todo-App mit Django erstellen ④ Ordner- und Aufgabenerstellungsfunktion implementieren Erstellen einer Todo-App mit Django ⑤ Erstellen einer Aufgabenbearbeitungsfunktion

Abschlusszeichnung

--Aufgabenseite bearbeiten タスク編集ページ.png

Funktionsliste

Es sieht so aus, wenn die Funktionen grob klassifiziert sind! Lass es uns machen!

Erstellen Sie mit Docker eine Entwicklungsumgebung

Erstellen Sie die folgende Verzeichnisstruktur.

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. Arbeitsverzeichnis erstellen **

$ mkdir django_todo
$ cd django_todo

** 2. Erstellen Sie eine Docker-Datei, require.txt ** Erstellen Sie Dockerfile, Docker-Compose.yml und Requirements.txt im Verzeichnis django_todo.

$ touch Dockerfile docker-compose.yml requirements.txt

3.Dockerfile Beschreiben Sie Folgendes in Dockerfile, docker-compose.yml, require.txt.

Dockerfile



#Geben Sie das Basisbild an
FROM python:3
#Einstellung, dass keine Daten im Puffer gespeichert werden sollen(Jedes Zeichen muss nicht 1 sein)
ENV PYTHONUNBUFFERED 1
#Erstellen Sie ein Verzeichnis im Container
RUN mkdir /code
#Arbeitsverzeichnis angeben
WORKDIR /code
COPY requirements.txt /code/
RUN pip install -r requirements.txt
COPY . /code/

Docker-compose.yml


#Geben Sie die Version der yml-Datei an
version: '3'
#Container definieren
services:
    web:
        #Erstellen Sie eine Docker-Datei
        build: .
        command: python3 manage.py runserver 0.0.0.0:8000
        #Angeben des Mount-Speicherorts
        volumes:
            - .:/code
        ports:
            - "8000:8000"
        #Geben Sie an, dass nach dem Start des Datenbankdienstes gestartet werden soll
        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

Durch Schreiben von require.txt können Sie die beschriebenen Pakete mit der angegebenen Version stapelweise installieren.

** 4. Erstellen eines Django-Projekts **

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

Dies weist Compose an, django-admin.py startproject django_todo im Container auszuführen. Infolgedessen ist die Verzeichnisstruktur wie folgt.

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

** 5. Datenbankeinstellungen ** Die Datenbank verwendet postgresql. Bearbeiten Sie django_todo / settings.py, um die Datenbank einzurichten. DATABASES = ... ALLOWED_HOSTS =... Zu dem Folgendem.

setting.py


ALLOWED_HOSTS = ['localhost']

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

** 6. Image erstellen, Container erstellen / starten ** Verwenden Sie die folgenden Befehle, um ein Image zu erstellen und einen Container zu erstellen / zu starten.

$ docker-compose up --build

** 7. Umweltbau abgeschlossen! ** ** ** http://localhost:8000/ Wenn Sie darauf zugreifen und der folgende Bildschirm angezeigt wird, ist es OK! Screenshot from 2020-03-16 17-36-49.png

Datenbankeinrichtung

$ docker-compose run web python3 manage.py migrate

Wenn dieser Befehl ausgeführt wird, wird die Migration wie folgt durchgeführt.

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

Erstellen Sie eine neue Anwendung

Führen Sie den folgenden Befehl aus, um die Anwendung zu erstellen.

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

Die Verzeichnisstruktur nach der Ausführung ist wie folgt.

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

Sobald Sie Ihre Anwendung erstellt haben, müssen Sie Django anweisen, sie zu verwenden. Fügen Sie dazu "todo" zu INSTALLED_APPS in "django_todo / settings.py" hinzu. Also sieht settings.py so aus:

setting.py


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

Stellen Sie hier außerdem die Zeitzone, die Sprache und den statischen Dateipfad wie folgt ein.

setting.py


LANGUAGE_CODE = 'ja'

TIME_ZONE = 'Asia/Tokyo'

setting.py


STATIC_URL = '/static/'

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

abschließend

Dies ist das Ende des Umweltbaus! Der bisherige Code befindet sich in Kapitel 1 Zweig des Repositorys (https://github.com/takusugar0/django_todo/tree/chapter1). Im nächsten Kapitel werden wir die Ordnerlistenanzeige implementieren! Erstellen einer Todo-App mit Django ② Erstellen einer Ordnerlistenseite

Liste der Artikel

Erstellen einer Todo-App mit Django ① Erstellen einer Umgebung mit Docker Erstellen einer Todo-App mit Django ② Erstellen einer Ordnerlistenseite Todo-App mit Django erstellen ③ Seite mit Aufgabenliste erstellen Todo-App mit Django erstellen ④ Ordner- und Aufgabenerstellungsfunktion implementieren Erstellen einer Todo-App mit Django ⑤ Erstellen einer Aufgabenbearbeitungsfunktion

Recommended Posts

Erstellen einer Todo-App mit Django ① Erstellen Sie eine Umgebung mit Docker
Erstellen Sie eine Todo-App mit Django REST Framework + Angular
Lassen Sie uns eine Todo-App mit dem Django REST-Framework erstellen
Todo-App mit Django erstellen ③ Aufgabenlistenseite erstellen
Todo-App mit Django erstellen ⑤ Funktion zum Bearbeiten von Aufgaben erstellen
Erstellen Sie eine Entwicklungsumgebung mit Poetry Django Docker Pycharm
Erstellen Sie mit Docker eine Django-Entwicklungsumgebung! (Docker-compose / Django / postgreSQL / nginx)
[Memo] Erstellen Sie mit Docker eine Entwicklungsumgebung für Django + Nuxt.js
[Django] Erstellen Sie mit PyCharm schnell eine Entwicklungsumgebung für Django-Container (Docker)
[Linux] Erstellen einer Jenkins-Umgebung mit Docker
[Linux] Aufbau einer Docker-Umgebung mit Amazon Linux 2
[DynamoDB] [Docker] Erstellen Sie mit Docker-Compose eine Entwicklungsumgebung für DynamoDB und Django
Erstellen Sie mit Sublime Text3 eine Python3-Build-Umgebung
Erstellen Sie mit Vagrant in 5 Minuten eine Django-Umgebung
Erstellen Sie mit Docker eine Umgebung aus Nginx + uWSGI + Python (Django)
Erstellen Sie mit der Doker Toolbox eine Django-Entwicklungsumgebung
Erstellen Sie mit IntelliJ schnell eine Python Django-Umgebung
Todo-App mit Django erstellen ④ Ordner- und Aufgabenerstellungsfunktion implementieren
Erstellen Sie eine Umgebung mit virtualenv
Erstellen Sie eine API mit Django
Erstellen Sie eine Homepage mit Django
So erstellen Sie eine Django (Python) -Umgebung auf Docker
Stellen Sie eine vorhandene App mit Docker + Pyenv-Virtualenv + Uwsgi + Django bereit
Erstellen Sie eine Django-Umgebung mit Docker-Compose (MariaDB + Nginx + uWSGI).
Erstellen einer Django-Umgebung für Win10 (mit virtuellem Speicherplatz)
Erstellen Sie mit Docker eine Go-Umgebung
Erstellen Sie eine Deb-Datei mit Docker
Erstellen Sie eine MySQL + Python-Umgebung mit Docker
Stellen Sie die Django-Anwendung mit Docker bereit
Erstellen Sie eine virtuelle Umgebung mit Python!
Erstellen Sie mit Django eine Bulletin-Board-App von Grund auf neu. (Teil 2)
Erstellen Sie eine Webanwendung mit Django
Erstellen Sie mit Django eine Bulletin-Board-App von Grund auf neu. (Teil 3)
Erstellen Sie mit VSCode & Docker Desktop eine einfache Python-Entwicklungsumgebung
Erstellen Sie mit Django einen Datei-Uploader
Entwicklungspraxis für Webanwendungen: Erstellen Sie mit Django eine Seite zum Erstellen von Schichten! (Schichterstellungsseite)
Erstellen Sie mit Vagrant (Ubuntu 16.04) eine Umgebung für Django x Apache x mod_wsgi.
Ich habe eine Entwicklungsumgebung für Django 3.0 mit Docker, Docker-Compose und Poetry erstellt
Erstellen Sie mit GCP + Docker + Jupyter Lab eine beliebige Umgebung für maschinelles Lernen
Erstellen Sie mit Laragon ganz einfach eine Entwicklungsumgebung
Erstellen Sie mit Docker eine Jupyter Lab (Python) -Umgebung
Erstellen Sie eine Tensorflow-Umgebung mit Raspberry Pi [2020]
[Python] Erstellen Sie mit Anaconda eine virtuelle Umgebung
Erstellen Sie eine GUI-App mit Tkinter of Python
Holen Sie sich mit Docker eine lokale Umgebung für DynamoDB
Erstellen Sie mit Docker eine Python + uWSGI + Nginx-Umgebung
Erstellen Sie eine einfache Web-App mit Flasche
Erstellen Sie eine Python-GUI-App in Docker (PySimpleGUI).
Erstellen der ersten App mit Django Startprojekt
Erstellen Sie eine englische Wort-App mit Python
Erstellen Sie mit pyenv eine virtuelle Umgebung für Python
Erstellen Sie einen Webdienst mit Docker + Flask
Erstellen Sie mit Neovim eine moderne Python-Umgebung
Erstellen Sie mit Docker eine Umgebung aus NGINX + NGINX Unit + MySQL