文章目录

  • 一、创建user表
  • 2、给表添加数据
  • 3、利用wxpython创建登录界面
  • 4、执行结果如图

一、创建user表

# -*- coding: utf-8 -*-
"""
Spyder EditorThis is a temporary script file.
"""
import pymysql#调用MySQL模块
db=pymysql.connect(host='127.0.0.1',user='root',password='root',db='python',charset='utf8')#创建链接
cur=db.cursor()#设置游标
tem=cur.execute('select version()')#判断链接是否成功成功则返回1
if tem!='':print('链接成功')
else:print('链接失败!')
cur.execute("DROP TABLE IF EXISTS user")#创建表
sql="""
CREATE TABLE user (name varchar(50) NOT NULL,password varchar(50) NOT NULL,PRIMARY KEY ( name )
)  ENGINE=MyISAM  DEFAULT CHARSET=utf8;
"""
cur.execute(sql)#执行sql语句
db.cursor()#关闭数据库

2、给表添加数据

# -*- coding: utf-8 -*-
"""
Created on Mon May  3 10:16:24 2021"""
import sys #调用模块
sys.path.append(r"D:/python练习/Data/MySQL")#需要调用的py文件路径
import tmep#调用创建好的python制做MySQL表文件
import pymysql#调用MySQL模块
db=pymysql.connect(host='127.0.0.1',user='root',password='root',db='python',charset='utf8')#链接数据库
cur=db.cursor()
data=[("root",'root'),("123456",'123456'),]#创建写入数据
try:cur.executemany("insert into user(name,password )values(%s,%s)", data)#调用执行行函数写入数据db.commit()
except :db.rollback()
db.cursor()#关闭数据库链接

3、利用wxpython创建登录界面

import wx
import sys #调用模块
sys.path.append(r"D:/python练习/Data/MySQL")#需要调用的py文件路径
import tmep1#调用创建好的python制做MySQL表文件
from sys import exit
class MyFrame(wx.Frame):def __init__(self, parent, id):wx.Frame.__init__(self, parent, id, '用户登录', size=(400, 300),style = wx.DEFAULT_FRAME_STYLE)# 创建面板panel = wx.Panel(self)panel.Bind(wx.EVT_ERASE_BACKGROUND,self.OnEraseBack)# 创建“确定”和“取消”按钮,并绑定事件self.bt_confirm = wx.Button(panel, label='确定')self.bt_confirm.Bind(wx.EVT_BUTTON,self.OnclickSubmit)self.bt_cancel = wx.Button(panel, label='取消')self.bt_cancel.Bind(wx.EVT_BUTTON,self.OnclickCancel)# 创建文本,左对齐        self.title = wx.StaticText(panel, label="浩宇游戏")self.label_user = wx.StaticText(panel, label="用户名:")self.text_user = wx.TextCtrl(panel, style=wx.TE_LEFT)self.label_pwd = wx.StaticText(panel, label="密   码:")self.text_password = wx.TextCtrl(panel, style=wx.TE_PASSWORD)# 添加容器,容器中控件按横向并排排列hsizer_user = wx.BoxSizer(wx.HORIZONTAL)hsizer_user.Add(self.label_user, proportion=0, flag=wx.ALL, border=5)hsizer_user.Add(self.text_user, proportion=1, flag=wx.ALL, border=5)hsizer_pwd = wx.BoxSizer(wx.HORIZONTAL)hsizer_pwd.Add(self.label_pwd, proportion=0, flag=wx.ALL, border=5)hsizer_pwd.Add(self.text_password, proportion=1, flag=wx.ALL, border=5)hsizer_button = wx.BoxSizer(wx.HORIZONTAL)hsizer_button.Add(self.bt_confirm, proportion=0, flag=wx.ALIGN_CENTER, border=5)hsizer_button.Add(self.bt_cancel, proportion=0, flag=wx.ALIGN_CENTER, border=5)# 添加容器,容器中控件按纵向并排排列vsizer_all = wx.BoxSizer(wx.VERTICAL)vsizer_all.Add(self.title, proportion=0, flag=wx.BOTTOM | wx.TOP | wx.ALIGN_CENTER,border=15)vsizer_all.Add(hsizer_user, proportion=0, flag=wx.EXPAND | wx.LEFT | wx.RIGHT, border=45)vsizer_all.Add(hsizer_pwd, proportion=0, flag=wx.EXPAND | wx.LEFT | wx.RIGHT, border=45)vsizer_all.Add(hsizer_button, proportion=0, flag=wx.ALIGN_CENTER | wx.TOP, border=15)panel.SetSizer(vsizer_all)def pngSize(self):#加载图片函数p = wx.Image("D:/笔记截图/Camera Roll/TE1.jpg", wx.BITMAP_TYPE_JPEG).ConvertToBitmap()  # 载入图片img = p.ConvertToImage()bgm = img.Scale(400,300)return wx.Bitmap(bgm)#返回 bitmap函数值    def OnEraseBack(self,event):#设置画布背景函数dc = event.GetDC()if not dc:dc = wx.ClientDC(self)rect = self.GetUpdateRegion().GetBox()dc.SetClippingRect(rect)dc.Clear()dc.DrawBitmap(self.pngSize(),0 ,0)def  OnclickSubmit(self,event):#判断输入用户或密码函数import pymysql#加载MySQL模块db=pymysql.connect(host='127.0.0.1',user='root',password='root',db='python')#创建链接cursor=db.cursor()tem=cursor.execute('select version()')#tem接受返回值if tem!=1:#判断链接是否成功成功print('链接失败!')exit(1)message = ""username = self.text_user.GetValue()     # 获取输入的用户名password = self.text_password.GetValue() # 获取输入的密码key=cursor.execute("select *from user where name=%s and password=%s" ,(username,password))#执行查询户名和密码的SQL语言 执行成功则返回1赋值给keyresult = cursor.fetchall()#获取查询内容为一个元组for i in result:#遍历这个元组username=i[0] #把获取的用户名赋值给usernamepassword=i[1]#把获取的密码赋值给passwordif username==''or password=='':#判断用户名或密码是否为空message = '用户名或密码不为空'elif username=='root'and password=='root':#判断用户是否为超级用户message='超级管理员登录权限'elif key!=1:#接受值key不为1时message='用户名或密码错误'elif (username!='root'and key==1)and( password!='root'and  key==1):#返回值为1但是用户不为root用户message='普通用户权限登录'wx.MessageBox(message)    def OnclickCancel(self,event):""" 点击取消按钮,执行方法 """self.text_user.SetValue("")     # 清空输入的用户名                              self.text_password.SetValue("") # 清空输入的密码 if __name__ == '__main__':app = wx.App()                      # 初始化frame = MyFrame(parent=None,id=-1)  # 实例MyFrame类,并传递参数    frame.Show()                        # 显示窗口app.MainLoop()                      # 调用主循环方法

4、执行结果如图


wxpython配合MySQL数据库完成用户登录页面的设计相关推荐

  1. 用python和mysql做注册登录系统_python3.6 下连接mysql数据库实现用户登录与注册

    在python3.6中连接数据库只能使用pymysql包,安装方法直接通过pip install pymysql安装即可,较为方便. 初学者一定要做的便是用户的注册与登录,同时牵涉到数据库的相关操作, ...

  2. MySQL数据库修改用户登录密码的三种方式

    文章目录 一.更新 mysql.user 表 二.用 set password 命令 三.使用 mysqladmin 命令 提醒:MYSQL5.7 版本后不再支持password()函数和passwo ...

  3. Bootstrap4+MySQL前后端综合实训-Day06-AM【eclipse详细配置Tomcat、开发web项目、servlet、连接MySQL8.0数据库、用户登录界面的编写与验证、分页查询】

    [Bootstrap4前端框架+MySQL数据库]前后端综合实训[10天课程 博客汇总表 详细笔记][附:实训所有代码] 目   录 eclipse重置视图 MySQL数据库--建数据库.建数据库 s ...

  4. 在线车辆推荐网 Python语言+Django框架+Mysql数据库 基于用户、物品的协同过滤推荐算法 开发在线汽车推荐系统 二手车网站推荐系统 分布式大数据、机器学习、人工智能开发

    在线车辆推荐网 Python语言+Django框架+Mysql数据库 基于用户.物品的协同过滤推荐算法 开发在线汽车推荐系统 二手车网站推荐系统 分布式大数据.机器学习.人工智能开发 CarRecom ...

  5. ubuntu mysql怎么登录_Ubuntu MySQL 安装和用户登录

    Ubuntu MySQL 安装和用户登录,以root用户身份登录到数据库mysql之后之后,可以新建一个本地的用户jun,推出客户端之后,以jun进行 Ubuntu下安装MySQL 要安装 MySQL ...

  6. MySQL数据库管理员用户密码忘记了怎么办?

    MySQL数据库管理员用户密码忘记了怎么办? 前提 关闭数据库 启动数据库到维护模式 刷新授权表(加载授权表) 赋权,修改用户密码 关闭数据库重启验证密码 前提 MySQL 数据库 Linux 系统 ...

  7. mysql数据库出现无法登录(ERROR 1045 ),预防和解决及系列问题解决方法。

    mysql数据库出现无法登录(ERROR 1045 ),预防和解决及系列问题解决方法. 参考文章: (1)mysql数据库出现无法登录(ERROR 1045 ),预防和解决及系列问题解决方法. (2) ...

  8. Vue.js-Day09【项目实战(附带 完整项目源码)-day04:用户个人中心页面、用户登录页面、将项目打包部署到服务器上、项目汇报、实训心得】

    Vue.js实训[基础理论(5天)+项目实战(5天)]博客汇总表[详细笔记] 实战项目源码[链接:https://pan.baidu.com/s/1r0Mje3Xnh8x4F1HyG4aQTA   提 ...

  9. flutter 一个用户登录页面

    一个用户登录页面 输入校验 import 'package:flutter/material.dart'; import 'package:flutter/rendering.dart';void m ...

最新文章

  1. UVa712 S-Trees满二叉树
  2. python中new方法详解及_Python中new方法的详解
  3. IE的documentMode属性
  4. 数据结构--直接插入排序
  5. 24个可能你现在用不到,但应该了解的 PHP 库
  6. 汇编语言程序设计技巧详解(附例题)
  7. unity内部图集切割
  8. ADS1115 应用指导
  9. 计算机启动黑屏时间很长,win7开机黑屏时间长怎么办?win7开机黑屏很久解决办法...
  10. Keil报错:Libraries\CMSIS\stm32f10x.h(298): error: #67: expected a }
  11. python14-前端之CSS
  12. 红米9A成功root.9秒解锁BL MIUI12 root权限刷 Magisk面具 TWRP
  13. 区块链入门教程(6)--配置使用控制台
  14. hdfs清理回收站命令(参考)
  15. Word中表的自动断开、且断开处有空白页面的问题之解决
  16. cacti 监控mysql 无数据_cacti无图无数据等常见问题排查
  17. linux 第二十天 linuxprobe
  18. mel频谱--学习笔记
  19. vTK颜色渲染-vtkLookupTable
  20. 云服务器端口和防火墙端口配置

热门文章

  1. 安卓毕业设计选题基于Uniapp实现的Android的校园二手商品交易平台
  2. 密码学常用网站与解密脚本
  3. 热成像进入AI人工智能时代!精准人脸识别体温计,实名制测量体温
  4. 心理实验应用计算机的优缺点,发展心理学研究方法发展的新趋势
  5. 分辨率计算机英语,各种分辨率的英文缩写
  6. 【蓝桥杯单片机】第五章 一位LED的位移
  7. 视觉SLAM开源方案汇总及设备选型建议
  8. steam游戏开发_如何从Steam Cloud下载保存的游戏
  9. 新版阴阳师桌面版pc端固定窗口大小多开
  10. python之捕鱼问题