Referencie na stránky v zozname súborov

Zápisník experimentátora

V zozname súborov na stiahnutie som doplnil referencie na stránky, ktoré sa na tieto súbory odkazujú. Zoznam stránok sa ukazuje menším písmom pod popisom ako zoznam hypertextov. Zoznam obsahuje odkazy na články v blogu a na stránky.

Teraz bude pre čitateľa pohodlnejšie hľadanie súvislostí medzi súbormi a medzi stránkami. App Engine toto umožňuje pohodlným spôsobom vyhľadávať. V NDB databáze mám uložené zoznamy stránok, blogov a samotných súborov na stiahnutie. Referenčný zoznam je ukladaný v memcache a len raz za niekoľko hodín sa prepočíta podľa údajov v databáze. Tesne pred vykresľovaním zoznamu súborov sa oba zoznamy zlúčia a stránka sa vykreslí.

V pythone vyzerá kód na prácu s memcache takto.

# ziskanie zoznamu referencii
res = memcache.get('download.ref')
if(res is None):
    res = []
    query = Article.query()
    articles = query.fetch(projection=[Article.title, Article.url, Article.download])
    for article in articles:
        dwnl = article.download.split(',')
        for j in dwnl:
            if len(j.strip())>0:
                item = {'id': j.strip(), 'title': article.title, 'url': '/blog/'+article.url}
                res.append(item)
    query = Page.query()
    pages = query.fetch(projection=[Page.title, Page.url, Page.download])
    ...
    memcache.add('download.ref',res,3600*5)

# ziskanie zoznamu suborov
qf = memcache.get('download.qf')
if(qf is not None):
    template_values['uploads'] = qf
else:
    ...

# doplnenie referencii do vystupnych udajov
for i in template_values['uploads']:
    i.ref = []
    for j in res:
        if j['id'] == i.shortcut:
            i.ref.append(j)

template = JINJA_ENVIRONMENT.get_template('download.html')
self.response.write(template.render(template_values))

02.10.2015


Menu