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.
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
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.
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
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.
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. 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.
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.
Sie können einen Artikel auch erstellen, indem Sie ihn speichern.
Sie können die von Ihnen erstellten Artikel sogar bearbeiten oder löschen. Es ist bequem.
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