Differences between revisions 1 and 5 (spanning 4 versions)
Revision 1 as of 2009-03-10 12:24:52
Size: 39
Editor: dial-92-52-21-192-orange
Comment:
Revision 5 as of 2009-03-10 12:54:01
Size: 1388
Editor: dial-92-52-21-192-orange
Comment:
Deletions are marked like this. Additions are marked like this.
Line 2: Line 2:

Django umožňuje pracovať s relačnou databázou pomocou objektovo-relačného
modelu. Robí to pomocou techniky menom ''objektovo-relačné mapovanie'' (ORM).
Z praktického hľadiska táto technika slúži na izolovanie programátora aplikácie
od databázového servra, Je možné začať vyvíjať aplikáciu lokálne pod sqlite a
v reálnom nasadení potom použiť povedzme Oracle, pričom jediná zmena je v {{{settings.py}}}.
Programátor sa nemusí zaoberať {{{SQL}}}, stačí mu vedieť python.

Nevýhoda tejto techniky je v tom, že neumožňuje účinne používať mnohé techniky určené
pre zvýšenie výkonnosti databázového servra (triggery a pod.). Primárnym účelom
djanga je vytvárať dynamické webové stránky, ale napríklad veľká aplikácia
ako napríklad http://is.stuba.sk vyžaduje trochu zložitejší návrh databázovej schémy,
než to umožňuje django.

== Začnime ==

Vytvorme si nový projekt s názvom {{{skola}}} a v ňom aplikáciu s názvom {{{ziacka}}}.

Ideme implementovať dátový model žiackej knižky naivným (a pre tento účel nesprávnym) spôsobom:
ako jednu veľkú tabuľku s mnohými stĺpcami. Nesmieme zabudnúť doplniť aplikáciu v {{{settings.py}}}.

V adresári ziacka máme súbor {{{models.py}}}, ktorý vyzerá takto:

{{attachment:models.py}}

Jednoduchý model a práca s ním

Django umožňuje pracovať s relačnou databázou pomocou objektovo-relačného modelu. Robí to pomocou techniky menom objektovo-relačné mapovanie (ORM). Z praktického hľadiska táto technika slúži na izolovanie programátora aplikácie od databázového servra, Je možné začať vyvíjať aplikáciu lokálne pod sqlite a v reálnom nasadení potom použiť povedzme Oracle, pričom jediná zmena je v settings.py. Programátor sa nemusí zaoberať SQL, stačí mu vedieť python.

Nevýhoda tejto techniky je v tom, že neumožňuje účinne používať mnohé techniky určené pre zvýšenie výkonnosti databázového servra (triggery a pod.). Primárnym účelom djanga je vytvárať dynamické webové stránky, ale napríklad veľká aplikácia ako napríklad http://is.stuba.sk vyžaduje trochu zložitejší návrh databázovej schémy, než to umožňuje django.

Začnime

Vytvorme si nový projekt s názvom skola a v ňom aplikáciu s názvom ziacka.

Ideme implementovať dátový model žiackej knižky naivným (a pre tento účel nesprávnym) spôsobom: ako jednu veľkú tabuľku s mnohými stĺpcami. Nesmieme zabudnúť doplniť aplikáciu v settings.py.

V adresári ziacka máme súbor models.py, ktorý vyzerá takto:

   1 from django.db import models
   2 
   3 class Znamka(models.Model):
   4 
   5     # meno a priezvisko ziaka
   6     meno_ziaka=models.CharField(max_length=30)
   7     priezvisko_ziaka=models.CharField(max_length=30)
   8     # meno a priezvisko ucitela
   9     meno_ucitela=models.CharField(max_length=30)
  10     priezvisko_ucitela=models.CharField(max_length=30)
  11     # predmet, z ktoreho bola znamka udelena
  12     predmet=models.CharField(max_length=50)
  13     # znamka
  14     znamka=models.PositiveIntegerField()

models.py

KMaDGWiki: ProgramovanieInternetovychAplikacii/SimpleModel (last edited 2009-03-10 20:54:20 by dial-92-52-21-192-orange)