|
From flask import Flask app = Flask
|
bet | 1/13 | Sana | 30.07.2024 | Hajmi | 252,31 Kb. | | #268934 |
Bog'liq Flask notes
Minimal ilova
Minimal Flask ilovasi quyidagicha ko'rinadi:
from flask import Flask
app = Flask(__name__)
@app.route("/")
def hello_world():
return "
Hello, World!
"
Xo'sh, bu kod nima qildi?
Avval biz Flasksinfni import qildik. Ushbu sinfning namunasi bizning WSGI ilovamiz bo'ladi.
Keyin biz ushbu sinfning namunasini yaratamiz. Birinchi argument dastur moduli yoki paketining nomidir. __name__Buning uchun ko'p hollarda mos keladigan qulay yorliqdir. Bu Flask shablon va statik fayllar kabi resurslarni qayerdan qidirishni bilishi uchun kerak.
Keyin biz route()Flaskga qaysi URL bizning funktsiyamizni ishga tushirishi kerakligini aytish uchun dekoratordan foydalanamiz.
Funktsiya biz foydalanuvchi brauzerida ko'rsatmoqchi bo'lgan xabarni qaytaradi. Standart kontent turi HTML, shuning uchun qatordagi HTML brauzer tomonidan ko'rsatiladi.
Uni hello.pyyoki shunga o'xshash narsalarni saqlang. Ilovangizga qo'ng'iroq qilmaslikka ishonch hosil qiling, flask.pychunki bu Flaskning o'ziga zid keladi.
Ilovani ishga tushirish uchun flaskyoki buyrug'idan foydalaning . Siz Flaskga opsiya bilan arizangiz qayerda ekanligini aytishingiz kerak .python -m flask--app
$ flask --app hello run
* Serving Flask app 'hello'
* Running on http://127.0.0.1:5000 (Press CTRL+C to quit)
Ilovani aniqlash harakati
Yorliq sifatida, agar fayl nomi app.pyyoki bo'lsa wsgi.py, dan foydalanishingiz shart emas --app. Qo'shimcha ma'lumot olish uchun buyruq qatori interfeysiga qarang .
Bu juda oddiy o'rnatilgan serverni ishga tushiradi, bu sinov uchun etarli, lekin ishlab chiqarishda foydalanmoqchi bo'lgan narsa emas. Joylashtirish variantlari uchun ishlab chiqarishga joylashtirish ga qarang .
Endi http://127.0.0.1:5000/ ga o'ting va siz o'zingizning salom dunyo salomingizni ko'rishingiz kerak.
Agar boshqa dastur allaqachon 5000 portdan foydalanayotgan bo'lsa, siz yoki server ishga tushirishga harakat qilganini ko'rasiz. Buni qanday hal qilish uchun allaqachon ishlatilgan manzilga qarang .OSError: [Errno 98]OSError: [WinError 10013]
Tashqi ko'rinadigan server
Agar siz serverni ishga tushirsangiz, serverga tarmoqdagi boshqa kompyuterlardan emas, faqat o'z kompyuteringizdan kirish mumkinligini sezasiz. Bu sukut bo'yicha, chunki disk raskadrovka rejimida dastur foydalanuvchisi kompyuteringizda o'zboshimchalik bilan Python kodini bajarishi mumkin.
Agar siz tuzatuvchini o'chirib qo'ygan bo'lsangiz yoki tarmog'ingizdagi foydalanuvchilarga ishonsangiz, --host=0.0.0.0buyruq qatoriga qo'shish orqali serverni hammaga ochiq qilishingiz mumkin:
$ flask run --host=0.0.0.0
Bu sizning operatsion tizimingizga barcha umumiy IP-larni tinglashni aytadi.
Nosozliklarni tuzatish rejimi
Buyruq faqat ishlab chiqish serverini ishga tushirishdan ko'proq narsani qila oladi. Nosozliklarni tuzatish rejimini yoqish orqali, agar kod o'zgartirilsa, server avtomatik ravishda qayta yuklanadi va so'rov paytida xatolik yuzaga kelsa, brauzerda interaktiv tuzatuvchini ko'rsatadi.flask run
Ogohlantirish
Nosozliklarni tuzatuvchi brauzerdan o'zboshimchalik bilan Python kodini bajarishga imkon beradi. U pin bilan himoyalangan, ammo baribir katta xavfsizlik xavfini anglatadi. Ishlab chiqarish muhitida ishlab chiqish serverini yoki tuzatuvchini ishga tushirmang.
Nosozliklarni tuzatish rejimini yoqish uchun --debugopsiyadan foydalaning.
$ flask --app hello run --debug
* Serving Flask app 'hello'
* Debug mode: on
* Running on http://127.0.0.1:5000 (Press CTRL+C to quit)
* Restarting with stat
* Debugger is active!
* Debugger PIN: nnn-nnn-nnn
Shuningdek qarang:
Tuzatish rejimida ishlash haqida ma'lumot olish uchun ishlab chiqish serveri va buyruq qatori interfeysi .
O'rnatilgan tuzatuvchi va boshqa tuzatuvchilardan foydalanish haqida ma'lumot olish uchun Ilova xatolarini tuzatish .
Xatolarni jurnalga yozish vayaxshi xato sahifalarini ko'rsatish uchun dastur xatolarini qayd qilish va qayta ishlash .
HTML qochish
HTML-ni (Flask-dagi standart javob turi) qaytarayotganda, in'ektsiya hujumlaridan himoya qilish uchun chiqishda ko'rsatilgan foydalanuvchi tomonidan taqdim etilgan qiymatlardan qochish kerak. Keyinchalik taqdim etilgan Jinja bilan yaratilgan HTML shablonlari buni avtomatik ravishda bajaradi.
|
| |