{"id":288,"date":"2020-12-22T16:09:11","date_gmt":"2020-12-22T16:09:11","guid":{"rendered":"https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara2\/?post_type=chapter&#038;p=288"},"modified":"2020-12-28T01:46:54","modified_gmt":"2020-12-28T01:46:54","slug":"tsuklid-html-is","status":"publish","type":"chapter","link":"https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara2\/chapter\/tsuklid-html-is\/","title":{"raw":"Ts\u00fcklid HTML-is","rendered":"Ts\u00fcklid HTML-is"},"content":{"raw":"Jinja2 v\u00f5imaldab kasutada ts\u00fckleid ka html-failis. N\u00e4iteks v\u00f5ime lisada arvud 0-st 10-ni j\u00e4rgnevalt:\r\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"bootstrap4\" data-enlighter-linenumbers=\"false\">{% for i in range(11) %}\r\n{{ i }}\r\n{% endfor %}<\/pre>\r\nLisame selle ts\u00fckli meie n\u00e4itefaili avaleht.html. Faili sisu on n\u00fc\u00fcd j\u00e4rgnev:\r\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"bootstrap4\" data-enlighter-linenumbers=\"false\">{% extends 'baas.html' %}\r\n{% block content %}\r\n&lt;h1&gt;1. teema&lt;\/h1&gt;\r\n{% for i in range(11) %}\r\n{{ i }}\r\n{% endfor %}\r\n{% endblock %}<\/pre>\r\nKui j\u00e4tame k\u00f5ik muu samaks, aga asendame keskkonnas PythonAnywhere faili avaleht.html ning p\u00e4rast seda valime men\u00fc\u00fcst <em>Web \u2192 Reload kasutaja.pythonanywhere.com<\/em> (s\u00f5na <em>kasutaja<\/em> asemel on iga\u00fchel oma kasutajanimi). Kui n\u00fc\u00fcd veebilehte v\u00e4rskendame, on tulemus j\u00e4rgnev:\r\n\r\n<img class=\"alignnone wp-image-361\" src=\"https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara2\/wp-content\/uploads\/sites\/18\/2020\/12\/image23.png\" alt=\"Ts\u00fcklid HTML-is\" width=\"700\" height=\"357\" \/>\r\n\r\nKui me aga lisaksime selle ts\u00fckli faili baas.html body-ossa, siis kuvataks arve 1-st 10-ni k\u00f5ikidel lehtedel, kus kuvatakse html-faili sisu, mis viitab failile baas.html.\r\n\r\nN\u00fc\u00fcd aga vaatame, kuidas postitusi kuvada ja j\u00e4tame juba loodud kujunduse praegu k\u00f5rvale. N\u00fc\u00fcd kasutame kokku 3 faili. Olgu faili baas.html sisu n\u00fc\u00fcd j\u00e4rgnev:\r\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"bootstrap4\" data-enlighter-linenumbers=\"false\">&lt;!DOCTYPE html&gt;\r\n&lt;html&gt;\r\n&lt;head&gt;\r\n&lt;meta charset=\"UTF-8\"&gt;\r\n{% block head %} &lt;title&gt;Minu esimene veebileht&lt;\/title&gt; {% endblock %}\r\n&lt;\/head&gt;\r\n&lt;body&gt;\r\n{% block body %} {% endblock %}\r\n&lt;\/body&gt;\r\n&lt;\/html&gt;<\/pre>\r\nPostituste kuvamiseks muudame app.py sisu ja seej\u00e4rel loome faili postitused.html. Olgu meil postitused app.py failis s\u00f5nastike j\u00e4rjendina.\r\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"bootstrap4\" data-enlighter-linenumbers=\"false\">from flask import Flask, render_template\r\napp = Flask(__name__)\r\n\r\nkoik_postitused = [{'pealkiri': 'Postitus 1', 'sisu':'1. postituse sisu', 'autor': 'Heidi'}, {'pealkiri': 'Postitus 2', 'sisu':'2. postituse sisu', 'autor': 'Elle'}]\r\n\r\n@app.route('\/postitused')\r\ndef blogi():\r\n\u00a0 \u00a0 return render_template(\"postitused.html\", postitused=koik_postitused)\r\nif __name__ == \"__main__\":\r\n\u00a0 \u00a0 app.run()<\/pre>\r\nN\u00fc\u00fcd aga soovime neid postitusi kuvada. Selleks saame kasutada ts\u00fcklit html-failis. Loome faili postitused.html, mille sisu on j\u00e4rgnev:\r\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"bootstrap4\" data-enlighter-linenumbers=\"false\">{% extends 'baas.html' %}\r\n{% block body %}\r\n&lt;h1&gt;Postitused&lt;\/h1&gt;\r\n{% for postitus in postitused %}\r\n&lt;h2&gt;{{ postitus.pealkiri }}&lt;\/h2&gt;\r\n&lt;h3&gt;Autor: {{ postitus.autor }}&lt;\/h3&gt;\r\n&lt;p&gt;{{ postitus.sisu }}&lt;\/p&gt;\r\n{% endfor %}\r\n{% endblock %}<\/pre>\r\nKui meil app.py failis oli s\u00f5nastike list muutujas <em>koik_postitused<\/em> ja renderdamisel lisasime <code class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">postitused=koik_postitused<\/code>, siis ts\u00fcklis on meil vaja kasutada sama muutujat - meie n\u00e4ite puhul <em>postitused<\/em>. Meie n\u00e4ite puhul on s\u00f5nastiku v\u00f5tmed <em>pealkiri, autor<\/em> ja <em>sisu<\/em>, mida kasutame ka for-ts\u00fcklis. Selle n\u00e4ite tulemus n\u00e4eb v\u00e4lja j\u00e4rgnev:\r\n\r\n<img class=\"alignnone wp-image-362\" src=\"https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara2\/wp-content\/uploads\/sites\/18\/2020\/12\/image8.png\" alt=\"Ts\u00fcklid HTML-is n\u00e4ide\" width=\"700\" height=\"482\" \/>\r\n\r\n&nbsp;","rendered":"<p>Jinja2 v\u00f5imaldab kasutada ts\u00fckleid ka html-failis. N\u00e4iteks v\u00f5ime lisada arvud 0-st 10-ni j\u00e4rgnevalt:<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"bootstrap4\" data-enlighter-linenumbers=\"false\">{% for i in range(11) %}\r\n{{ i }}\r\n{% endfor %}<\/pre>\n<p>Lisame selle ts\u00fckli meie n\u00e4itefaili avaleht.html. Faili sisu on n\u00fc\u00fcd j\u00e4rgnev:<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"bootstrap4\" data-enlighter-linenumbers=\"false\">{% extends 'baas.html' %}\r\n{% block content %}\r\n&lt;h1&gt;1. teema&lt;\/h1&gt;\r\n{% for i in range(11) %}\r\n{{ i }}\r\n{% endfor %}\r\n{% endblock %}<\/pre>\n<p>Kui j\u00e4tame k\u00f5ik muu samaks, aga asendame keskkonnas PythonAnywhere faili avaleht.html ning p\u00e4rast seda valime men\u00fc\u00fcst <em>Web \u2192 Reload kasutaja.pythonanywhere.com<\/em> (s\u00f5na <em>kasutaja<\/em> asemel on iga\u00fchel oma kasutajanimi). Kui n\u00fc\u00fcd veebilehte v\u00e4rskendame, on tulemus j\u00e4rgnev:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-361\" src=\"https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara2\/wp-content\/uploads\/sites\/18\/2020\/12\/image23.png\" alt=\"Ts\u00fcklid HTML-is\" width=\"700\" height=\"357\" srcset=\"https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara2\/wp-content\/uploads\/sites\/18\/2020\/12\/image23.png 1632w, https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara2\/wp-content\/uploads\/sites\/18\/2020\/12\/image23-300x153.png 300w, https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara2\/wp-content\/uploads\/sites\/18\/2020\/12\/image23-1024x523.png 1024w, https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara2\/wp-content\/uploads\/sites\/18\/2020\/12\/image23-768x392.png 768w, https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara2\/wp-content\/uploads\/sites\/18\/2020\/12\/image23-1536x784.png 1536w, https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara2\/wp-content\/uploads\/sites\/18\/2020\/12\/image23-65x33.png 65w, https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara2\/wp-content\/uploads\/sites\/18\/2020\/12\/image23-225x115.png 225w, https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara2\/wp-content\/uploads\/sites\/18\/2020\/12\/image23-350x179.png 350w\" sizes=\"auto, (max-width: 700px) 100vw, 700px\" \/><\/p>\n<p>Kui me aga lisaksime selle ts\u00fckli faili baas.html body-ossa, siis kuvataks arve 1-st 10-ni k\u00f5ikidel lehtedel, kus kuvatakse html-faili sisu, mis viitab failile baas.html.<\/p>\n<p>N\u00fc\u00fcd aga vaatame, kuidas postitusi kuvada ja j\u00e4tame juba loodud kujunduse praegu k\u00f5rvale. N\u00fc\u00fcd kasutame kokku 3 faili. Olgu faili baas.html sisu n\u00fc\u00fcd j\u00e4rgnev:<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"bootstrap4\" data-enlighter-linenumbers=\"false\">&lt;!DOCTYPE html&gt;\r\n&lt;html&gt;\r\n&lt;head&gt;\r\n&lt;meta charset=\"UTF-8\"&gt;\r\n{% block head %} &lt;title&gt;Minu esimene veebileht&lt;\/title&gt; {% endblock %}\r\n&lt;\/head&gt;\r\n&lt;body&gt;\r\n{% block body %} {% endblock %}\r\n&lt;\/body&gt;\r\n&lt;\/html&gt;<\/pre>\n<p>Postituste kuvamiseks muudame app.py sisu ja seej\u00e4rel loome faili postitused.html. Olgu meil postitused app.py failis s\u00f5nastike j\u00e4rjendina.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"bootstrap4\" data-enlighter-linenumbers=\"false\">from flask import Flask, render_template\r\napp = Flask(__name__)\r\n\r\nkoik_postitused = [{'pealkiri': 'Postitus 1', 'sisu':'1. postituse sisu', 'autor': 'Heidi'}, {'pealkiri': 'Postitus 2', 'sisu':'2. postituse sisu', 'autor': 'Elle'}]\r\n\r\n@app.route('\/postitused')\r\ndef blogi():\r\n\u00a0 \u00a0 return render_template(\"postitused.html\", postitused=koik_postitused)\r\nif __name__ == \"__main__\":\r\n\u00a0 \u00a0 app.run()<\/pre>\n<p>N\u00fc\u00fcd aga soovime neid postitusi kuvada. Selleks saame kasutada ts\u00fcklit html-failis. Loome faili postitused.html, mille sisu on j\u00e4rgnev:<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"bootstrap4\" data-enlighter-linenumbers=\"false\">{% extends 'baas.html' %}\r\n{% block body %}\r\n&lt;h1&gt;Postitused&lt;\/h1&gt;\r\n{% for postitus in postitused %}\r\n&lt;h2&gt;{{ postitus.pealkiri }}&lt;\/h2&gt;\r\n&lt;h3&gt;Autor: {{ postitus.autor }}&lt;\/h3&gt;\r\n&lt;p&gt;{{ postitus.sisu }}&lt;\/p&gt;\r\n{% endfor %}\r\n{% endblock %}<\/pre>\n<p>Kui meil app.py failis oli s\u00f5nastike list muutujas <em>koik_postitused<\/em> ja renderdamisel lisasime <code class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">postitused=koik_postitused<\/code>, siis ts\u00fcklis on meil vaja kasutada sama muutujat &#8211; meie n\u00e4ite puhul <em>postitused<\/em>. Meie n\u00e4ite puhul on s\u00f5nastiku v\u00f5tmed <em>pealkiri, autor<\/em> ja <em>sisu<\/em>, mida kasutame ka for-ts\u00fcklis. Selle n\u00e4ite tulemus n\u00e4eb v\u00e4lja j\u00e4rgnev:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-362\" src=\"https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara2\/wp-content\/uploads\/sites\/18\/2020\/12\/image8.png\" alt=\"Ts\u00fcklid HTML-is n\u00e4ide\" width=\"700\" height=\"482\" srcset=\"https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara2\/wp-content\/uploads\/sites\/18\/2020\/12\/image8.png 809w, https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara2\/wp-content\/uploads\/sites\/18\/2020\/12\/image8-300x207.png 300w, https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara2\/wp-content\/uploads\/sites\/18\/2020\/12\/image8-768x529.png 768w, https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara2\/wp-content\/uploads\/sites\/18\/2020\/12\/image8-65x45.png 65w, https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara2\/wp-content\/uploads\/sites\/18\/2020\/12\/image8-225x155.png 225w, https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara2\/wp-content\/uploads\/sites\/18\/2020\/12\/image8-350x241.png 350w\" sizes=\"auto, (max-width: 700px) 100vw, 700px\" \/><\/p>\n<p>&nbsp;<\/p>\n","protected":false},"author":29,"menu_order":6,"template":"","meta":{"pb_show_title":"on","pb_short_title":"","pb_subtitle":"","pb_authors":[],"pb_section_license":""},"chapter-type":[],"contributor":[],"license":[],"class_list":["post-288","chapter","type-chapter","status-publish","hentry"],"part":100,"_links":{"self":[{"href":"https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara2\/wp-json\/pressbooks\/v2\/chapters\/288","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara2\/wp-json\/pressbooks\/v2\/chapters"}],"about":[{"href":"https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara2\/wp-json\/wp\/v2\/types\/chapter"}],"author":[{"embeddable":true,"href":"https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara2\/wp-json\/wp\/v2\/users\/29"}],"version-history":[{"count":5,"href":"https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara2\/wp-json\/pressbooks\/v2\/chapters\/288\/revisions"}],"predecessor-version":[{"id":448,"href":"https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara2\/wp-json\/pressbooks\/v2\/chapters\/288\/revisions\/448"}],"part":[{"href":"https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara2\/wp-json\/pressbooks\/v2\/parts\/100"}],"metadata":[{"href":"https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara2\/wp-json\/pressbooks\/v2\/chapters\/288\/metadata\/"}],"wp:attachment":[{"href":"https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara2\/wp-json\/wp\/v2\/media?parent=288"}],"wp:term":[{"taxonomy":"chapter-type","embeddable":true,"href":"https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara2\/wp-json\/pressbooks\/v2\/chapter-type?post=288"},{"taxonomy":"contributor","embeddable":true,"href":"https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara2\/wp-json\/wp\/v2\/contributor?post=288"},{"taxonomy":"license","embeddable":true,"href":"https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara2\/wp-json\/wp\/v2\/license?post=288"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}