Python — делаем приложение на Flask в локальной среде

Admin Flask

Любая разработка приложения на Python начинается из локальной среды. Создадим проект (приложение или сайт) на микрофреймворке Flask для последующей транспортировки его на сервер. Пример будет дан для Mac OS, но для Windows примерно все то же самое.

Этот материал из цикла статей по разработке сайтов на python: от локальной разработки до развертывания на удаленном сервере.

Сначала надо обновить версию python через Homebrew.

Создание проекта на Flask

Для работы с python есть несколько программ IDE. Я отдаю предпочтение PyCharm и далее будут примеры с ним.

Создать виртуальную среду разработки можно через PyCharm или самостоятельно. Ниже приведены 2 варианта.

а) Через PyCharm

Создание проекта через PyCharm:

В этом случае PyCharm сам установит интерпретатор. Но иногда интерпретатор приходится в настройках указывать самостоятельно, потому что PyCharm может его не видеть. Такое случается после обновления python на новые версии.

Кроме этого, в процессе создания проекта на PyCharm он сам установит необходимые файлы и зависимости для Flask.

б) Самостоятельно

Создадим сами виртуальное окружение для python:

python3 -m venv venv

Зайдем в виртуальное окружение:

source venv/bin/activate

Обновляем систему управления пакетами pip:

pip install --upgrade pip

Далее в настройках PyCharm выбираем интерпретатор установленного виртуального окружения. Это же необходимо сделать, если мы вдруг обновляем версию python для своего виртуального окружения.

Теперь устанавливаем flask:

pip install Flask

Устанавливаем SQLAlchemy:

pip install Flask-SQLAlchemy
pip install Flask-Migrate
pip install psycopg2-binary

Устанавливаем сервер uwsgi. Он понадобится в дальнейшем на продакшене:

pip install wheel
pip install uwsgi flask

Структура проекта

Структура проекта будет создана автоматически, в случае создания проекта на Flask через PyCharm.

Если был выбран пусть ручного создания, то создадим следующую структуру:

ploshadka.net
. app
.. __init__.py
.. models.py
.. templates
. venv (был создан выше)
. run.py (будем запускать в локальной разработке)
. wsgi.py (будет использован на продакшене)
. config.py (секретная конфигурация для соединения с БД и не только)
. config-extended.py (конфиг для общих директив)
. .gitignore (понадобится когда будем заливать в git)

Внутрь файла run.py запишем:

from app import app

if __name__ == "__main__":
    app.run()

Внутрь файла wsgi.py тоже самое, но с указанием сервера:

from app import app

if __name__ == "__main__":
    app.run(111.111.111.111)

Внутри файла __init__.py в директории app:

from flask import Flask
from flask_sqlalchemy import SQLAlchemy
from flask_migrate import Migrate
from config import Config

def create_app():
    app = Flask(__name__)

    app.config.from_object(Config)
    app.config.from_pyfile('../config-extended.py')

    return app

app = create_app()
db = SQLAlchemy(app)
migrate = Migrate(app, db)

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

Теперь, если мы запустим команду

flask run

Наш сервер запустится:

 * Serving Flask app "app" (lazy loading)
 * Environment: production
   WARNING: This is a development server. Do not use it in a production deployment.
   Use a production WSGI server instead.
 * Debug mode: on
INFO:werkzeug: * Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)
INFO:werkzeug: * Restarting with stat

Сейчас по указанному адресу ничего не будет, т.к. мы ничего пока не выводим. Однако далее мы создадим административную панель на Flask и она заработает по адресу:

http://127.0.0.1:5000/admin/

Если вам пригодилась информация, вы можете поблагодарить автора сайта символическим пожертвованием:

Добавить комментарий

Напишите свой комментарий, если вам есть что добавить/поправить/спросить по теме текущей статьи:
"Python — делаем приложение на Flask в локальной среде"