Настройка вашей локальной среды

Flask — это простой и удобный в использовании микрофреймворк для Python. Он отлично подходит для начинающих, потому что его легко настроить, он активно поддерживается сообществом, хорошо документирован, прост и минималистичен. Также можно создавать масштабируемые и безопасные веб-приложения с помощью Flask.

Предпосылки

Доморощенный

Бесплатная система управления пакетами программного обеспечения с открытым исходным кодом, которая упрощает установку программного обеспечения в операционной системе Apple Mac OS и Linux.

$ /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"

Питон 3

Mac OS поставляется с установленным Python 2, но в этом руководстве используется Pytho n 3.Установите его с помощью Homebrew сильный>.

$ brew install python3

Проверьте версию Python

$ python --version 
  Python 3.7.6

Виртуальная среда

Инструмент для создания изолированных сред Python. Решаемая проблема — это зависимости и версии этих зависимостей. Например, у вас есть два проекта, и для одного требуется версия 1 или какая-либо библиотека, а для другого требуется версия 2 той же библиотеки. Если вы установите обе библиотеки на хост Python, вы столкнетесь с конфликтами.

$ pip install virtualenv 

Виртуальная обертка

Набор расширений для 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
  • Установите источник терминала на bash_profile, чтобы он мог найти новые переменные и сохранить их для вашего приложения.
$ source ~/.bash_profile
  • Закройте и откройте приложение терминала, чтобы применить изменения

Создайте и активируйте новую виртуальную среду.

$ mkdir flask_hello_world
$ cd flask_hello_world
$ mkvirtualenv flask_hello_world 
$ workon flask_hello_world

Обратите внимание, что имя virtualenv совпадает с названием проекта, над которым мы будем работать. Это не обязательно, но мне нравится следовать этому шаблону, поскольку он позволяет мне запоминать имя виртуальной среды, в которой должно работать мое приложение.

Создайте базовое приложение Hello World

  • Установите Flask
$ (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

Приведенный выше скрипт просто создает объект приложения как экземпляр класса Flask, импортированный из пакета Flask. Переменная name, передаваемая классу Flask, представляет собой предопределенную переменную Python, для которой задано имя модуль, в котором он используется. Flask использует расположение переданного здесь модуля в качестве отправной точки, когда ему необходимо загрузить связанные ресурсы, такие как файлы шаблонов. Обратите внимание на нижний импорт, это обходной путь для циклического импорта, распространенной проблемы с приложениями Flask. Маршруты еще не существуют, поэтому давайте создадим их дальше.

Создайте модуль маршрутов.

$ (flask_hello_world) $ touch app/routes.py
  • Добавьте следующую функцию просмотра в новый файл routes.py.
# app/routes.py
from app import app
@app.route('/')
@app.route('/index')
def index():
    return "Hello, World!"

функция просмотра просто возвращает строку Hello World. Декоратор @app.route создает связь между заданным URL и функцией. Если браузер запрашивает один из связанных URL-адресов / или /index, Flask вызовет функцию индексирования и передать возвращаемое значение браузеру в качестве ответа.

  • Чтобы завершить это простое приложение, создайте скрипт верхнего уровня 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/ (Press CTRL+C to quit)

Просмотрите свое приложение, указав в браузере IP-адрес, указанный Flask, в данном случае http://127.0 .0.1:5000/ Ваше приложение должно выглядеть примерно так, как показано ниже.

Поздравляем с созданием вашего первого приложения Flask. Прежде чем закончить эту статью, давайте проведем уборку, чтобы наше приложение было чистым и обслуживаемым. Он также подкрепляет лучшие методы.

  • Остановите сервер, нажав Ctrl-C
  • Сохраните свои зависимости в файл requirements.txt
$ (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

Вот и все! вы создали свое первое приложение Flask. Если вам понравилась эта статья или она была полезной, пожалуйста, хлопайте в ладоши.

Спасибо, что прочитали, и не стесняйтесь обращаться к Twitter, если у вас есть какие-либо вопросы.