Сайт, который выдает случайные мнения о фильмах, поможет снять ответственность за выбор картины для просмотра и положиться на случай.
Написал сам сайт и API к нему на Flask. Реализовал такие возможности для пользователей сайта как: Получить случайное мнение о фильме; Перейти на страницу конкретного мнения по прямой ссылке; Добавить собственное мнение о фильме. Подключил к проекту ORM SQLAlchemy. Использовал базу данных SQLite. Установил и настроил Flask-Migrate для создания и применения миграций. Подключил статику и шаблоны к проекту, реализовал возможность вывода данных в шаблоны при помощи шаблонизотора Jinja2. Описал форму и валидаторы полей форм при помощи Flask-WTF. Прописал пользовательскую команду для выгрузки данных из CSV-файла в БД, для того, что бы можно было продемонстрировать возможности сайта и не деплоить его с пустым контентом.
Возможности для пользователей сайта:
- Получить случайное мнение о фильме.
- Перейти на страницу конкретного мнения по прямой ссылке.
- Добавить собственное мнение о фильме.
Каждое мнение содержит:
- название фильма,
- текст мнения,
- уникальную ссылку на страницу с мнением,
- ссылку на подробный обзор фильма на любом стороннем сервисе (эту информацию пользователь может не добавлять).
- Кобелев Андрей Андреевич
Клонировать репозиторий и перейти в него в командной строке:
git clone https://github.com/andrey-kobelev/what_to_watch.git
cd what_to_watch
Cоздать и активировать виртуальное окружение:
python3 -m venv venv
source venv/bin/activate
Установить зависимости из файла requirements.txt:
python3 -m pip install --upgrade pip
pip install -r requirements.txt
Создать файл .env
FLASK_APP=opinions_app
FLASK_ENV=development
DATABASE_URI=sqlite:///the_app.sqlite3
Создать базу данных Убедитесь, что виртуальное окружение проекта what_to_watch активировано, и из директории what_to_watch запустите интерактивную оболочку:
..$ flask shell
Python 3.9.2 (v3.9.2:1a79785e3e, Feb 19 2021, 09:09:00)
[Clang 12.0.0 (clang-1200.0.32.29)] on darwin
App: opinions_app [development]
Instance: /Users/username/dev/what_to_watch/instance
>>> from opinions_app import db
>>> db.create_all()
Применить миграции:
flask db upgrade
Импортировать данные для демонстрации работы проекта
flask load_opinions
Запустить проект:
flask run