На шестнадцатой неделе курса информатики мы научимся публиковать собственное веб-приложение в интернете. Рассмотрим основные способы деплоя Flask-приложений, работу с платформами хостинга и настройку безопасной среды запуска.
Деплой (развёртывание) — это процесс переноса вашего локального приложения на удалённый сервер, чтобы оно было доступно в интернете.
Варианты хостинга для Flask:
- Render (бесплатный и простой)
- Railway
- Heroku (ограничения после 2022)
- VPS (например, DigitalOcean)
- Docker + VPS
Этот файл содержит список всех зависимостей проекта:
```bash```
pip freeze > requirements.txt
```text```
web: gunicorn app:app
Указывает, как запускать приложение (используется Gunicorn).
1. Зайти на https://render.com
2. Создать бесплатный аккаунт
3. Подключить GitHub-репозиторий с вашим Flask-приложением
4. Указать:
- Build command: `pip install -r requirements.txt`
- Start command: `gunicorn app:app`
5. Готово!
Docker позволяет упаковать приложение в контейнер:
```dockerfile```
FROM python:3.11
WORKDIR /app
COPY . .
RUN pip install -r requirements.txt
CMD ["gunicorn", "app:app"]
Затем: `docker build -t myapp .` и `docker run -p 8000:8000 myapp`
Вместо хранения паролей и секретов в коде, используйте `.env`:
```
SECRET_KEY=мой_секрет
DATABASE_URL=sqlite:///db.sqlite3
```
Подключение:
```python```
from dotenv import load_dotenv
load_dotenv()
1. Опубликуйте своё Flask-приложение через Render или Railway.
2. Убедитесь, что база данных работает.
3. Настройте переменные окружения и защитите ключи.