An open API service indexing awesome lists of open source software.

https://github.com/noras2001/sqlalchemy_project

Book CRUD Application
https://github.com/noras2001/sqlalchemy_project

bootstrap crud fastapi html sqlalchemy

Last synced: 2 months ago
JSON representation

Book CRUD Application

Awesome Lists containing this project

README

          

# Book CRUD Application

Это простое CRUD-приложение (Create, Read, Update, Delete) для управления книгами, построенное с использованием FastAPI, SQLAlchemy (асинхронный), и базы данных SQLite. Интерфейс использует Bootstrap для стилизации и ванильный JavaScript для динамического взаимодействия.

## Возможности

- **Создание книги**: Добавление новой книги в базу данных.
- **Просмотр книги**: Получение и отображение деталей конкретной книги по её ID.
- **Обновление книги**: Изменение деталей существующей книги.
- **Удаление книги**: Удаление книги из базы данных.
- **Список книг**: Отображение всех книг в динамической таблице.
![image](https://github.com/user-attachments/assets/06fd9378-8600-4b25-a80e-29e7c4c0f23e)
- **Форма для фильтрации таблицы**
![image](https://github.com/user-attachments/assets/e253f1e0-c772-497a-8198-40fd25e072cb)

## Структура проекта
```
project/
├── app/
│ ├── main.py
│ ├── models.py
│ ├── schemas.py
│ ├── crud.py
│ ├── database.py
│ ├── templates/
│ │ └── index.html
│ └── static/
│ └── js/
│ └── scripts.js
├── venv/
├── requirements.txt
└── README.md
```

## Установка

1. **Клонируйте репозиторий:**

```bash
git clone https://github.com/yourusername/book-crud-app.git
cd book-crud-app
```

2. **Создайте и активируйте виртуальное окружение:**

```bash
python3 -m venv venv
source venv/bin/activate # Для Windows: venv\Scripts\activate
```

3. **Установите зависимости:**

```bash
pip install -r requirements.txt
```

4. **Запустите приложение:**

```bash
uvicorn app.main:app --reload
```

5. **Откройте приложение в браузере:**

Перейдите по адресу `http://127.0.0.1:8000/`.

## Использование

- **Создание книги**: Заполните форму "Create Book" и нажмите кнопку "Create Book" для добавления новой книги.
- **Просмотр книги по ID**: Введите ID книги в форму "View Book by ID" и нажмите "Get Book" для получения её деталей.
- **Обновление книги**: Введите ID книги и заполните поля, которые хотите обновить, в форме "Update Book", затем нажмите "Update Book".
- **Удаление книги**: Введите ID книги в форму "Delete Book" и нажмите "Delete Book" для её удаления.
- **Список книг**: Все книги отображаются в таблице "Books List", которая обновляется динамически при выполнении операций.

## Технологии

- **Backend**: FastAPI, SQLAlchemy (асинхронный), SQLite, Pydantic
- **Frontend**: HTML, Bootstrap 4, JavaScript (Fetch API)
- **Прочее**: Jinja2 для шаблонов

## Примечания

- Убедитесь, что файл базы данных `test.db` доступен и у приложения есть права на чтение/запись.
- Приложение использует асинхронные операции для повышения производительности и масштабируемости.
- Для продакшн-развертывания рекомендуется использовать более надежную систему управления базами данных и настроить соответствующие меры безопасности.

## Лицензия

Этот проект лицензирован под лицензией MIT.