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.
Diejenigen, die mit Django anfangen wollen
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
oberste Seite
Ordnererstellungsseite
Seite zur Aufgabenerstellung
--Aufgabenseite bearbeiten
Es sieht so aus, wenn die Funktionen grob klassifiziert sind! Lass es uns machen!
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!
$ docker-compose run web python3 manage.py migrate
Wenn dieser Befehl ausgeführt wird, wird die Migration wie folgt durchgeführt.
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')
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
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