Zložitejšie cesty

Nebolo by pekné, aby sme mohli pesničky zoradzovať podľa rôznych kritérií?

Poďme zoradiť pesničky abecedne podľa umelca. Na uživateľský vstup použijeme URL. Ak zadáme adresu /artist, pesničky budú zoradené abecende podľa umelca.

Najprv zmeňme cestu.

@app.route('/playlist')
@app.route('/playlist/<sorting>')
def playlist(sorting=None):

playlist sa teraz zavolá, aj keď načítame /playlist aj keď načítame /playlist/artist, pričom v druhom prípade bude hodnota premennej sorting "artist".

Ešte potrebujeme ošetriť prípady, keď sorting bude napr. psicek. My nemáme pole psicek, takže potrebujeme to nejak ošetriť. Do index.html pošleme už zoradené pesničky.

if sorting in ['artist']:
    render_songs = sorted(songs, key=itemgetter(sorting))
else:
    render_songs = songs
return render_template('index.html', name="Dobré texty", songs=render_songs)

http://127.0.0.1:5000/playlist/artist nám už vráti abecedne zoradený zoznam pesničiek podľa mena umelca. Ak chceme zoradiť pesničky podľa ich názvu na adrese http://127.0.0.1:5000/playlist/title, stačí pridať 'title' do zoznamu povolených metód zoradzovania.

if sorting in ['artist', 'title']:

Nie je to milé, ako rýchlo sa veci vo Flasku implementujú? :)

Pridajme ešte, pre pohodlnosť, linky na rôzne druhy zoradzovania.

<a href="{{ url_for('playlist') }}">Základné zoradenie</a><br/>
<a href="{{ url_for('playlist', sorting='artist') }}">Zoraď abecedne podľa umelca</a><br/>
<a href="{{ url_for('playlist', sorting='title') }}">Zoraď abecedne podľa názvu pesničky</a><br/>

Celý kód HTML súboru sa nachádza tu a Python súboru tu.

Úloha:

Tabuľke, ktorú si vytvoril/(a) v úlohách z minulej kapitoly implementuj triedenie podľa aspoň 3 rôznych kritérií.

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

results matching ""

    No results matching ""