python flask tutorial introduction flask
Цей вступний підручник з Python Flask пояснює, що таке Flask, приклад встановлення Python, Virtualenv, Flask Hello World із розділом про приклади коду, налагодження та тестування:
Розробка веб-сайтів - це більше мистецтво, аніж вміння. Це вимагає терпіння та працьовитості, а також наполегливості, мужності та відданості, щоб створити те, що необхідно для справжнього успіху. У наші дні учням важливо якомога швидше приступити до швидкості.
Ми створили цей підручник з Python Flask, щоб студенти змогли швидше реалізувати просте, а також складне веб-програмування за допомогою Python 3.
Цей підручник з Python Flask більше схожий на підручник для початківців, який охоплюватиме встановлення Python, Virtualenv та інших важливих пакетів. У цій серії навчальних посібників ми також встановимо Flask разом з іншими необхідними плагінами Flask. Ми також включили розділ про налагодження коду, тестування та постійну інтеграцію за допомогою Git Action.
Що ви дізнаєтесь:
Список підручників у цій серії колб
Підручник No1: Підручник з колби з Python - Вступ до колби для початківців
Підручник No2: Шаблон, форма, вигляд та перенаправлення колби з прикладами
Підручник No3: Обробка бази даних колб - Як використовувати колбу з базою даних
Підручник No4: Програма Flask та макет проекту Flask за допомогою проекту та Bootstrap
Підручник No5: Шаблони дизайну колб та найкращі практики для веб-додатків
Підручник No6: Підручник з Flask API з прикладом | Розширення колби за допомогою API
Підручник No7: Django проти Flask проти вузла: який фреймворк вибрати
Підручник No8: 31 найпопулярніше запитання для інтерв’ю з колбою Python із відповідями
Що таке колба
Flask - це фреймворк веб-розробки. Це фреймворк із вбудованим сервером розробки та налагоджувачем.
Як створити новий проект Java в eclipse - -
Структура Flask сама по собі відрізняється від інших архетипів, оскільки дозволяє веб-розробникам бути гнучкими та з комфортом враховувати часто випускаються зміни у спільноті розробників програмного забезпечення.
Для чого використовується колба
Ми використовуємо фреймворк Flask для розробки веб-додатків мовою програмування Python. Він інтегрується з іншими сторонніми службами та API, щоб надати багатство та значення додатку, що розробляється. Основні концепції колби прості, і вона має крихітний слід.
Почнемо з цього підручника з Python Flask, щоб зрозуміти веб-розробку за допомогою сховища Flask GitHub. Однак перед тим, як продовжувати, будь ласка, клонуйте проект від Github для легшого вивчення обговорюваних прикладів коду.
Передумови
Крім згаданих заголовків у цьому розділі, ми рекомендуємо створити обліковий запис Github. Приступимо до наведених нижче кроків у передумовах.
Крок 1: Встановіть Python
Перевірте, чи встановили ви Python 3 чи ні. Якщо ні, то завантажте Python 3 з тут та встановіть його відповідно до вашої операційної системи.
Крок 2: Створіть віртуальне середовище Python
Створіть віртуальне середовище, використовуючи команду нижче.
python3 -m venv venv
Використовуйте команду нижче, щоб активувати віртуальне середовище Python.
source venv/bin/activate
Нижче ми навели приклад активації та деактивації віртуального середовища.
Усі подальші команди в цьому посібнику повинні виконуватися в активованому віртуальному середовищі. Встановіть пакет коліс, щоб ми могли будувати колеса у віртуальному середовищі.
pip install wheel
Крок 3: Завантажте колбу та завантажте її
Нам потрібно виконати кроки завантаження Flask та встановити Flask, використовуючи наведені нижче кроки.
Тепер встановіть Flask.
pip install flask
Деякі з нас люблять працювати разом із останніми змінами вихідного коду. Ми можемо використовувати наведену нижче команду для встановлення з останніми змінами до джерел Flask.
Складіть тимчасовий каталог.
mkdir tmp
Тепер встановіть Flask із сховища Github. Вам потрібно залишатись під’єднаним до Інтернету, щоб наведена нижче команда працювала.
pip3 install -e git+git@github.com:pallets/flask.git#egg=flask
Подивіться на виходи консолі, щоб перевірити успішну установку. Тепер перевірте, чи можемо ми отримати доступ до команд Flask.
flask --help
Ви можете побачити деякі винятки щодо відсутності програми Flask. Однак нехтуйте тими, оскільки ми не створили жодної програми Flask. Наш додаток є екземпляром Flask, який є обгорткою веб-фреймворку Werkzeug та механізму шаблонування Jinja.
Інструмент
Werkzeug - це інструментарій WSGI. WSGI є лише умовою викликів для переадресації веб-серверів веб-запити до веб-додатків, написаних мовою програмування Python.
Джинджа
Шаблонування - важливий набір веб-розробників. Jinja - це повнофункціональний і популярний шаблонний механізм для Python. Це досить виразна мова та забезпечує надійний набір інструментів для авторів шаблонів.
Крок 4: Встановіть MongoDB
Виконайте наведені нижче кроки, щоб встановити MongoDB. Ми окреслили кроки, щоб встановити його в Linux на основі Debian. Якщо ви використовуєте іншу операційну систему, перейдіть до посилання та встановіть відповідно до передбаченої операційної системи.
Встановіть gnupg для імпорту відкритого ключа GPG MongoDB.
sudo apt-get install gnupg
Тепер імпортуйте ключ, використовуючи команду нижче.
wget -qO - https://www.mongodb.org/static/pgp/server-4.2.asc | sudo apt-key add -
Створіть файл списку джерел відповідно до вашого дистрибутива Linux. Ми додали список джерел згідно з Debian.
echo 'deb http://repo.mongodb.org/apt/debian buster/mongodb-org/4.2 main' | sudo tee /etc/apt/sources.list.d/mongodb-org-4.2.list
Запустіть команду оновлення
sudo apt-get update
Тепер встановіть MongoDB, використовуючи команду нижче.
sudo apt-get install -y mongodb-org
Після успішного встановлення запустіть MongoDB, використовуючи наведену нижче команду.
sudo systemctl start mongod
Перевірте статус MongoDB, використовуючи команду нижче.
sudo systemctl status mongod
Тепер переконайтеся, що mongod автоматично запускається під час перезавантаження системи, виконавши наведену нижче команду.
sudo systemctl enable mongod
Тепер перевірте, чи можете ви підключитися до сервера MongoDB за допомогою клієнта mongo.
mongo
У оболонці mongo спробуйте скористатися довідкою та показати команди dbs.
c # запитання для співбесіди з відповідями
Створіть програму Flask
Використовуйте команду нижче, щоб встановити flask-appbuilder та mongoengine.
pip install flask-appbuilder pip install mongoengine pip install flask_mongoengine
Створіть програму-скелет зі значеннями, показаними як коментарі у наведеному нижче фрагменті коду.
flask fab create-app # Give the following values in the command line questionnaire # Application Name: flaskTutorialApp # EngineType : MongoEngine
Ми побачимо результат, подібний до наведеного нижче.
Your new app name: exampleApp Your engine type, SQLAlchemy or MongoEngine (SQLAlchemy, MongoEngine) (SQLAlchemy): MongoEngine Downloaded the skeleton app, good coding!
Погляньте на макет проекту та додаток. Нижче ми показали результати команди дерева.
Давайте подивимось файл конфігурації Flask. Це конфігурація за замовчуванням, створена в результаті останньої команди. Розкоментувати Кіборг теми, як показано нижче.
# Theme configuration for Cybord=g # these themes are located on static/appbuilder/css/themes # We can create our own and easily use them by placing them on the same dir structure to override #APP_THEME = 'bootstrap-theme.css' # default bootstrap #APP_THEME = 'cerulean.css' # cerulean #APP_THEME = 'amelia.css' # amelia theme #APP_THEME = 'cosmo.css' # cosmo theme APP_THEME = 'cyborg.css' # cyborg theme #APP_THEME = 'flatly.css' # flatly theme
Щоб запустити програму-скелет, використовуйте наведену нижче команду на терміналі.
flask run
Колба Привіт Світ
Щоб створити свою першу програму в flaskTutorialApp, відкрийте файл views.py у каталозі програми та додайте наступний код. Шукайте оператори імпорту, подані у файлі. Додайте ці твердження, якщо їх ще немає.
from flask_appbuilder import BaseView, expose from app import appbuilder class HelloWorld(BaseView): ''' This first view of the tutorial ''' route_base = '/hello' @expose('/') def hello(self): return 'Hello, World! from Software Testing Help' # at the end of the file appbuilder.add_view_no_menu(HelloWorld())
Збережіть файл після додавання вищевказаного вихідного коду. Перейдіть до кореневого каталогу проекту та скористайтеся наведеною нижче командою, щоб запустити сервер розробки Flask.
flask run
Тепер перейдіть до http: // localhost: 5000 / hello /, щоб побачити вихідні дані в браузері.
Налагодження
В даний час сервер розробки не працює в режимі налагодження. Без режиму налагодження важко знайти помилки у вихідному коді програми Flask.
Режим налагодження в Flask призводить до наступного:
- Режим налагодження активує автоматичне перезавантаження. Це означає, що нам не потрібно перезапускати сервер розробки після внесення змін у вихідний код програми.
- Режим налагодження активує налагоджувач Python. Ми можемо перевірити значення змінних під час винятку.
- Режим налагодження дозволяє налагоджувати програми Flask. Ми можемо перевіряти значення різних змінних під час сесій налагодження.
Зупиніть сервер розробки, якщо він уже запущений. Ви можете використовувати CTRL + C або переривання клавіатури, щоб зробити те саме.
Використовуйте наступний код, щоб увімкнути режим налагодження та тимчасово запустити сервер розробки.
FLASK_ENV=development flask run
Шукайте в консолі PIN-код налагоджувача та робіть це до нього.
Тепер давайте змінимо написаний вище подання HelloWorld за допомогою наступних рядків фрагмента коду. Зверніть увагу, що ми ввели спеціальний виняток.
@expose('/') def hello(self): raise Exception('A custom exception to learn DEBUG Mode') return 'Hello, World! from Software Testing Help'
Перейдіть до http: // localhost: 5000 / hello /, і ви побачите, що програма викликала виняток. Браузер відображає трасування стека, як показано нижче.

Крім того, подивіться на консоль, на якій працює сервер розробки. Ви виявите, що цього разу зміни у views.py виявляються автоматично, і сервер налагодження перезапускається сам по собі. Тепер нам не потрібно перезапускати його вручну.
Консоль матиме рядки, як показано нижче. Нам потрібно записати PIN-код для налагодження на потім.
* Detected change in 'https://cdn.softwaretestinghelp.com/work/sth/flaskTutorialApp/app/views.py', reloading 2020-06-02 14:59:49,354:INFO:werkzeug: * Detected change in 'https://cdn.softwaretestinghelp.com/work/sth/flaskTutorialApp/app/views.py', reloading * Restarting with stat 2020-06-02 14:59:49,592:INFO:werkzeug: * Restarting with stat * Debugger is active! * Debugger PIN: 150-849-897
Тепер перевірте трасування стека в браузері і перейдіть до останнього рядка. Клацніть на нього, щоб розгорнути його вигляд, і натисніть на піктограму CLI, щоб відкрити оболонку в інтерактивному режимі.

Після його відкриття ви побачите, що браузер покаже запит на налагодження PIN-коду. Дайте PIN-код для налагодження та натисніть OK.

Після того, як ми продовжимо роботу після надання налагоджувального PIN-коду, ми можемо отримати доступ до інтерактивної оболонки.
Ми отримуємо доступ до оболонки з веб-переглядача і можемо перевірити значення змінних, щоб знайти причину винятку та покращити помилку. Будь ласка, подивіться на один із прикладів, показаних на зображенні нижче.

Тепер змініть код у view.py, як показано нижче. Зверніть увагу, що ми прокоментували рядок, який мав піднятий виняток.
@expose('/') def hello(self): # raise Exception('A custom exception to learn DEBUG Mode') return 'Hello, World! from Software Testing Help'
Тестування застосування колби
Тепер напишемо наш перший тест для програми Flask, яку ми розробляємо. Спочатку встановіть PyTest. PyTest - це тестовий фреймворк. Це допомагає нам писати кращий код.
Більше того, саме тому, що ми можемо писати модульні тести під час розробки наших додатків, можна слідувати підходу TDD. TDD розшифровується як Тестова розробка. У наступних підручниках цієї серії ми завжди будемо писати тести спочатку і розвивати наші погляди чи моделі.
Встановіть PyTest
pip install pytest
Тепер створіть каталог, який називається тестами, всередині каталогу програми, а в ньому - файл test_hello.py. Давайте напишемо наш перший модульний тест, щоб перевірити наш погляд.
Скопіюйте наведений нижче фрагмент коду та вставте його в test_hello.py.
#!/usr/bin/env python from app import appbuilder import pytest @pytest.fixture def client(): ''' A pytest fixture for test client ''' appbuilder.app.config('TESTING') = True with appbuilder.app.test_client() as client: yield client def test_hello(client): ''' A test method to test view hello ''' resp = client.get('/hello', follow_redirects=True) assert 200 == resp.status_code
Використовуйте наведену нижче команду pytest для запуску тестів. PyTest автоматично збирає тести та відображає результати на стандартному виході.

Створіть робочий процес GitHub
Ми використовуємо Git Action для створення робочого циклу CI / CD для нашої зразкової програми. Дотримуйтесь наведених нижче кроків для вашого проекту.
Крок 1: Перейдіть до сторінки сховища на GitHub. Клацніть на Git Action.

Крок 2: Прокрутіть сторінку вниз і знайдіть існуючий шаблон робочого циклу для пакету Python.

Крок 3: Налаштування робочого циклу пакету Python.

Крок 4: Коли конфігурація робочого процесу python-package.yml відкриється, оновіть її на основі заданих значень додаткових тегів yaml.
name: flaskTutorialApp jobs: build: runs-on: ubuntu-latest strategy: matrix: python-version: (3.7, 3.8) mongodb-version: (4.2) steps: - name: Start MongoDB uses: supercharge/mongodb-github-action@1.3.0 with: mongodb-version: ${{ matrix.mongodb-version }} # other values
Ми хочемо протестувати наш додаток Flask на останньому дистрибутиві Ubuntu Linux. На додаток до ОС, ми хочемо запускати наші тести лише за допомогою Python 3.7 та Python 3.8.
Крок 5: Зафіксуйте python-package.yml з оновленими значеннями.

Крок 6: Фіксація на попередній сторінці веде нас до завдань GitActions.

Крок 7: (Необов’язково)
На сторінці Github Jobs для зразка програми-підручника ми можемо створити значок та розмістити його у файлі README.md для відображення стану збірки.
Тепер, коли зміни будуть здійснені до головної гілки, буде виконуватися Git Workflow, як написано в python-package.yml, і запускатиметься на Git Action.
Висновок
У цьому посібнику ми розглянули всі основні концепції - від передумов до налаштування робочого циклу CI / CD для веб-програми, розробленої за допомогою Flask - основи веб-розробки на основі Python.
Цей підручник охоплює всі необхідні кроки, такі як встановлення Python, завантаження та встановлення Flask, робота з Flask-Appbuilder, тестування за допомогою PyTest тощо, щоб розпочати веб-розробку за допомогою Python. Спільнота веб-розробників зазвичай порівнює Flask з іншою популярною структурою веб-розробки Python під назвою Django.
Ми пояснимо ці відмінності, а також порівняємо ці основи в одному з підручників цієї серії.
Рекомендована література
- Django проти Flask проти вузла: який фреймворк вибрати
- Підручник з Flask API з прикладом | Розширення колби за допомогою API
- Програма Flask та макет проекту Flask за допомогою проекту та Bootstrap
- Обробка бази даних колб - Як використовувати колбу з базою даних
- Шаблони дизайну колб та найкращі практики для веб-додатків
- Шаблон, форма, вигляд та перенаправлення колби з прикладами
- 31 найпопулярніше запитання для інтерв’ю з колбою Python із відповідями
- Підручник з Python для початківців (практичне БЕЗКОШТОВНЕ навчання з Python)