🐍 Python 3.8, Flask 2.0.2, Sqlalchemy 1.4.29, Wtforms 3.0.1, Flask-migrate 3.1.0, Jinja2 3.0.3, ❄️ flake8
yacut:
├── __pycache__
└── ...
├── tests
├── __pycache__
└── ...
├── venv
├── yacut
├── __pycache__
├── static
├── templates
├── __init__.py
├── api_views.py
├── constants.py
├── error_handlers.py
├── forms.py
├── models.py
└── views.py
├── .env
├──.flake8
├── .gitignore
├── openapi.yml
├── pytest.ini
├── README.md
├── requirements.txt
└── settings.py
Проект YaCut — это сервис укорачивания ссылок. Его назначение — ассоциировать длинную пользовательскую ссылку с короткой, которую предлагает сам пользователь или предоставляет сервис.
Ключевые возможности сервиса:
- генерация коротких ссылок и связь их с исходными длинными ссылками;
- переадресация на исходный адрес при обращении к коротким ссылкам.
Пользовательский интерфейс сервиса — одна страница с формой. Эта форма состоит из двух полей:
- поле для длинной исходной ссылки (обязательное для заполнения);
- поле для пользовательского варианта короткой ссылки (необязательное для заполнения).
Пользовательский вариант короткой ссылки не должен превышать 16 символов.
FLASK_APP=yacut
FLASK_ENV=development
DATABASE_URI=ChooseDataBase
SECRET_KEY=Your!$ecretKey8
Example:
DATABASE_URI=sqlite:///db.sqlite3
- Клонировать репозиторий:
git clone https://github.com/simatheone/yacut.git
- Создать и активировать виртуальное окружение и :
python3 -m venv venv
bash/zsh
source venv/bin/activate
Windows:
venv\Scripts\activate.bat
- Обновить pip и установить зависимости из
requirements.txt
python3 -m pip install --upgrade pip
pip install -r requirements.txt
- Создать и заполнить файл .env в соответствии с рекомендациями:
touch .env
- Выполнить миграции:
flask db init
flask db migrate -m "короткое сообщение"
flask db upgrade
- Запустить проект:
flask run
После запуска проект будет доступен по адресу: http://127.0.0.1:5000
Автор проекта: Alexander Sviridov
Pytests: YandexPracticum