51 lines
2.7 KiB
Python
51 lines
2.7 KiB
Python
from typing import List
|
||
from pydantic import BaseModel, Field, TypeAdapter
|
||
from uuid import UUID, uuid4
|
||
import json
|
||
|
||
|
||
class Record(BaseModel):
|
||
id: UUID = Field(default_factory=uuid4)
|
||
name: str | None = ''
|
||
description:str | None = ''
|
||
img_path: str | None = ''
|
||
|
||
|
||
class DB:
|
||
|
||
records: List[Record] = []
|
||
|
||
path = ''
|
||
|
||
def __init__(self, path=''):
|
||
if path != '':
|
||
with open(path, 'r') as file:
|
||
js_data = json.load(file)
|
||
tmp = []
|
||
for item in js_data:
|
||
tmp.append(json.loads(item))
|
||
js_data = tmp
|
||
self.records = [Record(**model_data) for model_data in js_data]
|
||
self.path = path
|
||
|
||
|
||
def add_record(self, name='', description='', img_path=''):
|
||
new_rec = Record(name=name, description=description, img_path=img_path)
|
||
self.records.append(new_rec)
|
||
with open(self.path, 'w') as file:
|
||
model_list_json = [record.model_dump_json() for record in self.records]
|
||
json.dump(model_list_json, file)
|
||
|
||
def edit_record(self, id):
|
||
pass
|
||
|
||
|
||
def delete_record(self, id):
|
||
for i in range(len(self.records)):
|
||
if self.records[i].id == id:
|
||
self.records.pop(i)
|
||
|
||
|
||
# db_t = DB('db.json')
|
||
|
||
# db_t.add_record(name='Азовское море',description='полузамкнутое море Атлантического океана на востоке Европы, омывающее побережье России и Украины. Самое мелкое море в мире: глубина не превышает 13,5 метров[2], средняя глубина около 7,4 м (по разным оценкам — от 6,8 до 8 м)[3]. \n Соединяется с Атлантическим океаном длинной цепочкой проливов и морей: Керченский пролив — Чёрное море — пролив Босфор — Мраморное море — пролив Дарданеллы — Эгейское море — Средиземное море — Гибралтарский пролив. По отдалённости от океана Азовское море является самым континентальным морем планеты. Объём воды — 290 км³[4]. \n В древности Азовского моря не существовало и Дон впадал в Чёрное море в районе современного Керченского пролива. Предполагается, что заполнение акватории Азовского моря произошло около 5600 года до н. э.', img_path='img/azovskoe.jpg') |