Kör mjukt denna vecka och kikar även jag på databasanrop och liknande.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
| >>> # Hämta alla objekt
>>> Track.objects.all()
[<Track: Beyond the Dark Sun>, <Track: Winter Madness>, <Track: Sleeping Stars>]
>>> # Hämta objektet som har låtnamnet ("Title") "Winter Madness"
>>> Track.objects.get(Title='Winter Madness')
<Track: Winter Madness>
>>> # Hämta alla objekt och sortera dom efter låtnummer ("TrackNumber"), börja med lägsta
>>> Track.objects.order_by('TrackNumber')
[<Track: Beyond the Dark Sun>, <Track: Winter Madness>, <Track: Sleeping Stars>]
>>> # Hämta alla objekt och sortera dom efter låtnummer ("TrackNumber"), börja med högsta
>>> Track.objects.order_by('-TrackNumber')
[<Track: Sleeping Stars>, <Track: Winter Madness>, <Track: Beyond the Dark Sun>]
# -*- coding: iso-8859-1 -*-
from dbexp.music.models import *
# Skriv ut alla låtar sorterade efter låtnummer
Tracks = Track.objects.order_by('TrackNumber')
for TrackX in Tracks:
print TrackX.TrackNumber + " - " + TrackX.Artist + " [" + TrackX.Album + "] " + TrackX.Title
>>> # -*- coding: iso-8859-1 -*-
>>> from dbexp.music.models import *
>>> # Skriv ut alla låtar sorterade efter låtnummer
>>> Tracks = Track.objects.order_by('TrackNumber')
>>> for TrackX in Tracks:
... print '%(#)d - %(artist)s [%(album)s] %(title)s' % {"#": TrackX.TrackNumber, "artist": TrackX.Artist, "album": TrackX.Album, "title": TrackX.Title}
...
1 - Wintersun [Wintersun] Beyond the Dark Sun
2 - Wintersun [Wintersun] Winter Madness
3 - Wintersun [Wintersun] Sleeping Stars |
Förvirrande att inte skriva SQL-satser som man är van vid att göra i PHP men det är hyfsat bekvämt att göra på detta sätt.
Blev en kort sväng till Djangoträsket denna vecka på grund av att jag arbetat mycket med annat, bland annat då min CAPTCHA-analyserare. Än är jag aningen tveksam till Django och dess sätt att göra saker för att det är som inget jag tidigare arbetat med. Att vänja om sig till detta är tungt, väldigt tungt. Julen närmar sig nu och vi får se om det blir något arbetande nästa vecka eller om jag tar en paus.
Den här veckan har jag gjort en liten djupdykning i databas-API:t för att lära mig mer om hur man väljer ut data från databasen. Du använder alltså sig inte av ren SQL för att hämta rader från databasen, utan du använder dig av Djangos databas-API som genererar SQL-frågorna åt dig. Det kan se ut ungefär såhär:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
| >>> from viktor.datorplatsen.models import *
>>> print User.objects.all()
[<User: Viktor Rutberg>, <User: Jani Mukkavaara>]
>>> u = User.objects.get(first_name='Viktor')
>>> print u
<User: Viktor Rutberg>
>>> u.first_name ='Johan'
>>> u.save()
>>> print User.objects.all()
[<User: Johan Rutberg>, <User: Jani Mukkavaara>]
>>> print u
<User: Johan Rutberg> |
Denna vecka har jag tagit en liten paus från att direkt använda mig av Django till att kika lite på om jag skulle kunna skapa ett CAPTCHA i Python för senare användning hos någon sida samt att jag även läst på hur man knäcker CAPTCHA med hjälp av en del algoritmer. Ett CAPTCHA kan vara en bild där förvrängda tecken visas och dessa ska en människa försöka tolka för att få till exempel logga in på en viss sida. Ett CAPTCHA är alltså, precis som rubriken antyder, ett sätt att försöka skilja på människor och datorer.
Just nu känns det som om det vore skönt att äntligen få börja med våran sida som vi planerat att vi ska göra med hjälp av Django. För att det dock ska hända så måste vi nog lägga ner en hel del planering runt vem som ska göra vad och hur vi egentligen ska genomföra det hela. Just denna vecka har det blivit ovanligt lite sittande på grund av flytt till annan bostad och därav lite tid över till annat. Nu när det dock närmar sig jul och en del av ens fritid frigörs och vidgas så blir det säkerligen en hel del nötande och försökande.
Efter drygt en veckas uppehåll känns det faktiskt skönt att sätta sig ned med Django igen. Lite ovant kanske, men ändå skönt. Jag har börjat läsa igenom Djangobook, och jag måste säga att förklaringarna, exemplen och uppgifterna där känns väldigt vettiga och pedagogiska. Det är helt enkelt lätt att följa med.
Den här veckan har jag gått igenom templates, dvs. det som styr presentationen av applikationerna som det så fint heter i Django. Det har gått utmärkt måste jag säga, jag börjar vänja mig vid Django nu, och jag börjar mer och mer förstå hur det hela hänger ihop. Snart kanske man kan titulera sig Djangoutvecklare.
Uppehåll vecka 48 på grund av att server legat nere.