Проект QRKot - сервис благотворительного фонда поддержки котиков QRKot собирает пожертвования на различные целевые проекты: на медицинское обслуживание нуждающихся хвостатых, на обустройство кошачьей колонии в подвале, на корм оставшимся без попечения кошкам — на любые цели, связанные с поддержкой кошачьей популяции.
Клонировать репозиторий и перейти в него в командной строке:
git clone git@github.com:vasilekx/cat_charity_fund.git
cd cat_charity_fund
Создать файл .env
-
Если у вас Linux/MacOS
touch .env
-
Если у вас Windows
type nul > .env
Заполнить файл .env:
APP_TITLE=Пожертвование в благотворительный фонд поддержки котиков QRKot
DESCRIPTION=Пожертвования на цели связанные с поддержкой кошачьей популяции.
DATABASE_URL=sqlite+aiosqlite:///./fastapi.db
SECRET=your_secret
FIRST_SUPERUSER_EMAIL=admin@test.com
FIRST_SUPERUSER_PASSWORD=your_password
# Переменные Google API
DATABASE_URL=
FIRST_SUPERUSER_EMAIL=
FIRST_SUPERUSER_PASSWORD=
TYPE=
PROJECT_ID=
PRIVATE_KEY_ID=
PRIVATE_KEY=
CLIENT_EMAIL=
CLIENT_ID=
AUTH_URI=
TOKEN_URI=
AUTH_PROVIDER_X509_CERT_URL=
CLIENT_X509_CERT_URL=
EMAIL=
Создать и активировать виртуальное окружение:
python3 -m venv venv
-
Если у вас Linux/MacOS
source venv/bin/activate
-
Если у вас windows
source venv/scripts/activate
Установить зависимости из файла requirements.txt:
python3 -m pip install --upgrade pip
pip install -r requirements.txt
Создать базу данных:
alembic upgrade head
Выполнить запуск сервиса:
uvicorn app.main:app --reload
http://127.0.0.1:5000/docs
POST-запрос:
http://127.0.0.1:8000/donation/
Тело запроса:
{
"full_amount": 500,
"comment": "Всем добра!",
"id": 22,
"create_date": "2022-12-05T20:56:48.224985"
}
Ответ:
{
"short_link": "http://127.0.0.1:5000/myshorturl",
"url": "https://flask.palletsprojects.com/en/latest/"
}
GET-запрос:
http://127.0.0.1:8000/charity_project/
Ответ:
[
{
"name": "pro01",
"description": "desc01",
"full_amount": 1000,
"id": 1,
"create_date": "2022-12-04T01:37:22.647044",
"invested_amount": 1000,
"fully_invested": true,
"close_date": "2022-12-05T15:22:01.916035"
},
{
"name": "pro02",
"description": "desc02",
"full_amount": 2050,
"id": 2,
"create_date": "2022-12-05T15:26:08.314071",
"invested_amount": 2050,
"fully_invested": true,
"close_date": "2022-12-05T15:26:08.323403"
}
]
GET-запрос:
http://127.0.0.1:8000/donation/
Ответ:
[
{
"full_amount": 700,
"comment": "comment 7",
"id": 7,
"create_date": "2022-12-05T12:20:14.075869",
"invested_amount": 700,
"fully_invested": true,
"close_date": "2022-12-05T15:26:08.323364",
"user_id": 2
},
{
"full_amount": 800,
"comment": "comment 8",
"id": 8,
"create_date": "2022-12-05T13:19:12.176741",
"invested_amount": 450,
"fully_invested": false,
"user_id": 2
},
{
"full_amount": 900,
"comment": "comment 9",
"id": 9,
"create_date": "2022-12-05T13:21:13.708572",
"invested_amount": 0,
"fully_invested": false,
"user_id": 2
}
]