Flask – це популярний Python фреймворк для створення вебдодатків, відомий своєю простотою та гнучкістю. Для створення вебдодатків він надає лише базові можливості, залишаючи розробникам максимальний контроль над роботою додатка.
На даному курсі ви познайомитеся із фреймворком Flask та отримаєте необхідні теоретичні та практичні знання для побудови власної програми або підтримки наявного проєкту. Протягом курсу ми будуватимемо повноцінний вебдодаток для контролю витрат, котрий надалі буде вашим базисом, на який можна посилатися.
На курсі ми обговоримо всі підводні камені, на які може «наступити» новачок і поговоримо про кращі практики, що використовуються в розробці вебдодатків за допомогою Flask. Буде розглянуто процес створення вебдодатка з використанням Jinja2 Templates - робота з циклами та умовами, успадкування форм. Ви познайомитесь з архітектурним стилем побудови вебсервісів REST, познайомитесь з SQLAlchemy та зв'яжете додаток із SQLite3. Далі ви дізнаєтесь, для чого потрібна і як використовувати валідацію даних користувача на стороні сервера, і що таке серіалізація та десеріалізація даних. Ви зрозумієте, що таке міграції в базі даних, для чого вони використовуються та як залучати на практиці інструменти для міграцій у Flask. Ви розглянете, що таке аутентифікація і чим вона відрізняється від авторизації, які існують REST способи аутентифікації, познайомитесь зі стандартом створення токенів JWT. Також ви дізнаєтесь, як правильно тестувати Flask додаток, які тести бувають, що таке потоки, примітиви синхронізації в Python, як вони можуть прискорити вашу програму, розглянете використання асинхронності в вашому додатку. На останніх уроках ви на практиці розглянете, що таке Docker і як доставляти програми клієнту, навчитеся писати Dockerfile і розгорнете ваш додаток на Heroku.
Насамперед налаштуємо середовище для розробки, встановимо всі залежності.
Також ми познайомимося з Flask, дізнаємося, як він працює і з яких компонентів складається: уявлення, моделі та контролери. Побудуємо перший вебдодаток з використанням Jinja2 Templates: робота з циклами та умовами, успадкування форм.