2. Návrh databázovej schémy v MongoDB

Nanooq IT
Nanooq IT
Jul 28, 2017 · 1 min read

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’

)

Nanooq IT

Written by

Nanooq IT

We write about our work, ideas, projects and interesting IT topics

Welcome to a place where words matter. On Medium, smart voices and original ideas take center stage - with no ads in sight. Watch
Follow all the topics you care about, and we’ll deliver the best stories for you to your homepage and inbox. Explore
Get unlimited access to the best stories on Medium — and support writers while you’re at it. Just $5/month. Upgrade