Dynamické odpovede servera

Z Flaskovej funkcie môžeme vrátiť hocičo, nielen statický reťazec. Napríklad môžeme vrátiť hodnotu premennej.

answer_to_life = 42
@app.route('/')
def hello_world():
    return answer_to_life

Vráti, podľa očakávania, 42.


Premenná však nemusí byť len konštantná. Môže to byť aj výsledok volania funkcie, napríklad +.

two_plus_two_minus_one = 2 + 2 - 1
@app.route('/')
def hello_world():
    return two_plus_two_minus_one

Vráti, podľa očakávania, 3.

Čas

Dokonca môžeme vrátiť aktuálny čas!

from datetime import datetime

teraz = datetime.now()
@app.route('/')
def hello_world():
    return 'Teraz je ' + str(teraz)

Dostaneme niečo podobné ako Teraz je 2017-12-19 09:11:10.098904. Ak sa však pokúsime obnoviť stránku, dostaneme stále ten istý výsledok, nie aktuálny čas.

Problém je, že naša teraz sa priraďuje hodnota mimo hello_world() a priradenie prebehne len raz, a to v čase spustenia servera. Ak by sme chceli vrátiť aktuálny čas, museli by sme teraz zavolať pri každom zobrazení stránky. kde to teda urobiť?

hello_world() sa zavolá pri každom načítaní stránky, tam teda budeme priraďovať hodnotu teraz.

@app.route('/')
def hello_world():
    teraz = datetime.now()
    return 'Teraz je ' + str(teraz)

Teraz sa správny čas zobrazí aj pri obnovení stránky.


Úloha:

Naformátuj výstup funkcie hello_world() tak, aby bol vo formáte:
Dnes je <deň>.<mesiac>.<rok>. Aktuálny čas je <hodina>:<minúta>:<sekunda>.
Ukážkový program nájdeš na Githube [datetime_formatted].

Podmienený výpis

hello_world() je funkcia ako každá iná, preto nám nič nebráni používať hocijaké Python konštrukcie.

Program, čo vypíše OBED! na pravé poludnie, v ostatných prípadoch PRACUJ!.

def hello_world():
    teraz = datetime.now()
    if teraz.hour == 12 and teraz.minute == 0:
        return 'OBED!'
    else:
        return 'PRACUJ!'

Úloha:

Zmeň hello_world() tak, aby stránka vypísala, čo akurát robíš.
Napríklad:

  • od 23:00 - 6:00 spíš,
  • od 6:01 po 14:00 si v škole
  • od 14:01 po 14:30 obeduješ
  • a medzi 14:31 a 23:00 pracuješ na ovládnutí sveta.

Ukážkový program opäť nájdeš na Githube [world_domination].

results matching ""

    No results matching ""