Автор оригинала: Palash Bauri.
MySQL, PostgreSQL, Oracle, Redis и многие другие, вы просто назовите его – базы данных являются действительно важным технологией в ходе прогресса человеческой цивилизации. Сегодня мы можем увидеть, насколько ценным данные Есть, и поэтому сохраняя их безопасную и стабильную, где база данных приходит!
Таким образом, мы можем видеть, насколько важны базы данных. Для некоторого времени я думал о создании моей собственной игрушечной базы данных, чтобы понять, играть вокруг и экспериментировать с ним. Как Ричард Фейнман сказал:
Поэтому без дальнейшего разговора давайте прыгнем в веселую часть: кодирование.
Давайте начнем кодировать …
Для этой базы данных игрушек мы будем использовать Python (Мой любимый ❤️). Я назвал эту базу данных Foobardb (Я не мог найти никакого другого имени?), Но вы можете назвать это, что вы хотите!
Поэтому сначала давайте импортируем некоторые необходимые библиотеки Python, которые уже доступны в стандартной библиотеке Python:
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
Переменная для доступа к ней позже в тех же классовых функциях. В конце концов, мы называем нагрузка
Функция, проходящая 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 . . . .
И, наконец, dumpdb
Функция: его название говорит, что он делает. Это принимает базу данных в памяти (на самом деле объект 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.
Теперь вы можете подумать, что если я создал большую базу данных и хочу сбросить его? Теоретически, мы можем использовать Удалить
– Но это не практично, и это тоже очень много времени! ⏳ Итак, мы можем создать функцию для выполнения этой задачи …
. . . . def resetdb(self): self.db={} self.dumpdb() return True . . . .
Вот функция для сброса базы данных RESETDB
! Это так просто: Во-первых, что мы делаем, повторно назначить нашу базу данных в памяти с пустым объектом JSON, и это просто сохраняет его! Вот и все! Наша база данных теперь снова чистая выбрита.
Ну наконец то… ?
Это друзья! Мы создали наши собственные Игрушечная база данных ! ?? На самом деле, для Обардб I S Просто простая демонстрация базы данных. Это как дешевая игрушка DIY: вы можете улучшить это, как вы хотите. Вы также можете добавить много других функций в соответствии с вашими потребностями.
Полный источник здесь? Баурипалаш/Фуобардб
Надеюсь, вам понравилось! Дайте мне знать ваши предложения, идеи или ошибки, которые я сделал в комментариях ниже! ?
Следуйте/пинг меня на социальных отношениях? Facebook, Twitter, Instagram.
Спасибо! До скорой встречи!
Если вам нравится моя работа (мои статьи, истории, программы, исследования и многое другое) рассмотреть Покупая меня кофе ☕ ?