Python + Tkinter连接本地MySQL数据库简单实现注册登录

Python + Tkinter 连接本地 MySQL 数据库简单实现注册登录的步骤如下:

1.安装必要的软件
在本地计算机上安装 MySQL 数据库,并安装 Python 包管理器 pip。

2.使用pip安装需要的包
打开终端或命令行窗口,使用 pip 安装以下必要的 Python 包:

  • mysql-connector-python:用于连接 MySQL 数据库
  • bcrypt:用于密码的哈希和字符串的比较
  • tkinter:用于创建简单的 GUI 界面

安装方法为:在终端或命令行窗口中使用以下命令安装:

pip install mysql-connector-python bcrypt tkinter

3.创建数据库和表格
使用 MySQL Workbench 创建名为 "users" 的数据库,并在其中创建 "accounts" 表格,用于存储用户的用户名和哈希密码。

表格应该有以下两个列:

  • username varchar(255) PRIMARY KEY
  • password varchar(255)

密码列应该使用 VARCHAR 255 数据类型,以便存储哈希密码。

4.编写 Python 代码
使用 Python 编写代码,连接到本地 MySQL 数据库,并创建 Tkinter 窗口,实现注册和登录功能。

示例代码 1:注册功能

from tkinter import *
import mysql.connector
import bcrypt

# 创建Tkinter窗口
root = Tk()
root.title("Registration Form")

# 连接到MySQL数据库
mydb = mysql.connector.connect(
  host="localhost",
  user="root",
  password="password",
  database="users"
)

# 创建账户表
mycursor = mydb.cursor()
mycursor.execute("CREATE TABLE IF NOT EXISTS accounts (username VARCHAR(255) PRIMARY KEY, password VARCHAR(255))")

# 处理表单提交
def submit():
  # 获取表单提交数据
  username = username_entry.get()
  password = password_entry.get()

  # 将密码哈希
  hashed_password = bcrypt.hashpw(password.encode('utf-8'), bcrypt.gensalt())

  # 将用户名和哈希密码插入到账户表
  sql = "INSERT INTO accounts (username, password) VALUES (%s, %s)"
  val = (username, hashed_password)
  mycursor.execute(sql, val)
  mydb.commit()

  # 显示注册成功信息
  message_label.config(text="Registration Success")

# 创建表单元素
username_label = Label(root, text="Username:")
username_label.grid(row=0, column=0)

username_entry = Entry(root)
username_entry.grid(row=0, column=1)

password_label = Label(root, text="Password:")
password_label.grid(row=1, column=0)

password_entry = Entry(root, show="*")
password_entry.grid(row=1, column=1)

submit_button = Button(root, text="Submit", command=submit)
submit_button.grid(row=2, column=1)

message_label = Label(root, text="")
message_label.grid(row=3, columnspan=2)

root.mainloop()

示例代码 2:登录功能

from tkinter import *
import mysql.connector
import bcrypt

# 创建Tkinter窗口
root = Tk()
root.title("Login Form")

# 连接到MySQL数据库
mydb = mysql.connector.connect(
  host="localhost",
  user="root",
  password="password",
  database="users"
)

# 处理表单提交
def submit():
  # 获取表单提交数据
  username = username_entry.get()
  password = password_entry.get()

  # 查询数据库中存储的哈希密码
  mycursor = mydb.cursor()
  sql = "SELECT password FROM accounts WHERE username = %s"
  val = (username,)
  mycursor.execute(sql, val)
  result = mycursor.fetchone()

  # 如果用户存在且密码正确
  if result is not None and bcrypt.checkpw(password.encode('utf-8'), result[0].encode('utf-8')):
    message_label.config(text="Login Success")
  else:
    message_label.config(text="Login Failed")

# 创建表单元素
username_label = Label(root, text="Username:")
username_label.grid(row=0, column=0)

username_entry = Entry(root)
username_entry.grid(row=0, column=1)

password_label = Label(root, text="Password:")
password_label.grid(row=1, column=0)

password_entry = Entry(root, show="*")
password_entry.grid(row=1, column=1)

submit_button = Button(root, text="Submit", command=submit)
submit_button.grid(row=2, column=1)

message_label = Label(root, text="")
message_label.grid(row=3, columnspan=2)

root.mainloop()

以上是 Python + Tkinter 连接本地 MySQL 数据库简单实现注册登录的详细攻略,如有不清楚之处可以随时提问。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python + Tkinter连接本地MySQL数据库简单实现注册登录 - Python技术站

(0)
上一篇 2023年6月13日
下一篇 2023年6月13日

相关文章

  • python用字节处理文件实例讲解

    对于“python用字节处理文件实例讲解”的完整攻略,我们可以分以下步骤来介绍。 1. 概述 在Python中,文件可以处理为字符和字节,一般而言,字符方式较为常见,字节方式则是用于处理二进制文件。 Python提供了内置的open()函数,可以指定文件读写的模式和文件编码方式等信息。在使用字节方式处理文件时,可以使用二进制模式的rb(读取)和wb(写入)模…

    python 2023年5月20日
    00
  • Python区块链交易类教程

    Python区块链交易类教程 什么是区块链交易? 区块链交易是指基于区块链技术的交易操作。区块链技术是一种去中心化的技术,其主要特点是透明性、不可篡改性、去中心化和匿名性。区块链技术应用到交易领域之后,可以极大地提高交易的安全性和公正性,避免交易被篡改或者被中介机构控制的情况发生。 区块链交易类库 在Python语言中,有很多的区块链交易类库可以使用,例如p…

    python 2023年6月3日
    00
  • python+requests接口自动化框架的实现

    以下是关于Python+requests接口自动化框架的实现: Python+requests接口自动化框架的实现 requests是Python中一个流行的HTTP库,可以用于向Web服务器发送HTTP请求和接响应。结合Python的unittest测试框架,可以实现接口自动化测试。以下是Python+requests接口自动化框架的实现: 安装reque…

    python 2023年5月14日
    00
  • 基于PyQt5制作一个windows通知管理器

    下面是制作一个Windows通知管理器的完整攻略,包含以下步骤: 步骤一:安装并学习PyQt5 PyQt5是基于Python的GUI框架,用于创建跨平台的应用程序。首先需要安装PyQt5,可以使用pip工具来安装: pip install PyQt5 然后需要学习PyQt5的基础知识,包括信号与槽、控件、布局等。 步骤二:创建主界面 首先需要创建一个主界面,…

    python 2023年6月3日
    00
  • Python selenium 自动化脚本打包成一个exe文件(推荐)

    Python selenium 是一个强大的自动化测试工具,可以帮助开发人员快速构建高效的脚本,提高项目的质量和效率。但是在实际应用中,需要将脚本打包成一个exe文件,以便在其他机器上运行,本文主要介绍如何实现 Python selenium 自动化脚本打包成一个 exe 文件的操作方法。 环境准备 安装 Python2.7 或 Python3.6 安装 P…

    python 2023年6月6日
    00
  • python+pyqt5实现24点小游戏

    一、介绍 24点小游戏是一种常见的数学游戏,要求玩家在给定的4个数字中选出任意3个数字,通过加减乘除的运算使得运算结果等于24。本文介绍如何使用Python和PyQt5框架实现24点小游戏。 二、实现步骤 安装PyQt5 在开始编写代码之前,需要安装PyQt5框架以便使用Qt Designer设计PyQt5窗口。安装方法: pip install PyQt5…

    python 2023年6月3日
    00
  • Python实现微信小程序自动操作工具

    Python实现微信小程序自动操作工具 本攻略将详细介绍如何使用Python实现微信小程序自动操作工具,方便开发者快速进行小程序的测试、批量操作等。 前置条件 熟悉Python编程语言; 了解微信小程序的基本操作和运行机制; 安装selenium、chromedriver和wxpy等Python库。 实现步骤 1. 安装selenium和chromedriv…

    python 2023年5月19日
    00
  • Python3 io文本及原始流I/O工具用法详解

    欢迎来到本文介绍的“Python3 io文本及原始流I/O工具用法详解”。本文将介绍Python3的I/O操作中涉及到的文本流及原始流处理方式,适用于初学者和有一定经验的Python程序员。 1. Python3的I/O库以及其特点 Python3的I/O库分为两种类型:文本流和原始流。其中,文本流主要用于处理Unicode编码的文本数据,而原始流则主要用于…

    python 2023年6月5日
    00
合作推广
合作推广
分享本页
返回顶部