Привет 👋, в этой статье мы рассмотрим, как подключиться к базе данных Postgres с помощью приложения Python Flask на Windows 11.
предварительные требования
- наличие Python3, установленного на вашей машине Windows и прописанного в PATH вместо Python 2
- чтобы проверить установку, просто найдите Python 3 в строке поиска стартового меню Windows
1. установите PostgresSQL на Windows 11
- перейдите на страницу загрузки PostgreSQL и возьмите программу установки для Windows
- запустите программу установки, используя настройки по умолчанию
- вам будет предложено выбрать пароль для стандартной учетной записи Postgres, которая называется
postgres
в данном примере я буду использоватьroot
(это очень плохой пароль) - также вас должны спросить, какой порт использовать для Postgres, по умолчанию 5432 тоже подходит
- когда установка Postgres SQL завершена, вам не нужно запускать StackBuilder для дополнительных плагинов
- теперь вы должны иметь возможность найти инструмент
psql
в строке поиска стартового меню Windows, это оболочка CLI, которая позволит вам взаимодействовать с вашей базой данных Postgres - При запуске оболочки вы можете выбрать сервер, базу данных, порт и пользователя, которого вы хотите использовать для соединения, которое вы только что открыли; эти поля предварительно заполнены значениями из вашей свежей установки, вам нужно будет только ввести пароль, который вы выбрали в предыдущих шагах.
- теперь вы должны увидеть =>
2. список баз данных
psql
предлагает удобные мета-команды для запуска на вашем сервере баз данных, напримерl
, которая выведет список всех доступных баз данных.- среди выведенных баз данных вы должны увидеть
postgres
, а такжеtemplate0
иtemplate1
; шаблонные базы данных используются при выполнении командыCREATE DATABASE
, поскольку они будут скопированы для создания вашей новой базы данных, но пока мы будем придерживаться стандартнойpostgres
.
3. Создайте и запустите приложение Flask
Flask — это микрофреймворк с минимальным набором зависимостей, необходимых для создания веб-приложения:
- контроллеры
- управление cookies и сессиями
- маршрутизация
- сервер веб-разработки
- CLI
Создайте новый проект с помощью вашей любимой IDE, и в корне этого проекта, файл app.py
, давайте поместим туда начальный код для нашего приложения Flask:
from flask import Flask
# creates an application that is named after the name of the file
app = Flask(__name__)
@app.route('/')
def index():
return "it works"
# if running this module as a standalone program (cf. command in the Python Dockerfile)
if __name__ == "__main__":
app.run(host="0.0.0.0")
Это просто говорит, что маршрут /
нашего приложения Flask на localhost должен отображать некоторый текст. Но чтобы это работало, необходимо, чтобы Flask был установлен как модуль с помощью pip.
Вы можете сделать это, открыв оболочку CMD и нажав pip install Flask
.
Теперь из оболочки CMD, которую вы только что открыли, вы можете cd
в любой каталог, который вы создали для своего проекта.
Ваше приложение Flask должно знать, как загружать приложение, например, какова его точка входа; чтобы указать это, выполните set FLASK_APP=app.py
.
Если вы хотите получить лучший опыт разработчика, вы также можете выполнить set FLASK_DEBUG=True
.
Теперь вы готовы запустить приложение с помощью команды python -m flask run --host=0.0.0.0
.
4. Подключите приложение Flask к вашему серверу базы данных
Мы будем использовать psycopg2
, который является самым популярным адаптером PostgresSQL в мире Python. Сначала установим его с помощью pip install psycopg2
в вашем CMD.
Теперь мы можем обновить наш код app.py
следующим образом =>
from flask import Flask
import psycopg2
# creates an application that is named after the name of the file
app = Flask(__name__)
@app.route('/')
def index():
conn = psycopg2.connect("postgresql://postgres:root@localhost:5432/postgres")
return 'it works'
# if running this module as a standalone program (cf. command in the Python Dockerfile)
if __name__ == "__main__":
app.run(host="0.0.0.0")
Строка postgresql://postgres:root@localhost:5432/postgres
является именем источника данных для нашей базы данных:
Вы можете проверить успешность подключения, перейдя по адресу localhost:5000
в вашем браузере; например, поставьте другое значение в качестве пароля в DSN, и вы увидите сообщение об ошибке при следующей перезагрузке страницы.
5. подведение итогов + следующие шаги
Итак, то, что мы здесь сделали, — это очень базовая настройка, чтобы вы начали работать с Flask в среде Windows. Теперь вы можете выполнять SQL-запросы из своего веб-приложения, например, с помощью =>
# Open a cursor to perform database operations
cur = conn.cursor()
# Execute a query
cur.execute("SELECT * FROM my_data")
# Retrieve query results
records = cur.fetchall()
Теперь у вас есть необходимый минимум настроек для создания веб-приложений, которые поддерживаются данными 🙂
Тем не менее, после ознакомления с этим, если вы хотите пойти дальше, я советую вам в качестве следующих шагов:
- использовать Windows WSL, чтобы иметь возможность запускать более распространенные команды Linux в процессе разработки
- узнать, как докеризировать ваше приложение Flask’
- использовать ORM, например SQLAlchemy, для взаимодействия с базой данных из веб-приложения».
Ну, вот и все, до встречи!