Автор оригинала: Joaquin Guardado.
Колба – это простая, удобная в использовании микрорамка для Python . Он отлично подходит для начинающих, потому что легко настраивается, активно поддерживается сообществом, хорошо документирован, прост и минималистичен. Кроме того, с помощью Flask можно создавать масштабируемые и безопасные веб-приложения
Предпосылки
Доморощенный
Бесплатная и открытая система управления пакетами программного обеспечения, которая упрощает установку программного обеспечения на операционные системы Apple Mac OS и Linux.
$ /bin/bash -c "$(curl -fsSL [https://raw.githubusercontent.com/Homebrew/install/master/install.sh](https://raw.githubusercontent.com/Homebrew/install/master/install.sh))"
Python 3
Mac OS X поставляется с установленным Python 2 , но в этом учебнике используется Python 3 .Установите его с помощью Homebrew .
$ brew install python3
Проверьте версию Python
$ python --version Python 3.7.6
Virtualenv
Инструмент для создания изолированных сред Python . Решаемая проблема-это зависимости и версии этих зависимостей . Например, у вас есть два проекта, и один требует версии 1 какой-то библиотеки, а другой требует версии 2 той же библиотеки. Если вы установите обе библиотеки в свой хост python, то в конечном итоге возникнут конфликты.
$ pip install virtualenv
Virtualenvwrapper
Набор расширений для virtualenv . Эти расширения включают в себя оболочки для создания, удаления и управления нашим рабочим процессом разработки.
Например, только с помощью virtualenv для активации виртуальной среды вам потребуется следующая команда.
$ source ~/myproject/env/bin/activate
С virtualenvwrapper все гораздо проще.
$ workon myproject
Давайте установим его
$ pip3 install virtualenvwrapper
После установки virtualenvwrapper вы можете столкнуться со следующей ошибкой
$ workon -bash: workon: command not found
- Обновите свой . bash_profile следующими переменными среды
$ vi ~/.bash_profile
- Добавьте следующее
export PATH="/usr/local/opt/python@3/libexec/bin:$PATH" export WORKON_HOME=$HOME/.virtualenvs export PROJECT_HOME=$HOME/Devel export VIRTUALENVWRAPPER_PYTHON=/usr/local/bin/python3 export VIRTUALENVWRAPPER_VIRTUALENV=/usr/local/bin/virtualenv source /usr/local/bin/virtualenvwrapper.sh
- Нажмите клавишу
esc
на клавиатуре, чтобы выйти из режима вставки или прервать текущую команду и:q!
чтобы закрыть файл и отказаться от изменений, используйте клавиши:wq
для сохранения изменений. Вот хорошая шпаргалка Vim
Создание и активация новой виртуальной среды
$ mkdir flask_hello_world $ cd flask_hello_world $ mkvirtualenv flask_hello_world $ workon flask_hello_world
Обратите внимание, что virtualenv называется так же, как и проект, над которым мы будем работать. Это не обязательно, но мне нравится следовать этому шаблону, так как он позволяет мне запомнить имя виртуальной среды моего приложения , в котором будет работать.
Создайте базовое приложение Hello World
- Установить Колбу
$ (flask_hello_world) $ pip install flask
- Создайте новый пакет под названием app
$ (flask_hello_world) $ mkdir app $ (flask_hello_world) $ touch app/__init__.py
В Python подкаталог , содержащий файл init .py , считается пакетом . Когда вы импортируете пакет, init .py выполняет и определяет, какие символы пакет предоставляет Интернету.
- Добавьте следующее в init .py в пакете приложения
# app/__init__.py: Flask application instance from flask import Flask app = Flask(__name__) from app import routes
Приведенный выше скрипт просто создает объект application/| как экземпляр класса Flask , импортированный из пакета Flask . Переменная name , передаваемая классу Flask , является предопределенной переменной Python , которая устанавливается в имя модуля, в котором она используется. Flask использует местоположение переданного здесь модуля в качестве отправной точки, когда ему нужно загрузить связанные ресурсы, такие как файлы шаблонов. Обратите внимание на нижний импорт , это обходной путь к круговому импорту , распространенной проблеме с колбой приложениями. Маршруты еще не существуют, так что давайте создадим его следующим.
Создание модуля routes
$ (flask_hello_world) $ touch app/routes.py
- Добавьте следующую функцию view в новый routes.py файл.
# app/routes.py from app import app @app.route('/') @app.route('/index') def index(): return "Hello, World!"
Функция view просто возвращает a “Hello World” string. decorator @app.route создает ассоциацию между заданным URL-адресом и функцией . Если браузер | запрашивает любой из связанных URL-адресов или/index/| Flask собирается вызвать функцию index и передать возвращаемое значение браузеру в качестве ответа .
- Чтобы завершить это простое приложение, создайте скрипт верхнего уровня Python для определения экземпляра приложения Flask .
$ (flask_hello_world) $ touch run.py
- Определите экземпляр приложения и импортируйте его.
# run.py from app import app
Вот как должна выглядеть структура каталогов на данный момент.
├── flask_hello_world ├── app │ ├── __init__.py │ └── routes.py └── run.py
Наше простое приложение теперь завершено , но перед его запуском нам нужно рассказать Flask как импортировать его, установив переменную окружения FLASK_APP. Кроме того, мы включим отладку для автоматического перезапуска сервера, чтобы перезагрузить любые внесенные нами изменения.
(flask_hello_world) $ export FLASK_APP=run.py (flask_hello_world) $ export FLASK_DEBUG=1
Запустите приложение
(flask_hello_world) $ flask run * Serving Flask app * Running on [http://127.0.0.1:5000/](http://127.0.0.1:5000/) (Press CTRL+C to quit)
Просмотрите свое приложение , указав свой браузер на **IP-адрес указанный Flask , в данном случае http://127.0.0.1:5000/ Ваше приложение должно выглядеть следующим образом.
Поздравляем вас с созданием вашего первого Flask app . Прежде чем закончить эту статью, давайте сделаем некоторые домашние дела , чтобы сохранить наше приложение чистым и ремонтопригодным . Это также усиливает лучшие практики .
Остановите сервер, нажав
Ctrl-C
Сохраните ваши зависимости в файле requirements.tx t
$ (flask_hello_world) $ pip freeze > requirements.txt
Это автоматически создает файл для вас, и лучше всего разрешить другим сотрудничать с вашим проектом. Flask устанавливает несколько других зависимостей так что не волнуйтесь, если вы увидите их в своем файле.
# requirements.txt Click==7.0 Flask==1.1.1 itsdangerous==1.1.0 Jinja2==2.11.1 MarkupSafe==1.1.1 Werkzeug==1.0.0
Вот наша окончательная структура проекта.
├── flask_hello_world ├── app │ ├── __init__.py │ └── routes.py ├── requirements.txt └── run.py
Вот окончательный код размещенный на Github .
Также не забудьте деактивировать вашу виртуальную среду , чтобы предотвратить установку других зависимостей , не связанных с этим проектом.
$ (flask_hello_world) $ deactivate
Вот оно! вы создали свое первое Колба приложение. Если вам понравилась эта статья или вы нашли ее полезной пожалуйста, дайте мне несколько лайков . Спасибо за чтение .