1 2021-09-20

1.1 Django installeren

Maak een nieuwe virtual environment en installeer hierin Django met behulp van pip.

Het package heet ‘django’.

1.2 Django project

Maak een Django project aan met:

django-admin startproject gametracker

Bovenstaand commando maakt automatisch een aantal bestanden voor je aan. Doorblader de aangemaakte mappen, en bekijk de aangemaakte bestanden even.

  • manage.py: voorziet een aantal Django commando’s die veelgebruikte taken uitvoeren

  • gametracker/settings.py: de instellingen voor je Django project

  • gametracker/urls.py: de URL naar view mapping

Voer het volgende commando uit om de datebase aan te maken:

python manage.py migrate

1.3 Applicatieserver opstarten

Voer het volgende commando uit:

python manage.py runserver

Surf nu naar localhost:8000. Wat zie je?

1.4 Admin gebruiker aanmaken

Voer het volgende commando uit:

python manage.py createsuperuser

Volg de instructies uit om een gebruiker aan te maken.

1.5 Django admin interface

Start de applicatie-server opnieuw op met:

python manage.py runserver

Surf nu naar http://localhost:8000/admin/ en login met je nieuwe credentials.

1.6 Django admin - add user

Voeg een gebruiker toe met naam ‘morty’ en een password.

1.7 Django admin - login as user

Log uit, en log opnieuw in als user ‘morty’. Kan je aan de admin?

1.8 Django admin - add staff user

Voeg een gebruiker toe met naam ‘rick’ en een password. Geef deze gebruiker staff rechten.

1.9 Django admin - login as staff

Log uit, en log opnieuw in als user ‘rick’. Kan je aan de admin?

1.10 Django app

Maak een Django app aan met:

python manage.py startapp game

Ook dit commando maakt een aantal bestanden voor je aan. Doorblader de aangemaakte mappen, en bekijk de aangemaakte bestanden even.

  • game/models.py: hierin omschrijf je de informatie die je in de database wil bijhouden

  • game/admin.py: hiermee kan je je eigen data aan de admin toevoegen

  • game/views.py: hierin kan je views toevoegen zoals we vorig jaar reeds deden

1.11 App aan project toevoegen

Open gametracker/settings.py en zoek naar een lijst met naam INSTALLED_APPS. Voeg ‘game’ aan de lijst toe.

1.12 Data model toevoegen

Open game/models.py en voeg onderstaande code toe:

class Game(models.Model):
    name = models.CharField(max_length=200)

Dit zorgt ervoor dat er een tabel “game” voorzien wordt, waarin de namen van games opgeslagen kunnen worden met een maximale lengte van 200 characters.

1.13 Database aanpassen

Voer het volgende commando uit:

python manage.py makemigrations

Dit commando bekijkt je project, en schrijft Python code om je database automatisch aan te passen.

Voer het volgende commando uit:

python manage.py migrate

Dit commando voert de eerder genoemde Python code uit, om zo de database aan te passen.

1.14 App aan admin toevoegen

Open game/admin.py en voeg onderstaande code toe:

from .models import Game

admin.site.register(Game)

Hiermee koppelen we onze eigen class (database model) aan de database.

1.15 Django admin Game interface

Start de applicatie-server opnieuw op met:

python manage.py runserver

Surf nu naar http://localhost:8000/admin/ en voeg een game toe aan de database.

1.16 Database model uitbreiden

Open game/models.py en voeg onderstaande code toe:

class Game(models.Model):
    name = models.CharField(max_length=200)
    release_year = models.PositiveSmallIntegerField(blank=True, null=True) # nieuw!

Dit zorgt ervoor dat er in tabel “game” een tweede kolom “release_year” voorzien wordt.

1.17 Database opnieuw aanpassen

Voer het volgende commando uit:

python manage.py makemigrations

Dit commando bekijkt je project, en schrijft Python code om je database automatisch aan te passen.

Voer het volgende commando uit:

python manage.py migrate

Dit commando voert de eerder genoemde Python code uit, om zo de database aan te passen.

1.18 Django admin Game aanpassen

Start de applicatie-server opnieuw op met:

python manage.py runserver

Surf nu naar http://localhost:8000/admin/ en voeg nu een release jaar aan je games toe aan de database.

1.19 Database model uitbreiden met een boolean field

Open game/models.py en voeg onderstaande code toe:

multiplayer = models.BooleanField(default=False)

Dit zorgt ervoor dat er in tabel “game” een derde kolom “multiplayer” voorzien wordt.

Gebruik ‘makemigrations’ en ‘migrate’ om de database aan te passen.

1.20 Database uitbreiden met een tweede tabel

Open game/models.py en voeg onderstaande code toe:

class Publisher(models.Model):
    name = models.CharField(max_length=200)

Dit zorgt ervoor dat er een tweede tabel “publisher” bijkomt. Gebruik ‘makemigrations’ en ‘migrate’ om de database aan te passen. Voeg Publisher ook toe aan de admin.

1.21 Database model Game uitbreiden met een foreign key

Open game/models.py en voeg onderstaande code toe aan de Game class:

publisher = models.ForeignKey(Publisher, on_delete=models.CASCADE)

Dit zorgt ervoor dat er in tabel “game” een vierde kolom “publisher” voorzien wordt.

Gebruik ‘makemigrations’ en ‘migrate’ om de database aan te passen.