13
Dag 4: Django & Databaser

Dag 4: Django & databaser

Embed Size (px)

Citation preview

Page 1: Dag 4: Django & databaser

Dag 4: Django & Databaser

Page 2: Dag 4: Django & databaser

Vad är en databas?

Utdata Indata Namn År

1 … … … …

2 … … … …

3 … … … …

4 … … … …

Färg Vikt Vem När

1 … … … …

2 … … … …

3 … … … …

4 … … … …

Page 3: Dag 4: Django & databaser

Används via kod…

SQL

Page 4: Dag 4: Django & databaser

Inte magiska…

Utdata Indata Namn År

1 … … … …

2 … … … …

3 … … … …

4 … … … …

Färg Vikt Vem När

1 … … … …

2 … … … …

3 … … … …

4 … … … …

Page 5: Dag 4: Django & databaser

SQL?!

SELECT COUNT(id) FROM user WHERE reg_date > "2000-01-01"

SELECT username FROM user WHERE username LIKE ”emil%"

Page 6: Dag 4: Django & databaser

Django Models• Skapa data:

• User.objects.create(username=”emil”, reg_date=”2015-08-06”)

• Hämta ut data:

• User.objects.filter(reg_date__gt=”2001-01-01”).count()

• User.objects.filter(username__startswith=”emil”)

• User.objects.get(username=”emil”)

Page 7: Dag 4: Django & databaser

Django Models• Uppdatera data:

• User.objects.get(username=”emil”)

• user.username = “emil2”

• user.save()

• Ta bort data:

• User.objects.filter(username__startswith=”emil”).delete()

Page 8: Dag 4: Django & databaser

Vår Quiz-Model

id name slug description

1 Klassiska böcker klassiska Här kan du…

2 … … …

3 … … …

4 … … …

Page 9: Dag 4: Django & databaser

models.py

class Quiz(models.Model): name = models.CharField(max_length=100) slug = models.SlugField(max_length=100) description = models.TextField()

Page 10: Dag 4: Django & databaser

Vår Questions-Model

id question answer1 answer2 answer3 correct quiz_id

1Hur

många… 12 123 1234 2 1

2 … … … … … …

3 … … … … … …

4 … … … … … …

Question

Page 11: Dag 4: Django & databaser

models.py

class Question(models.Model): quiz = models.ForeignKey(Quiz) question = models.TextField() answer1 = models.CharField(max_length=100) answer2 = models.CharField(max_length=100) answer3 = models.CharField(max_length=100) correct = models.PositiveIntegerField()

Page 12: Dag 4: Django & databaser

”Migrations”

• python manage.py makemigrations

• Migrations for 'quiz': 0001_initial.py: - Create model Question - Create model Quiz - Add field quiz to question

• python manage.py migrate

Page 13: Dag 4: Django & databaser

Django Admin