Funkciado en la Ŝablono

Skip to content

Ĉi tio estas maŝine tradukita teksto kiu povas enhavi erarojn!

Neniaj solvoj?!

Ĉi tiu Nivelo ne havas rektajn solvojn! Ĉi tie la taskoj estas multe aranĝitaj por ke vi povu eksperimenti memstare.

Easy Tasko 1 - JavaScript

Aldonu JavaScript-skripton al via ŝablono (de Nivelo 3).

Hint

Ĉi tie ankaŭ url_for estas uzata por ligi. Metu la dosieron en static.

Hard Tasko 2 - Serĉkampo

JavaScript refresher.

Ĉu vi bezonas refreŝigon pri JavaScript, vi povas iri tien: JavaScript w3schoolsMozilla Web Docs.

Aldonu serĉkampeton al la retejo. Vi povas aldoni eblecon por serĉi laŭ:

  • Nomo kaj familia nomo
  • Telefonnumero
  • Adreso
  • Laboro

Cracked Tasko 4 - Aldoni Kontaktojn

JSON (Momoa)

Estus saĝe nun refari app.py por konservi la kontaktojn en .json-dosiero.

Rigardu kiel tio povas esti farita ĉi tie: JSON.

Aldonu butonon per kiu vi povas aldoni kontaktojn al via paĝo. Tio ne bezonas esti pli komplika ol uzi HTML Form kun kelkaj <input> kampoj por la diversaj valoroj de kontakto.

Poste, vi povas stiligi la paĝon iomete por ke ĝi aspektu iom pli profesia.

How!?

Estas saĝe rigardi HTTP Methods sur la propraj paĝoj de Flask.

Ekzemplo de kiel la funkcioj povas finiĝi

Ekzemplo de reteja stiligado

Cracked Tasko 5 - Paĝigado

Aldonu “paĝigadon” al la kontakto listo. Tio estas la ebleco havi kelkajn kontaktojn sur unu paĝo kaj pli sur la sekva paĝo. Vi povas fari tion per uzi vojon kiel ĉi tiu:

@app.route('/contacts/<int:page>')
def paginate(page):
    # kodo por akiri "paĝon"

Vi ekzemple povas ĉi tie meti limon je 5 aŭ 10 kontaktoj por paĝo, poste krei butonojn por iri al la sekva paĝo kaj la antaŭa paĝo.

Pli daŭre

Se vi sentas eksperimenti pli daŭre kun aferoj: jen superrigardo de ĉiuj blokoj en Jinja, kion ili faras kaj kiel vi uzas ilin. Estas ankaŭ multe da bongustaĵoj troveblaj en la propraj paĝoj de Flask kaj Jinja Flask Documentation kaj Jinja Documentation.

Bloko Celo Ekzemplo
if / elif / else Kontroli valorojn {% if user.is_admin %}Bonvenon administranto{% else %}Saluton uzanto{% endif %}
for “Loopi” super elementoj {% for item in items %}{{ item }}{% endfor %}
set Fiksi variablon {% set total = price * qty %}Totalo: {{ total }}
with Temporaj variabloj {% with u = users[0] %}{{ u.name }}{% endwith %}
block Definas superŝargeblan regionon {% block content %}...{% endblock %}
extends Konstrui sur alia ŝablono {% extends "base.html" %}
include Enmeti alian ŝablonon {% include "menu.html" %}
macro Funkcio, kiun vi povas rekuzi {% macro user(u) %}{{ u.name }}{% endmacro %}
call Uzi makron {% call mymacro() %}content{% endcall %}
filter Filtrado sur bloko {% filter upper %}hello{% endfilter %}
raw Ignori Jinja ene de bloko {% raw %}{{ not_eval }}{% endraw %}
do Ruli kodon sen elprinti {% do items.append("new") %}