-holat : modul:
/application.py
/templates
/hello.html
2-holat

|
-holat : modul:
/application.py
/templates
/hello.html
2-holat
|
bet | 6/13 | Sana | 30.07.2024 | Hajmi | 252,31 Kb. | | #268934 |
Bog'liq Flask notes1-holat : modul:
/application.py
/templates
/hello.html
2-holat : paket:
/application
/__init__.py
/templates
/hello.html
Shablonlar uchun siz Jinja2 shablonlarining to'liq quvvatidan foydalanishingiz mumkin. Qo'shimcha ma'lumot olish uchun Jinja2 shablonining rasmiy hujjatlariga o'ting .
Mana namuna shablon:
Hello from Flask
{% if name %}
Hello {{ name }}!
{% else %}
Hello, World!
{% endif %}
configShablonlar ichida siz , requestva [ 1 ]session obyektlariga hamda va funksiyalariga kirishingiz mumkin .g url_for()get_flashed_messages()
Agar meros qo'llanilsa, shablonlar ayniqsa foydalidir. Agar bu qanday ishlashini bilmoqchi bo'lsangiz, Andoza merosiga qarang . Asosan shablonni meros qilib olish har bir sahifada ma'lum elementlarni (masalan, sarlavha, navigatsiya va altbilgi) saqlashga imkon beradi.
Avtomatik qochish yoqilgan, shuning uchun agar nameHTML bo'lsa, u avtomatik ravishda chiqib ketadi. Agar siz o'zgaruvchiga ishonishingiz mumkin bo'lsa va u xavfsiz HTML bo'lishini bilsangiz (masalan, u wiki belgilarini HTMLga o'zgartiruvchi moduldan kelgani uchun) sinfdan Markupyoki |safeshablondagi filtrdan foydalanib, uni xavfsiz deb belgilashingiz mumkin. Ko'proq misollar uchun Jinja 2 hujjatlariga o'ting.
Bu erda sinf qanday ishlashi haqida asosiy kirish Markup:
>>> from markupsafe import Markup
>>> Markup('Hello %s!') % ''
Markup('Hello <blink>hacker</blink>!')
>>> Markup.escape('')
Markup('<blink>hacker</blink>')
>>> Markup('Marked up » HTML').striptags()
'Marked up » HTML'
O'zgarishlar jurnali
[ 1 ]
Bu gob'ekt nima ekanligini bilmayapsizmi? Bu o'z ehtiyojlaringiz uchun ma'lumotlarni saqlashingiz mumkin bo'lgan narsa. SQLite 3 dan Flask bilan foydalanishflask.g va foydalanish uchun hujjatlarga qarang .
Soʻrov maʼlumotlariga kirish
Veb-ilovalar uchun mijoz serverga yuboradigan ma'lumotlarga munosabat bildirish juda muhimdir. Flask-da bu ma'lumot global requestob'ekt tomonidan taqdim etiladi. Agar sizda Python bilan tajribangiz bo'lsa, bu ob'ekt qanday global bo'lishi mumkinligi va Flask qanday qilib xavfsiz bo'lishi mumkinligi haqida savol tug'ilishi mumkin. Javob - mahalliy aholi:
Mahalliy kontekst
Insayder ma'lumotlari
Agar siz bu qanday ishlashini va mahalliy aholi bilan testlarni qanday amalga oshirishingiz mumkinligini tushunmoqchi bo'lsangiz, ushbu bo'limni o'qing, aks holda uni o'tkazib yuboring.
Flaskdagi ba'zi ob'ektlar global ob'ektlardir, lekin odatiy turdagi emas. Ushbu ob'ektlar aslida ma'lum bir kontekst uchun mahalliy bo'lgan ob'ektlar uchun proksi-server hisoblanadi. Qanday og'iz. Lekin, aslida, buni tushunish juda oson.
Tasavvur qiling-a, kontekst ishlov berish mavzusidir. So'rov keladi va veb-server yangi ish zarrachasini yaratishga qaror qiladi (yoki boshqa narsa, asosiy ob'ekt iplardan tashqari parallel tizimlar bilan ishlashga qodir). Flask o'zining ichki so'rovini ko'rib chiqishni boshlaganida, joriy mavzu faol kontekst ekanligini aniqlaydi va joriy dastur va WSGI muhitlarini shu kontekstga (ip) bog'laydi. U buni aqlli tarzda amalga oshiradi, shunda bitta ilova boshqa dasturni buzmasdan ishga tushirishi mumkin.
Xo'sh, bu siz uchun nimani anglatadi? Asosan, agar siz birlik testi kabi biror narsa qilmasangiz, bu holatni butunlay e'tiborsiz qoldirishingiz mumkin. So'rov ob'ektiga bog'liq bo'lgan kod to'satdan buzilishini sezasiz, chunki so'rov ob'ekti yo'q. Yechim so'rov ob'ektini o'zingiz yaratish va uni kontekstga bog'lashdir. Birlik sinovi uchun eng oson yechim kontekst menejeridan foydalanishdir test_request_context() . Bayonot bilan birgalikda withu test so'rovini bog'laydi, shunda siz u bilan o'zaro aloqada bo'lishingiz mumkin. Mana bir misol:
|
| |