Рубрики
Без рубрики

Начало Работы С Колбой

Начало Работы С Flask, Микрорамкой Python

Автор оригинала: 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

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