Django шаблони
Last updated
Last updated
Час вивести деякі дані! Django надає нам певні допоміжні, вбудовані шаблонні теги для цього.
Як бачите, в HTML, ви не можете помістити Python код, тому що браузери не зрозуміють його. Вони знають лише HTML. Ми знаємо, що HTML більшою мірою є статичною, в той час як Python є більш динамічною мовою.
Шаблонні теги Django дозволяють нам передавати Python-подібні речі в HTML, таким чином можна розробляти динамічні веб-сайти швидше і простіше. Ой!
В попередньому розділі ми надали нашому шаблону список постів у змінній posts
. А тепер відобразимо це в HTML.
Щоб надрукувати змінну в Django шаблоні, ми використовуємо подвійні фігурні дужки з іменем змінної всередині:
Спробуйте це в шаблоні blog/templates/blog/post_list.html
. Починаючи з другого <div>
до третього </div>
замініть все на {{ posts }}
. Збережіть файл і оновіть сторінку, щоб побачити результат:
Як можна побачити, все що ми отримали, це:
Означає, що Django розуміє це як список об'єктів. Пам'ятаєте із розділу Вступ до Python як ми можемо виводити списки? Звичайно, за допомогою циклу for! У Django шаблонах ви можете створити їх наступним чином:
Спробуйте це у вашому шаблоні.
Працює! Однак, бажано, щоб вони були виведені як статичні пости, які ми створили раніше у розділі Вступ до HTML. Ви можете компонувати теги HTML і шаблонні теги. Наша частина body
буде виглядати так:
Все, що ви напишете між {% for %}
та {% endfor %}
повторюватиметься для кожного об'єкта у списку. Оновіть сторінку:
Чи помітили ви, що цього разу ми використали трохи відмінні позначення {{ post.title }}
або {{ post.text }}
? Ми маємо доступ до даних, що містяться в кожному полі, визначеному в нашій моделі Post
. Також |linebreaksbr
перенаправляє текст посту через фільтр щоб конвертувати розриви ліній в абзаци.
Було б непогано побачити як ваш сайт буде працювати в інтернеті, так? Давайте спробуєм розгорнути його в PythonAnywhere знову. Ось наступні кроки...
По-перше, залийте ваш код на GitHub
Потім, увійдіть до PythonAnywhere та перейдіть до Bash консолі (або запустіть нову) і виконайте команди:
Нарешті, перейдіть на вкладку Web і натисніть Reload (перезавантажити) у веб-додатку.
Вітаємо! А тепер спробуйте додати новий пост у вашому Django адміністраторі (не забудьте додати published_date!), потім перезавантажте сторінку, щоб переконатись, чи з'явився новий пост.
Все працює, як годинник? Ми пишаємося! Відійдіть ненадовго від комп'ютера, ви заслуговуєте на перерву. :)