⌘ +;
et spécifiez "Python3.xx" comme interprète■ Génération d'un fichier projet Django
django-nom du projet admin startproject'
Créer un répertoire de projet dans le répertoire courant
■ Réglage initial de setting.py dans le projet (cadre général)
LANGUAGE_CODE = ‘ja/'
TIMEZONE = ‘Asia/Tokyo’
■ Créez autant d'applications Django que vous en avez besoin Dans le répertoire où se trouve manage.py (notez que le même nom de fichier que le nom du projet existe)
python3 manage.py startapp "Nom de l'application'
Le fichier db (sqlite3) et le fichier d'application spécifié ci-dessus sont générés
■ Enregistrez l'application créée avec settings.py côté projet
INSTALLED_APPS = [ …
À l'intérieur, écrivez le nom de l'application + .apps. + Nom de l'application (commençant par une majuscule) + Config (Exemple: nom de l'application → myapp)
‘myapp.apps.MyappConfig’
■ Importez la fonction include avec urls.py côté projet
from django urls import path, include
A également ajouté qu'il suit le routage de urls.py dans l'application générée par les urlpatterns de urls.py
urlpatterns = [
…
path(‘myapp/‘, include(‘myapp.urls’))
]
path関数の最初の引数は、ルートディレクトリの次のURL(~.com/xxxx/のxxxx) Il peut être écrit en spécifiant l'url dans l'url de l'application spécifiée par l'argument suivant
■ Créez un fichier urls.py dans votre application
from django.urls import path
from . import views
app_name = 'myapp'
urlpatterns = [
path('', views.index, name='index')
]
From. Import views est fondamentalement OK pour écrire la deuxième ligne de l'application django comme ceci Aller voir le fichier de vues dans le répertoire de l'application
urlpatterns achemine
■ Le contenu décrit dans views.py s'affiche (exemple de code ci-dessous)
from django.http import HttpResponse
def index(request):
return HttpResponse('Hello World')
■ Créez en fait un répertoire appelé templates et modifiez-le ・ Créez un répertoire de modèles dans l'application django -Créer un répertoire avec le même nom que le nom de l'application dans le répertoire des modèles ・ De plus, créez index.html dedans
■ views.py est configuré pour lire dans les modèles
from django.shortcuts import render
def index(request):
context = {
’name’ = ‘xxxx'
}
return render(request, ‘myapp/index.html’, context)
Le premier argument de la fonction de rendu renvoie toujours une requête
Vous pouvez passer des variables entre accolades comme {{}} dans index.html (méthode du modèle) Pour les variables, préparez un «dictionnaire» en contexte et affichez la valeur associée en appelant la clé en tant que variable.
■ Modification de models.py
from django.db import models
from django.utils import timezone
class Day(models.Model):
title = models.CharField('Titre', max_length=200)
text = models.TextField('Texte')
date = models.DateTimeField('Date', default=timezone.now)
Faire un modèle (models.Model) crée une classe unique qui hérite des modèles.
timezone.now
Il existe de nombreux autres domaines
■ effectuer des migrations (notifier les modifications et les créations) Enregistrez la classe créée dans db lorsque vous touchez le modèle
python3 manage.py makemigrations
■ migrer (refléter)
python3 manage.py migrate
■ Utilisez l'écran de l'administrateur
Créer un super utilisateur
python3 manage.py createsuperuser
/ admin sera disponible.
■ Mémo test posts/tests.py
Faites en sorte que le test ressemble à si l'utilisateur connecté peut créer un article de blog en entrant le titre et le corps.
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...')
Si le serveur local est en cours d'exécution, arrêtez-le avec Ctrl + c et appuyez sur la commande suivante depuis le terminal pour tester.
(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'...
Le code de test de Django semble être écrit comme ceci.
Recommended Posts