2021-09-28 ========== .. sectnum:: Opmerkingen ----------- - opletten met gereserveerde woorden of builtin functions zoals "min" - itereren door lijst in python, niet met index om door twee of meer lijsten te gaan, kan je dit wel doen, maar je kan ook de builtin functie zip gebruiken - haakjes rond lijst zorgt voor soort dubbele lijst, ([1,2]) Django installeren ----------------------- Maak een nieuwe virtual environment en installeer hierin Django met behulp van pip. Maak een Django project aan met:: django-admin startproject blog Voer het volgende commando uit om de datebase aan te maken:: python manage.py migrate Maak een admin gebruiker aan:: python manage.py createsuperuser Django app ----------------------- Maak een Django app aan met:: python manage.py startapp post Voeg de app aan je project toe (`blog/settings.py`) en zoek naar een lijst met naam `INSTALLED_APPS`. Voeg 'post' aan de lijst toe. Data model toevoegen ------------------------- Open `post/models.py` en voeg onderstaande code toe:: class Post(models.Model): title = models.CharField(max_length=200) Maak migratiescripts en voer deze uit om de database aan te passen. App aan admin toevoegen ------------------------- Breid de admin uit zodat je posts kan aanmaken vanuit de admin. Database model uitbreiden ------------------------- Open `post/models.py` en voeg onderstaande code toe:: class (models.Model): title = models.CharField(max_length=200) content = models.TextField(blank=True, null=True) published = models.DateField(blank=True, null=True) Maak migratiescripts en voer deze uit om de database aan te passen. Django generic views ------------------------- Open `post/views.py` en voeg onderstaande code toe:: from django.views.generic import ListView from .models import Post class PostListView(ListView): model = Post Open `blog/urls.py` en voeg onderstaande code toe:: from post.views import PostListView urlpatterns += [ path('post/', PostListView.as_view()), ] Bekijk de website op http://localhost:8000/post/ Je krijgt een foutmelding over een ontbrekend bestand. - Maak een map aan in de 'post' map met naam 'templates'. - Maak hierin een map met naam 'post'. - Maak in deze map een bestand aan met naam 'post_list.html'. - Schrijf volgende code in dit bestand:: {% for post in object_list %} {{ post }} {% endfor %} Voeg via de admin een aantal blog-posts toe, en surf vervolgens opnieuw naar http://localhost:8000/post