/praktikum-yacut

Яндекс Практикум. Сервис укорачивания ссылок (Flask).

Primary LanguagePython

YaCut — сервис укорачивания ссылок

Учебный проект Яндекс Практикум (курс Python-разработчик плюс).

Описание

Проект YaCut — это сервис укорачивания ссылок. Его назначение — ассоциировать длинную пользовательскую ссылку с короткой, которую предлагает сам пользователь или предоставляет сервис.

Ключевые возможности сервиса:

  • генерация коротких ссылок и связь их с исходными длинными ссылками,
  • переадресация на исходный адрес при обращении к коротким ссылкам.

Сервис состоит из пользовательского интерфейса и REST API.

Технологии

Python Flask SQLite SQLAlchemy Alembic WTForms

Доступные эндпоинты API

  • api/id/ — POST-запрос на создание новой короткой ссылки;
  • api/id/<short_id>/ — GET-запрос на получение оригинальной ссылки по указанному короткому идентификатору.

Локальный запуск проекта

Клонировать репозиторий и перейти в директорию проекта:

git clone https://github.com/bvsvrvb/praktikum-yacut.git
cd praktikum-yacut

Создать .env файл с переменными окружения:

FLASK_APP=yacut
FLASK_ENV=development
DATABASE_URI=sqlite:///db.sqlite3
SECRET_KEY=YOUR_SECRET_KEY

Cоздать и активировать виртуальное окружение:

python -m venv venv
source venv/Scripts/activate

Установить зависимости из файла requirements.txt:

python -m pip install --upgrade pip
pip install -r requirements.txt

Выполнить миграции:

flask db upgrade

Запустить сервис на веб-сервере разработки Flask:

flask run