[PYTHON] Construction de l'environnement Django

■ 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

Construction de l'environnement Django
construction d'environnement django
Construction de l'environnement du projet Django
Mémo de construction de l'environnement de développement Django
Construction de l'environnement Docker + Django + React
construction de l'environnement de développement de projet django
Construction de l'environnement Mac + Eclipse (PyDev) + Django
Construction de l'environnement DeepIE3D
Construction d'environnement basée sur Emacs
Construction de l'environnement Linux
[Django] Mémorandum de procédure de construction d'environnement
Construction d'environnement (python)
[Pour les débutants] Django -Construction d'environnement de développement-
Construction de l'environnement CodeIgniter
construction d'environnement python
Python - Construction de l'environnement
Construction de l'environnement Python
Construction de l'environnement Golang
Construction de l'environnement de word2vec
Construction de l'environnement: GCP + Docker
Mémo de construction de l'environnement ConoHa
construction d'environnement python homebrew
Construction d'environnements liés à PyData
Construction de l'environnement Anaconda-4.2.0-python3 (Mac)
Construction de l'environnement de développement Python
Construction de l'environnement YOLO v4 ①
construction de l'environnement pyenv + fish
Construction de l'environnement de développement python2.7
Mémo de construction de l'environnement BigGorilla
construction de l'environnement de préhension onCentOS6.5
Mémo de construction de l'environnement Anaconda
Construction de l'environnement Golang [goenv]
Construction de l'environnement Pyxel (Mac)
[Memo] Environnement de développement Django
Construction de l'environnement Python @ Win7
[Django3] Construction de l'environnement et résumé de divers paramètres [Python3]
De 0 à la construction de l'environnement de développement Django à l'exploitation de base
[Ubuntu 18.04] Construction de l'environnement Tensorflow 2.0.0-GPU
Construction de l'environnement Python + Anaconda + Pycharm
À propos de la construction de l'environnement Linux (CentOS)
Environnement de site Web de configuration minimale avec django
Construction de l'environnement PyTorch C ++ (LibTorch)
Construction de l'environnement Anaconda sur CentOS7
Django Premiers pas: 1_Construction de l'environnement
Première construction de l'environnement LAMP (Linux)
Construction de l'environnement Python (Windows10 + Emacs)
Environnement
Construction de l'environnement CI ~ Édition Python ~
Django
[Memo] Construction de l'environnement cygwin
Construction de l'environnement Python pour Mac
Procédure de construction de l'environnement python Anaconda3
Anaconda3 × Mémo de construction de l'environnement Pycharm
Construction de l'environnement Python3 (pour les débutants)
Construction d'environnement Python et TensorFlow