2. Návrh databázovej schémy v MongoDB
Vygenerovanie REST API je v Pythone jednoduchšie, než by ste si mysleli. Stačí definovať pomocou objektovo — relačného mapovania databázovú schému a namapovať jednotlivé triedy priamo do databázy, z ktorých sa budú REST API požiadavky volať a generovať. V našom príklade som definovala databázu v Pythone nasledovne, ktorá bude vracať JSON dáta ako podklad pre naše API.
class Pouzivatel(Document):
meno = StringField(max_length = 50, required = True)
priezvisko = StringField(max_length = 50, required = True)
emailova_adresa = StringField(unique = True)
fotka = ReferenceField(Fotka)
datum_vytvorenia = DateTimeField(default = datetime.datetime.now)
fakulta = ReferenceField(EmbededDocumentField(Fakulta))
def __unicode__(self):
return “%s %s” % self.meno, self.priezvisko
def to_dict(self):
return make_dict(self)
class Fotka(Document):
cesta_k_suboru = StringField()
def to_dict(self):
return make_dict(self)
class Fakulta(EmbedeedDocument):
nazov = StringField(max_length = 60, required = True)
slug = StringField(max_length = 60, required = True)
datum_vytvorenia = DateTimeField(default = datetime.datetime.now, required = True)
odbory = ListField(StringField(max_length = 50))
def get_absolute_url(self):
return url_for(‘fakulty’, kwargs = {“slug” : self.slug})
def __unicode__(self) :
return self.nazov
def to_dict(self):
return make_dict(self)
Ešte predtým je dobré si vytvoriť súbor connect.py, ktorý som napísala nasledovne pre inšpiráciu. Ak chcete nie je nutné definovať aj superglobálne premenné, ale je to dobrým zvykom pre lepšiu funkcionalitu aplikácie:
__author__ = ‘SvetlanaMargetova’
from flask.ext.mongoengine import MongoEngine
from mongoengine import connect
#mongodb settings
app.config[“MONGODB_SETTINGS”] = {
‘DB’ :’meno-databazy’,
}
db = MongoEngine(app)
#connect to database
connect(
‘meno-databazy’,
host = ‘mongodb://localhost/meno-databazy’
)
