【问题标题】:How to deploy/store tkinter sqlite database in a server?如何在服务器中部署/存储 tkinter sqlite 数据库?
【发布时间】:2021-02-15 22:12:07
【问题描述】:

我有一个登录界面,我使用 tkinter 和 sqlite3 作为数据库,一切正常,在我的 PC 本地存储的数据库中,我创建了用于登录的用户名和密码,我想知道是否有一种方法可以仅将我的 sqlite.db 存储在云或某些服务器中,并且我仍然可以使用我在云中的数据库在任何计算机上使用我的 tkinter 界面登录。 这就是我用来在本地连接我的 sqlite 数据库并且工作顺利的方法。

conn = sqlite3.connect('login_file.db')
c = conn.cursor()
user = entry_usuario.get()
contra = entry_contrasena.get()

c.execute('SELECT * FROM superusuario WHERE usuario = ? AND password = ?', (user, contra))

if c.fetchall():
    messagebox.showinfo(title='login correcto', message='usuario y contraseña correctos')
else:
    messagebox.showerror(tittle=None, message='Contraseña Incorrecta')

c.close() 

Psdt:我试图使用 firebase 身份验证来链接我的 tkinter 登录界面,但我没有成功(我不知道如何替换它),也许我应该使用另一台服务器?,有什么建议请告诉我, 提前谢谢祝你有美好的一天

【问题讨论】:

  • 当您说“我仍然可以使用我在云端的数据库在任何计算机上使用我的 tkinter 界面登录。” 你的意思是你已经先安装了那台计算机上的 tkinter 界面?或者,您是否也想通过服务器提供 tkinter 接口?
  • @BryanOakley 我只想将我的 sqlite 数据库保存在服务器中,而不是我的所有 tkinter 界面应用程序。我已经有我的 sqlite 数据库在本地工作,所以将它保存在服务器中会很棒,但如果不可能,我应该尝试另一个可以存储在服务器中的数据库,实际上我一直在尝试 firebase,但我不能得到它
  • sqlite 是一个基于文件的数据库,没有内置的网络服务器。因此,您要么需要编写自己的访问服务器,并进行身份验证,然后将其托管在 AWS 服务器(或类似服务器)上。没有服务器端功能的唯一方法是将其托管在远程网络驱动器上 - 并将其安装在您的电脑上;但要做到这一点,您的数据会暴露在外,因为 sqlite 数据库没有密码保护。
  • 在这种情况下,我建议从示例中删除 tkinter 代码。您真正要问的是如何从服务器提供 sqlite 数据库。

标签: python firebase sqlite tkinter firebase-authentication


【解决方案1】:

sqlite 是一个基于文件的数据库,没有内置的网络服务器。因此,您的应用程序需要将其作为文件访问到已知位置。

没有服务器端功能的唯一方法是将其托管在远程网络驱动器上 - 并将其安装在您的电脑上;但是要做到这一点,您会暴露您的数据,因为 sqlite 数据库不受任何形式的密码保护 - 任何人都可以下载并打开数据库。

为了保护它,您需要实现一个网络服务器(可能在 AWS 服务器上 - 或类似服务器),它提供受保护的访问权限并将数据公开为 REST API,或者更好的是,如果您想要一个,请不要使用 sqlite远程数据库。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-06-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多