import tkinter as tk
from tkinter import messagebox
import pymysql class SignIn(object):
def __init__(self, root):
self.root = root
self.name = None
self.password = None def the_Window(self, ): tk.Label(self.root, text=u"用户名(*):").grid(row=1, column=1, sticky='W')
tk.Label(self.root, text=u"密码(*):").grid(row=2, column=1, sticky='W')
self.name = tk.Entry(self.root)
self.name.grid(row=1, column=2, sticky='W')
self.password = tk.Entry(self.root, show="*")
self.password.grid(row=2, column=2, sticky='W')
tk.Button(self.root, text=u"登录", command=self.Login).grid(row=3, column=1, sticky='W')
tk.Button(self.root, text=u"注册", command=self.Register).grid(row=3, column=2, sticky='W')
tk.Label(self.root, text=u"(用户名只能出现字母,数字和下划线,不少于6位.)").grid(row=1, column=3, sticky='W')
tk.Label(self.root, text=u"(密码只能出现字母,数字和下划线,不少于12位.)").grid(row=2, column=3, sticky='W') def Login(self):
x = self.name.get()
y = self.password.get() if len(x) == 0 or len(y) == 0:
return
conn = pymysql.Connect('localhost','root','','test',3306) sql_select = "select * from test_db"
cur = conn.cursor()
try:
print(sql_select)
cur.execute(sql_select)
print(cur) rs = cur.fetchall()
print(rs) for r in rs:
if r[0] == x and r[1] == y:
messagebox.showinfo(title=u"登录成功", message=u"登录成功")
return
elif r[0] == x and r[1] != y:
messagebox.showerror(title=u"错误信息", message=u"密码错误")
messagebox.showerror(title=u"error", message=u"当前用户不存在") except Exception as e:
print(e) finally:
cur.close()
conn.close() def Register(self):
x = self.name.get()
y = self.password.get()
if len(x) == 0 or len(y) == 0:
return
self.name.delete(0)
self.password.delete(0)
# print x, y
conn = pymysql.Connect('localhost','root','','test',3306)
sql_select = "select username from test_db"
sql_insert = 'insert test_db(username,password) values("%s", "%s")' % (x, y)
cur = conn.cursor()
try:
cur.execute(sql_select)
rs = cur.fetchall()
flag = 0
for r in rs:
if r[0] == x:
flag = 1
messagebox.showinfo(title=u"用户名错误", message=u"当前用户名存在,请修改")
break
if flag == 0:
cur.execute(sql_insert)
print(u"插入成功") conn.commit() except Exception as e:
conn.rollback()
print(e)
finally:
cur.close()
conn.close() if __name__ == "__main__":
root = tk.Tk()
sign = SignIn(root)
sign.the_Window() root.mainloop()

Tkinter & mysql 的登录框练习的更多相关文章

  1. 练习:python 操作Mysql 实现登录验证 用户权限管理

    python 操作Mysql 实现登录验证 用户权限管理

  2. 4.羽翼sqlmap学习笔记之Post登录框注入

    4.Sqlmap系列教程——post登录框注入注入点: http://xxx.xxx.com/Login.asp 注入方式一: 1.对着注入点使用burp抓包,保存txt格式文件. 2.输入命令: . ...

  3. Discuz! X2.5判断会员登录状态及外部调用注册登录框

    Discuz! X2.5判断会员登录状态及外部调用注册登录框 有关discuz论坛会员信息,收集的一些资料: 用dedecms+discuz做了个门户加论坛形式的网站,但是dedecms顶部目前只能q ...

  4. MySQL 1045登录失败

    当你登录MySQL数据库出现:Error 1045错误时(如下图),就表明你输入的用户名或密码错误被拒绝访问了,最简单的解决方法就是将MySQL数据库卸载然后重装,但这样的缺点就是就以前的数据库中的信 ...

  5. Sqli-LABS通关笔录-11[sql注入之万能密码以及登录框报错注入]

    在这一关卡我学到了 1.万能密码的构造,大概的去揣测正常的SQL语句是如何的. 2. 3. 00x1 SQL万能密码的构造 在登录框当中可以添加了一个单引号.报错信息如下所示: 据此报错,我们大概的可 ...

  6. javascript实例学习之三——类新浪微博的登录框

    该登录框和百度的搜索框类似,可以实现如下效果: 1.文字输入时自动弹出提示层 2,提示层根据输入文字进行自动过滤 3,提示层可以使用上下按键进行选择 4,提示层可以点击或者回车来确认输入 微博登录框h ...

  7. pyQt 每日一练习 -- 登录框

    #coding=utf-8 #第一个练习,登录框 import sys from PyQt4 import QtGui,QtCore #登录框 class LoginBox(QtGui.QWidget ...

  8. mysql计算连续天数,mysql连续登录天数,连续天数统计

    mysql计算连续天数,mysql连续登录天数,连续天数统计 >>>>>>>>>>>>>>>>>& ...

  9. phpmyadmin 4.x 版本无法看到登录框的处理

    由于个人dreamhost即将到期问题,购买了一台VPS. 配置了一个CentOS 6.4 Linux 服务器,用Nginx+php-fpm搭建的环境. 这些都是废话,下面是重点: 当搭建后配置php ...

随机推荐

  1. C博客作业01--分支丶顺序结构

    1.本章学习总结 1.1学习内容总结 分支结构 if else-if语句与switch语句都具有选择判断的功能,但是在使用时又有所区别,按题目的不同要求与题意选择不同语句. if else-if语句表 ...

  2. OpenFOAM——三角腔驱流

    本算例来自<ANSYS Fluid Dynamics Verification Manual>中的VMFL011: Laminar Flow in a Triangular Cavity ...

  3. 273道题目;更新到java题目里面 (已迁移到其他类目下面,存储)

    1. Java 基础 1.JDK 和 JRE 有什么区别? 2. == 和 equals 的区别是什么? 3. 两个对象的 hashCode() 相同,则 equals() 也一定为 true,对吗? ...

  4. jeff dean的主页

    https://ai.google/research/people/jeff/ 上面有他的很多论文和ppt 很不错 我于1999年中期加入Google,目前是研究小组的Google高级研究员,负责Go ...

  5. Centos7安装golang

    标准官网:https://golang.org/ 需要墙 镜像官网:https://golang.google.cn/dl/ [国内推荐] 1.下载文件 # wget https://dl.googl ...

  6. Mac下 python2和python3共存

    一般是python2默认安装了,python3没有安装,这时候一般使用命令:brew install python3 进行安装 不同方法安装python的路径是不一样的,如下所示: 接下来就要看具体步 ...

  7. ISO/IEC 9899:2011 条款6.10.3——宏替换

    6.10.3 宏替换 约束 1.两个替换列表是相同的,当且仅当两个替换列表中的预处理符记都具有相同的数.次序.拼写,以及空白分隔符,这里所有的空白分隔符都认为是相同的. 2.当前被定义为一个类似对象的 ...

  8. 暚光科技定位系统数据解析-java

    暚光科技定位系统数据解析-java package com.ygkj.test; import java.io.DataInputStream; import java.io.IOException; ...

  9. 【前端】input输入框只能输入大于等于0的正数

    大于等于0的正数,允许小数 <input type="number" step="1" min="0" onkeyup="t ...

  10. aardio 文档

    aardio 文档 根据官方帮助手册制作了一份文档,添加了一些特性. 支持手机阅读 不用电脑也可以学习 aau 了,不受屏幕大小限制,你的小清新还是你的小清新~ 简单的搜索功能 快捷复制示例代码 基于 ...