⌘ +;
zu Datei | Projektstruktur und geben Sie "Python3.xx" als Interprinter an■ Generieren einer Django-Projektdatei
django-admin startproject ‘Projektname'
Erstellen Sie ein Projektverzeichnis im aktuellen Verzeichnis
■ Grundeinstellung von settings.py im Projekt (allgemeiner Rahmen)
LANGUAGE_CODE = ‘ja/'
TIMEZONE = ‘Asia/Tokyo’
■ Erstellen Sie so viele Django-Anwendungen, wie Sie benötigen In dem Verzeichnis, in dem sich manage.py befindet (beachten Sie, dass derselbe Dateiname wie der Projektname vorhanden ist).
python3 manage.py startapp ‘App name'
Die Datenbankdatei (sqlite3) und die oben angegebene Anwendungsdatei werden generiert
■ Registrieren Sie die mit settings.py erstellte Anwendung auf der Projektseite
INSTALLED_APPS = [ …
Schreiben Sie im Inneren den App-Namen + .apps. + App-Namen (beginnend mit Großbuchstaben) + Config (Beispiel: App-Name → myapp)
‘myapp.apps.MyappConfig’
■ Importieren Sie die Include-Funktion mit urls.py auf der Projektseite
from django urls import path, include
Außerdem wurde hinzugefügt, dass es dem Routing von urls.py in der Anwendung folgt, die von urlpatterns von urls.py generiert wird
urlpatterns = [
…
path(‘myapp/‘, include(‘myapp.urls’))
]
path関数の最初の引数は、ルートディレクトリの次のURL(~.com/xxxx/のxxxx) Es kann geschrieben werden, indem die URL in der URL in der App angegeben wird, die durch das folgende Argument angegeben wird
■ Erstellen Sie eine urls.py-Datei in Ihrer Anwendung
from django.urls import path
from . import views
app_name = 'myapp'
urlpatterns = [
path('', views.index, name='index')
]
from. import views ist grundsätzlich in Ordnung, um die zweite Zeile der Django-App so zu schreiben Anzeigen der Ansichtsdatei im Anwendungsverzeichnis
urlpatterns leitet weiter
■ Der in views.py beschriebene Inhalt wird angezeigt (Beispielcode unten)
from django.http import HttpResponse
def index(request):
return HttpResponse('Hello World')
■ Erstellen Sie tatsächlich ein Verzeichnis namens Vorlagen und bearbeiten Sie es ・ Erstellen Sie ein Vorlagenverzeichnis in der Django-App
■ views.py ist so eingestellt, dass Vorlagen eingelesen werden
from django.shortcuts import render
def index(request):
context = {
’name’ = ‘xxxx'
}
return render(request, ‘myapp/index.html’, context)
Das erste Argument der Renderfunktion gibt immer eine Anfrage zurück
Sie können Variablen in geschweiften Klammern wie {{}} in index.html (Vorlagenmethode) übergeben. Bereiten Sie für Variablen ein "Wörterbuch" im Kontext vor und zeigen Sie den zugehörigen Wert an, indem Sie den Schlüssel als Variable aufrufen.
■ Bearbeiten von models.py
from django.db import models
from django.utils import timezone
class Day(models.Model):
title = models.CharField('Titel', max_length=200)
text = models.TextField('Text')
date = models.DateTimeField('Datum', default=timezone.now)
Ein Modell machen (models.Model) erstellt eine eindeutige Klasse, die models.Model erbt
timezone.now
Es gibt viele andere Bereiche
■ Migrationen durchführen (Änderungen und Kreationen benachrichtigen) Registrieren Sie die erstellte Klasse bei db, wenn Sie das Modell berühren
python3 manage.py makemigrations
■ migrieren (reflektieren)
python3 manage.py migrate
■ Verwenden Sie den Administratorbildschirm
Einen Superuser erstellen
python3 manage.py createsuperuser
/ admin wird verfügbar sein.
■ Testnotiz posts/tests.py
Lassen Sie den Test so aussehen, als ob der angemeldete Benutzer einen Blog-Beitrag erstellen kann, indem Sie den Titel und den Text eingeben.
from django.test import TestCase
from django.contrib.auth.models import User
from .models import Post
class BlogTests(TestCase):
@classmethod
def setUpTestData(cls):
# Create a User
testuser1 = User.objects.create_user(
username='testuser1',
password='abc123!'
)
testuser1.save()
# Create a blog post
test_post = Post.objects.create(
author=testuser1,
title='Blog title',
body='Body content...'
)
test_post.save()
def test_blog_content(self):
post = Post.objects.get(id=1)
expected_author = f'{post.author}'
expected_title = f'{post.title}'
expected_body = f'{post.body}'
self.assertEquals(expected_author, 'testuser1')
self.assertEquals(expected_title, 'Blog title')
self.assertEquals(expected_body, 'Body content...')
Wenn der lokale Server ausgeführt wird, stoppen Sie ihn mit Strg + c und drücken Sie zum Testen den folgenden Befehl vom Terminal aus.
(blogapi-H-RPCYMU) $ python manage.py test
Creating test database for alias 'default'...
System check identified no issues (0 silenced).
.
----------------------------------------------------------------------
Ran 1 test in 0.125s
OK
Destroying test database for alias 'default'...
Djangos Testcode scheint so geschrieben zu sein.
Recommended Posts