[PYTHON] Django-Tutorial (Erstellung von Blog-Apps) ② - Modellerstellung, Vorbereitung der Verwaltungssite

Letztes Mal hat den grundlegenden Teil der Blog-Anwendung erstellt und konnte den Vorgang überprüfen. Dieses Mal bereiten wir uns darauf vor, den Artikel tatsächlich zu registrieren und den Artikel zu erstellen.

Artikelmodell erstellen

Erstellen Sie ein Modell zum Verwalten von Artikeln in Ihrem Blog. Das Modell fungiert als Brücke zwischen der Datenbank und Django, wodurch wir Daten in der Datenbank registrieren können, ohne die Datenbanksyntax wie SQL zu kennen.

Der erste Satz, models.py, definiert, welche Art von Daten registriert werden. In einer Excel-Tabelle können Sie hier den Spaltennamen jeder Spalte der Tabelle definieren und festlegen, welche Art von Daten (Zeichenfolge, numerischer Wert usw.) in jeder Spalte enthalten sind.

Diesmal handelt es sich um eine Blog-App, und wir werden den Artikel (Post) ändern, um ein Post-Modell zu erstellen. Es reicht aus, Titel, Text und Datum anzugeben.

blog/models.py


from django.db import models
from django.utils import timezone #Modul zum Verwalten von Daten in Django

class Post(models.Model):
    title = models.CharField('Titel', max_length=200)
    text = models.TextField('Text')
    date = models.DateTimeField('Datum', default=timezone.now)

    def __str__(self): #Definiert den Wert, der zurückgegeben werden soll, wenn das Post-Modell direkt aufgerufen wird
        return self.title #Gibt den Titel des Artikels zurück

Stellen Sie dann sicher, dass die Datenbank die in models.py definierten Informationen widerspiegelt. Wir werden die Datenbank nicht so verarbeiten, wie sie ist, sondern eine Datei erstellen, die als Polster dient, um den Inhalt von models.py wiederzugeben. Sie können Django die Datei automatisch für Sie erstellen lassen und den folgenden Befehl ausführen, um die Datei zu erstellen:

python3 manage.py makemigrations

Anschließend wird unter / blog / migrations eine nummerierte Datei erstellt.

.
├── blog
│   ├── __init__.py
│   ├── admin.py
│   ├── apps.py
│   ├── migrations
│   │   ├── 0001_initial.py #Dies wird hinzugefügt
│   │   └── __init__.py
│   ├── models.py
│   ├── tests.py
│   ├── urls.py
│   └── views.py
├── db.sqlite3
├── manage.py
├── mysite
│   ├── __init__.py
│   ├── settings.py
│   ├── urls.py
│   └── wsgi.py
└── templates
    └── blog
        └── index.html

Sie spielen beim Erstellen einer Django-App nicht direkt mit dieser Datei, aber es sieht so aus, dass Django Dinge wie das Erstellen von Spalten auf einmal ausführen kann.

0001_initial.py


# Generated by Django 3.1 on 2020-10-17 01:13

from django.db import migrations, models
import django.utils.timezone


class Migration(migrations.Migration):

    initial = True

    dependencies = [
    ]

    operations = [
        migrations.CreateModel(
            name='Post',
            fields=[
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('title', models.CharField(max_length=200, verbose_name='Titel')),
                ('text', models.TextField(verbose_name='Text')),
                ('date', models.DateTimeField(default=django.utils.timezone.now, verbose_name='Datum')),
            ],
        ),
    ]

Jetzt verwenden Sie diese Migrationsdatei, um eine Tabelle in Ihrer Datenbank zu erstellen Django erledigt die Reflexion für Sie mit einem einzigen Befehl. Führen Sie den folgenden Befehl aus.

(blog) bash-3.2$ python3 manage.py migrate

Bei Erfolg kehrt der erste Schuss zur normalen Befehlszeile mit einer großen Anzahl von OK-Anzeigen zurück.

Operations to perform:
  Apply all migrations: admin, auth, blog, contenttypes, sessions
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 blog.0001_initial... OK
  Applying sessions.0001_initial... OK

Überprüfen Sie die Tabelle auf der Verwaltungssite

Sie können plötzlich einen Artikel erstellen, aber ich denke, es ist sicher, zuerst mit der Benutzeroberfläche zu überprüfen, ob die Tabelle ordnungsgemäß erstellt wurde.

Mit Django wird die Benutzeroberfläche der Verwaltungssite automatisch ohne besondere Vorbereitung erstellt, und Sie können die darin erstellte Tabelle überprüfen oder sie manuell erstellen, bearbeiten und löschen. Darauf werden wir uns hier vorbereiten.

Modell auf Verwaltungsseite reflektieren

Eine Datei mit dem Namen admin.py wird von Anfang an unter dem Blog-Verzeichnis erstellt. Sie können sie jedoch auf der Verwaltungssite kneten, indem Sie die zuvor hier erstellten Modellinformationen beschreiben.

blog/admin.py


from django.contrib import admin
from .models import Post #hinzufügen

admin.site.register(Post) #hinzufügen

Erstellen Sie einen Administrator

Um die Verwaltungssite verwenden zu können, muss ein Benutzer (Konto) mit der entsprechenden Berechtigung, dh dem Superuser, erstellt werden. Dies kann auch schnell mit Django-Befehlen erstellt werden.

python3 manage.py createsuperuser

Wenn Sie es ausführen, werden Sie nach Ihrem Benutzernamen, Ihrer E-Mail-Adresse und Ihrem Passwort gefragt. Geben Sie also jedes ein.

Wenn die Erstellung abgeschlossen ist, wird die folgende Anzeige in der Befehlszeile angezeigt.

Superuser created successfully.

Melden Sie sich bei der Verwaltungssite an

Lassen Sie uns nun tatsächlich auf die Django-Verwaltungssite zugreifen.

Starten Sie zuerst den Server.

python3 manage.py runserver

Geben Sie als Nächstes die Adresse der Verwaltungssite in die Adressleiste des Browsers ein. Haben Sie bemerkt, dass das Projekt urls.py die folgende Beschreibung hatte?

mysite/ursl.py


urlpatterns = [
    path('blog/', include('blog.urls')),
    path('admin/', admin.site.urls), #Hier
]

Diese Beschreibung existiert von Anfang an und standardmäßig können Sie mit "** 127.0.0.1: 8000 / admin **" auf die Admin-Site zugreifen. (Normalerweise wird nicht viel geändert, aber in der Produktionsumgebung kann die Adresse aus Sicherheitsgründen geändert werden.)

Greifen Sie jetzt mit Chrome usw. auf 127.0.0.1:8000 / admin zu. image.png Wenn der Anmeldebildschirm so angezeigt wird, ist er erfolgreich. Geben Sie die Informationen ein, aus denen Sie den Superuser zuvor erstellt haben, und wählen Sie Anmelden.

image.png Wenn die Anmeldung erfolgreich ist, wird der Verwaltungsbildschirm angezeigt. Das Erstellen einer solchen Verwaltungssite erfordert viel Vorbereitung mit einem normalen Framework, aber es ist gut, dass Django standardmäßig bereitgestellt wird.

Sie können auch sehen, dass das Posts-Modell im Abschnitt BLOG-App angezeigt wird. (Da es mehrere Posts geben wird, ist es auch ein Punkt, an dem es als Posts geschrieben wird.)

Sie können hier auch manuell einen Artikel über die Schaltfläche ** Hinzufügen ** erstellen.

image.png

Sie können einen Artikel auch erstellen, indem Sie ihn speichern. image.png

Sie können die von Ihnen erstellten Artikel sogar bearbeiten oder löschen. Es ist bequem. image.png

Nächstes Mal werde ich versuchen, den Artikel in der Anwendung anzuzeigen (als HTML anzeigen).

→ Nächstes Mal Django Tutorial (Blog-App erstellen) ③ - Artikellistenanzeige

Recommended Posts

Django-Tutorial (Erstellung von Blog-Apps) ② - Modellerstellung, Vorbereitung der Verwaltungssite
Django Tutorial (Blog App erstellen) ① - Vorbereitung, Erstellung der obersten Seite
Django Tutorial (Blog-App erstellen) ⑤ - Artikelerstellungsfunktion
Django Tutorial (Blog App erstellen) ④ --Einheitentest
Django Tutorial (Blog App erstellen) ③ - Artikellistenanzeige
Django Tutorial (Blog App erstellen) ⑦ --Front End Complete
Erstellen Sie eine Webanwendung mit Django
Django-Tutorial (Blog-App erstellen) Ar - Artikeldetails / Funktionen bearbeiten / löschen
Entwicklung einer WEB-Anwendung mit Django [Modelldefinition]
Entwicklung einer WEB-Anwendung mit Django [Erstellung des Admin-Bildschirms]
Django Tutorial Zusammenfassung für Anfänger von Anfängern ② (Model, Admin)
Bis zur Erstellung der Django-Anwendung per Terminal (Entwicklungsumgebung)
Django Tutorial Zusammenfassung für Anfänger von Anfängern ① (Projekterstellung ~)