MySQL, PostgreSQL, Oracle, Redis … и многие другие вы просто называете это … Базы данных действительно являются важной технологией в прогрессе человеческой цивилизации. Сегодня мы видим, насколько ценным Данные Это и поэтому, как держать их в безопасности и стабильно, именно здесь идет база данных!
Мы можем увидеть, насколько важны базы данных. В течение довольно долгого времени я думал о создании своей собственной базы данных игрушек, чтобы понять, играть и экспериментировать с ней как Ричард Фейнман сказал
Что я не могу создать, Я не понимаю
Так что без каких -либо дальнейших разговоров давайте перейдем к веселой части … Кодирование …
Для этой базы данных игрушек мы будем использовать Python (Мой любимый ❤), я назвал эту базу данных Foobardb (Я не мог найти ни одного имени;)), но вы можете назвать его все, что хотите!
Итак, сначала давайте импортируем некоторые необходимые библиотеки Python, которые уже доступны в библиотеке Python Standard Library
import json import os
Да, нам нужны только два либерага! json
Поскольку наша база данных будет основана на JSON и ОС
Для некоторых вещей, связанных с пути!
Теперь давайте определим основной класс Foobardb
С некоторой довольно основной функцией, которую я объясню их ниже.
class FoobarDB(object): def __init__(self , location): self.location = os.path.expanduser(location) self.load(self.location) def load(self , location): if os.path.exists(location): self._load() else: self.db = {} return True def _load(self): self.db = json.load(open(self.location , "r")) def dumpdb(self): try: json.dump(self.db , open(self.location, "w+")) return True except: return False
Здесь мы определили наш основной класс с __init__
Функция, когда создание базы данных FOOBAR нам нужно только передать местоположение базы данных. В первом __init__
Функция мы принимаем параметр местоположения и заменяем ~
или ~ Пользователь
С пользовательским домашним каталогом, чтобы он работал намерено, и, наконец, поместите его в Self.Location
переменная для доступа к нему позже на одних и тех же классовых функциях. В конце мы называем загрузка
Функция прохождения самостоятельно
как аргумент.
. . . . def load(self , location): if os.path.exists(location): self._load() else: self.db = {} return True . . . .
В следующем загрузка
Функция Мы принимаем местоположение базы данных в качестве параметра, затем проверяем, существует ли база данных или нет, если она существует, мы просто загружаем ее с помощью _Load ()
Функция (объяснена ниже), в противном случае мы создаем пустой объект JSON в памяти. И, наконец, вернуть правду на успех.
. . . . def _load(self): self.db = json.load(open(self.location , "r")) . . . .
В _load
функция Мы просто открываем файл базы данных из местоположения, хранящегося в Self.Location
затем преобразовать его в объект JSON и загружает его в self.db
переменная.
. . . . def dumpdb(self): try: json.dump(self.db , open(self.location, "w+")) return True except: return False . . . .
И, наконец, DIRMPDB
Функция, его имя говорит о том, что он делает, в основном он просто берет базу данных в памяти (на самом деле объект JSON) из self.db
переменная и сохраняет его в файле базы данных! Он возвращается Верно Если сохранено успешно, иначе возвращает ЛОЖЬ
Но подождите минуту! 😐 База данных бесполезна, если она не может хранить и получить данные, не так ли? 😉 Поехам и добавим их также … 😎
. . . . def set(self , key , value): try: self.db[str(key)] = value self.dumpdb() return True except Exception as e: print("[X] Error Saving Values to Database : " + str(e)) return False def get(self , key): try: return self.db[key] except KeyError: print("No Value Can Be Found for " + str(key)) return False def delete(self , key): if not key in self.db: return False del self.db[key] self.dumpdb() return True . . . .
установить
Функция состоит в том, чтобы добавить данные в базу данных, поскольку наша база данных представляет собой простую базу данных на основе клавиш, на основе ключей, мы возьмем только ключ
и ценность
как аргумент. Во -первых, мы постараемся добавить ключ и значение в базу данных, их сохранить базу данных, если все пойдет правильно, он вернет истинное, оно напечатает сообщение об ошибке и вернет false (мы не хотим, чтобы она сбоя и стереть наши Данные каждый раз, когда происходит ошибка 😎).
. . . . def get(self, key): try: return self.db[key] except KeyError: return False . . . .
получить
это простая функция, мы принимаем ключ
В качестве аргумента и попытаться вернуть значение, связанное с ключом из базы данных, другие false возвращаются с помощью сообщения.
. . . . def delete(self , key): if not key in self.db: return False del self.db[key] self.dumpdb() return True . . . .
Удалить
Функция – удалить ключ, а также его значение из базы данных. Сначала мы убедимся, что ключ присутствует в базе данных, если не возвращаем False, в противном случае мы удаляем ключ со встроенным del
который автоматически удаляет значение ключа. Затем мы сохраняем базу данных и возвращаем False.
Теперь вы можете подумать, что, если бы я создал большую базу данных и захочет сбросить ее? Теоретически, мы можем использовать Удалить
Но это не практично, а также очень много времени! ⏳ ⏳ Таким образом, мы можем создать функцию для выполнения этой задачи …
. . . . def resetdb(self): self.db={} self.dumpdb() return True . . . .
Вот функция для сброса базы данных, Resetdb
! Это так просто, сначала мы делаем, это повторно уценить нашу базу данных в памяти с пустым объектом JSON и просто сохраняет ее! Вот и все! Наша база данных теперь снова чистая бритая!
Полный источник здесь 👉 Bauripalash/foobardb
Это друзья! Мы создали наши собственные База данных игрушек !! 🎉 🎉 На самом деле Foobardb Это просто простая демонстрация базы данных, это как дешевая игрушка DIY, вы можете улучшить ее любым способом! Вы также можете добавить много других функций в соответствии с вашими потребностями!
Надеюсь, тебе понравилось! Дайте мне знать ваши предложения, идеи или ошибки, которые я сделал в комментариях ниже! 👇
Следуй/пинг меня В социальных сетях 👉 Facebook , Twitter , Instagram
Спасибо! До скорого!
Если вам нравятся мои работы (мои статьи, истории, программное обеспечение, исследования и многое другое) рассмотрим Купить мне кофе ☕ 🤗
Оригинал: “https://dev.to/bauripalash/write-a-simple-toy-database-in-python-within-minutes-3e8o”