Bosh sahifa Wiki Flask

Flask

Flask — Armin Ronacher tomonidan 2010-yilda taqdim etilgan, Python tilida yozilgan mikro-veb-freymvork. “Mikro” so’zi freymvorkning cheklangan imkoniyatga ega ekanini emas, balki uning asosiy qismi ataylab minimal saqlanib, qolgan barcha funksionallik kengaytmalar orqali qo’shilishini anglatadi.

Mikro-freymvork falsafasi

Flask boshidanoq ma’lumotlar bazasi abstraktsiyasi, forma validatsiyasi yoki foydalanuvchi autentifikatsiyasi kabi imkoniyatlarni majburiy qilib kiritmaydi. Dasturchi loyihasi uchun zarur bo’lgan komponentlarni o’zi tanlab qo’shadi, bu esa Flask’ni katta, hamma narsani o’z ichiga olgan freymvorklarga qaraganda ancha moslashuvchan qiladi.

Werkzeug va Jinja2 asosida qurilishi

Flask ikkita mustaqil kutubxona ustiga qurilgan: Werkzeug — WSGI vositalari to’plami bo’lib, HTTP so’rov va javoblarni past darajada boshqaradi, Jinja2 esa shablon (template) motori bo’lib, Python ma’lumotlarini HTML sahifalar ichiga joylashtirish imkonini beradi. Bu ikkala kutubxona ham xuddi Ronacher tomonidan yaratilgan.

Django bilan solishtirish

Django barcha kerakli komponentlarni (ORM, admin panel, autentifikatsiya) o’z ichiga olgan “batteries included” freymvork bo’lsa, Flask aksincha, dasturchiga to’liq erkinlik beradi. Bu farq Flask’ni kichik xizmatlar, API‘lar va o’rganish maqsadidagi loyihalar uchun, Django‘ni esa yirik, tuzilgan veb-ilovalar uchun ko’proq mos qiladi.

Kengaytmalar orqali funksionallik qo’shish

Flask-SQLAlchemy ma’lumotlar bazasi bilan ishlash uchun, Flask-Login foydalanuvchi seansini boshqarish uchun, Flask-RESTful esa API qurish uchun keng qo’llaniladigan kengaytmalar hisoblanadi. Bu modulli yondashuv dasturchiga loyihaning haqiqiy ehtiyojiga mos infratuzilma qurish imkonini beradi, ortiqcha imkoniyatlarni yuklab olishga majburlamaydi.

Qo’llanilish sohalari

Flask kichik va o’rta hajmdagi veb-ilovalar, mashinali o’qitish modellarini xizmat sifatida taqdim etish (model serving) va tezkor prototiplash uchun keng qo’llaniladi. Uning soddaligi tufayli u ko’pincha Python‘da veb-ishlab chiqishni o’rganishni boshlash uchun ham tavsiya etiladi.

Bog’liq tushunchalar

Python, Django, Werkzeug, Jinja2, WSGI, Mikro-freymvork, FastAPI