呀,拖更好久了,大家有没有想我呀?
不知道大家有没有注意到,我的标题从‘[自制Json数据库 | 02]’变成了‘[自制数据库 | 03]’。为什么呢?嘿嘿,再拖更的这几天,我把数据库进行了一次升级,由JSON格式储存换为了我自己的格式储存,增加了语言选择功能,还修复了一些小BUG。
还记得上次是讲到‘insert’这个命令语句。不过呢因为升级,我把前面的也重新讲一下吧。
if __name__ == '__main__':
folder=''
a=locale.getdefaultlocale()
if not "PyDB" in os.listdir():
os.makedirs('./PyDB'+'./user')
os.makedirs('./PyDB'+'./DataBase')
os.makedirs("./PyDB"+"./Language")
if a[0]=='en_US':
b='{"Language":"English"}'
with open("PyDB/Language/language.hjy",mode='w',encoding='gbk') as j_file:
by=b.encode("utf-8")
json.dump(by,j_file,ensure_ascii=False)
elif a[0]=="zh_CN":
b='{"Language":"中文"}'
with open("PyDB/Language/language.hjy",mode='w',encoding='gbk') as j_file:
by=b.encode("utf-8")
json.dump(by,j_file,ensure_ascii=False)
else:
b='{"Language":"English"}'
with open("PyDB/Language/language.hjy",mode='w',encoding='gbk') as j_file:
by=b.encode("utf-8")
json.dump(by,j_file,ensure_ascii=False)
if "PyDB" in os.listdir():
language=GetFromJSON("Language/language.hjy")
if language["Language"]=='English':
print(" Welcome to PyDB Monitor.")
print(" Server version: 1.0.0 PyDB Server.")
print(" Powered by @ Hang Jiayu")
print(" Add '@' at the beginning of the statement.")
print(" Type '@help' or '@h' for help.Type '@continue' or '@c' to clear the current input statement.\n")
print("PyDB>Welcome to PyDB!"+"\n")
elif language["Language"]=="中文":
print(" 欢迎使用PyDB.")
print(" 服务版本: 1.0.0 PyDB Server.")
print(" 技术支持:Hang Jiayu")
print(" 在每行语句前添加 '@' 。")
print(" 输入 '@help' 或 '@h' 获取帮助。输入 '@continue' 或 '@c' 清除当前输入的语句。\n")
print("提示>欢迎使用PyDB!"+"\n")
在最开始,如果还没有创建过数据库的话,它会先检查系统语言,然后写入到‘language.hjy’中(.hjy是我自己用的一个格式,直接打开并读取就好了,也可以换成.json)
因为我本来是做了一些加密处理的,但不方便给大家看,就不放出来了,这里的是去掉了加密过程的。如果大家想要进行加密的话,可以在后面进行投票。如果人数多的话,我后面可能会出一期关于加密的文章。
在获取到系统语言后,我们先检查一下(因为只做了两种语言的操作系统,所以如果是其他语言,则默认中文),然后按照语言打印提示信息(毕竟跟随操作系统语言的话大部分人用起来会比较舒服的吧)。
然后就是我们的登录界面了,也就是第一个大循环:
while True:
language=GetFromJSON("Language/language.hjy")
#First time
if language["Language"]=="English":
if os.listdir("PyDB/user")==[]:
language=input("PyDB>Please choose your language.(English/中文)\nLanguage>")
if language=="English":
a='{"Language":"English"}'
with open("PyDB/Language/language.hjy",mode='w',encoding="gbk") as f:
by=a.encode("utf-8")
json.dump(base64.b64encode(by).decode("utf-8"),f,ensure_ascii=False)
j_file=open("./PyDB/Language/language.hjy",'w')
json.dump(a,j_file,ensure_ascii=False)
j_file.close()
print("PyDB> There are no users yet :( ... Let's create one! :) \n")
while True:
admin=input("PyDB> Please enter your User Name!\nAdministrator>")
if admin=='':
admin=input("PyDB> Please enter your User Name!\nAdministrator>")
else:
break
Pass=input("PyDB> Please enter your password!\nPassword>")