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.