[PYTHON] Erstellen Sie mit Django eine Bulletin-Board-App von Grund auf neu. (Teil 2)

Teil 1 https://qiita.com/TuruMaru/items/4df41577fb9f722c7864

Datenbank erstellen

Ich werde eine Datenbank erstellen, aber dazu muss ich zuerst den Inhalt in die Tabelle in models.py schreiben.

posts/models.py



from django.db import models
#Importieren, um die Zeitzone zu verwenden
from django.utils import timezone

# Create your models here.

#models.Es ist eine Regel, ein Modell zu schreiben
class Posts(models.Model):

    #Meta und Objekt sind keine Magie
    class Meta(object):
        #Geben Sie den Namen der zu erstellenden Tabelle an
        db_table = 'posts'

    #Spaltenname=Datei Format(Der auf dem Verwaltungsbildschirm angezeigte Name,Andere Einschränkungen)
    text = models.CharField(verbose_name='Text', max_length=255)
    created_at = models.DateField(verbose_name='Erstellungsdatum', default=timezone.now)

    #Stellen Sie ein, dass es auf dem Verwaltungsbildschirm angezeigt werden soll(Magie)
    def __str__(self):
        return self.text, self.created_at

Jetzt können Sie eine Tabelle mit dem Namen posts erstellen. Basierend auf diesen werden wir im Terminal operieren.

$ python manage.py makemigrations posts
Migrations for 'posts':
  posts/migrations/0001_initial.py
    - Create model Posts

Sie haben jetzt die Datei 0001_initial.py erstellt. Diese Datei enthält den Inhalt der zu erstellenden Datenbank. Dieser Befehl hat jedoch noch keine Datenbank erstellt. Ich bin bereit.

$ python manage.py sqlmigrate posts 0001
BEGIN;
--
-- Create model Posts
--
CREATE TABLE "posts" ("id" integer NOT NULL PRIMARY KEY AUTOINCREMENT, "text" varchar(255) NOT NULL, "created_at" date NOT NULL);
COMMIT;

Sie können den SQL-Code sehen, wenn die Tabelle mit diesem Befehl erstellt wird.

$ python manage.py migrate
Operations to perform:
  Apply all migrations: admin, auth, contenttypes, posts, sessions
Running migrations:
  Applying posts.0001_initial... OK

Ja, das ist erledigt. Vielen Dank.

Ein kleiner Vorgang ist erforderlich, um den Verwaltungsbildschirm zu überprüfen, aber ich werde ihn hier weglassen.

Durchlaufen

Wenn Sie den Pfad nicht übergeben, wird der von Ihnen geschriebene Code nicht im Browser angezeigt. Es gibt auch andere Einstellungen, also machen wir es zuerst.

mysite/setting.py


INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    #Zusätzlicher Teil von hier
    'posts',
    'templates',
]

Fügen Sie die Anwendung nach dem Erstellen zu "INSTALLED_APPS" hinzu.

settings.py


TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        #↓ Fügen Sie hier eine Zeile hinzu
        'DIRS': [os.path.join(BASE_DIR, 'templates')],
        'APP_DIRS': True,
        'OPTIONS': {
            'context_processors': [
                'django.template.context_processors.debug',
                'django.template.context_processors.request',
                'django.contrib.auth.context_processors.auth',
                'django.contrib.messages.context_processors.messages',
            ],
        },
    },
]

Teilen Sie Python mit, dass Sie das Vorlagenverzeichnis erstellt haben.

Außerdem werde ich ein wenig views.py und html schreiben, um den Vorgang zu überprüfen.

posts/views.py


from django.shortcuts import render

# Create your views here.
from django.views.generic import View


class IndexView(View):
    def get(self,request, *args, **kwargs):
        return render(request, 'posts/post.html')


index = IndexView.as_view()

templates/base.html


<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>{% block page_title %}{% endblock %}</title>
</head>
<body>
<hr>
<h1>{% block title %}{% endblock %}</h1>
<hr>
{% block content%}{% endblock %}
<hr>
</body>
</html>

templates/posts/post.html


{% extends "base.html" %}
{% block page_title %}post{% endblock %}
{% block title %}post{% endblock %}
{% block content %}
    <h1>Posts</h1>
{% endblock %}

Normalerweise wird "base.html" als Basis aller Seiten verwendet, und "post.html" und andere füllen den Inhalt aus. Als nächstes werde ich endlich urls.py schreiben.

mysite/urls.py


from django.contrib import admin
from django.urls import include, path

urlpatterns = [
    path('admin/', admin.site.urls),
    path('', include('posts.urls')),
]

posts/urls.py


from django.urls import path
from . import views

app_name = 'posts'
urlpatterns = [
    path('', views.index, name='index'),
]

Wenn Sie einen solchen Anruf tätigen, starten Sie einen lokalen Server und überprüfen Sie ihn.

$python manage.py runserver 3000

Geben Sie dann "localhost: 3000" bei Google ein oder so.

スクリーンショット 2019-11-04 21.39.07.png

Wenn es so herauskommt, ist die Pass-Beziehung vollständig. Schreiben wir den Code der Bulletin-Board-Anwendung ab dem nächsten.

Recommended Posts

Erstellen Sie mit Django eine Bulletin-Board-App von Grund auf neu. (Teil 2)
Erstellen Sie mit Django eine Bulletin-Board-App von Grund auf neu. (Teil 3)
Django von vorne anfangen (Teil: 2)
Django von vorne anfangen (Teil: 1)
Erstellen Sie eine Webanwendung mit Django
Erstellen einer Todo-App mit Django ① Erstellen Sie eine Umgebung mit Docker
So entwickeln Sie eine Cart-App mit Django
Erstelle mit pygame2 eine neue Benutzeroberfläche!
[Python] Erstellen Sie mit Docker eine Django-Entwicklungsumgebung
Erstellen Sie mit Vagrant in 5 Minuten eine Django-Umgebung
Erstellen Sie ein Bulletin Board mit Heroku, Flask, SQL Alchemy
Erstellen Sie mit der Doker Toolbox eine Django-Entwicklungsumgebung
Erstellen Sie mit IntelliJ schnell eine Python Django-Umgebung
Lassen Sie uns mit Vue.js und Django-Rest-Framework [Teil 1] ~ Django-Setup ~ eine nervenschwächende App erstellen
Django Memo # 1 von Grund auf neu
Erstellen Sie eine Todo-App mit Django REST Framework + Angular
Lassen Sie uns eine Todo-App mit dem Django REST-Framework erstellen
Schritte von der Installation von Python 3 bis zur Erstellung einer Django-App
Todo-App mit Django erstellen ③ Aufgabenlistenseite erstellen
Stellen Sie die mit PTVS erstellte Django-App in Azure bereit
Todo-App mit Django erstellen ⑤ Funktion zum Bearbeiten von Aufgaben erstellen
Erstellen Sie eine Entwicklungsumgebung mit Poetry Django Docker Pycharm
Erstellen einer Django-Umgebung für Win10 (mit virtuellem Speicherplatz)
Erstellen Sie mit Winsows 10 eine maschinelle Lernumgebung von Grund auf neu
Versuchen Sie, ein Deep Learning / Neuronales Netzwerk mit Scratch aufzubauen
Erstellen Sie mit Docker eine Django-Entwicklungsumgebung! (Docker-compose / Django / postgreSQL / nginx)
[Memo] Erstellen Sie mit Docker eine Entwicklungsumgebung für Django + Nuxt.js
Erstellen Sie eine Homepage mit Django
[Django] Erstellen Sie mit PyCharm schnell eine Entwicklungsumgebung für Django-Container (Docker)
Stellen Sie Django + React von Grund auf auf GKE bereit. (3) Erstellen Sie ein GCP-Projekt
# 3 Erstellen Sie eine Python-Umgebung (Django) mit einer EC2-Instanz (ubuntu18.04) von AWS part2
Entwicklungspraxis für Webanwendungen: Erstellen Sie mit Django eine Seite zum Erstellen von Schichten! (Schichterstellungsseite)
Erstellen Sie mit Python + Django + AWS eine Scraping-App und wechseln Sie Jobs
[DynamoDB] [Docker] Erstellen Sie mit Docker-Compose eine Entwicklungsumgebung für DynamoDB und Django
Testgetriebene Entwicklung mit Django Teil 4
Spiele mit einer Schildkröte mit Schildkrötengrafiken (Teil 1)
Testgetriebene Entwicklung mit Django Teil 6
Stellen Sie die Django-Anwendung mit Docker bereit
Testgetriebene Entwicklung mit Django Teil 2
Implementieren Sie die Django-App auf Hy
App von Windows 10 32-Bit-Scratch installiert
Machen Sie einen Filter mit einer Django-Vorlage
Testgetriebene Entwicklung mit Django Teil 1
Post Bulletin Board Erstellung mit Flasche
Testgetriebene Entwicklung mit Django Teil 5
Erstellen Sie mit Django einen Datei-Uploader
Wirf GQL mit einer numerischen ID aus dem AppEngine-Verwaltungsbildschirm
Entwicklungspraxis für Webanwendungen: Erstellen Sie mit Django eine Seite zum Erstellen von Schichten! (Einführung)
Ich habe versucht, mit django eine E-Mail zum Abschluss der Registrierung von Google Mail zu senden.
Todo-App mit Django erstellen ④ Ordner- und Aufgabenerstellungsfunktion implementieren
Erstellen Sie mit Cloud9 (jupyter miniconda python3) eine Lernumgebung für "Deep Learning von Grund auf neu".
Ich habe ein WebAPI gemacht! Erstellen einer Umgebung aus Django Rest Framework 1 mit EC2
Vorgehensweise zum Erstellen einer Django-Umgebung mit Win10 WSL Ubuntu18.04 + Anaconda + Apache2
Einfacher RSS-Reader mit Django
Erstellen Sie mit Laragon ganz einfach eine Entwicklungsumgebung
Spielen Sie wie eine Web-App mit ipywidgets
Erstellen Sie eine Tensorflow-Umgebung mit Raspberry Pi [2020]