Tkinter & mysql 的登录框练习
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 的登录框练习的更多相关文章
- 练习:python 操作Mysql 实现登录验证 用户权限管理
python 操作Mysql 实现登录验证 用户权限管理
- 4.羽翼sqlmap学习笔记之Post登录框注入
4.Sqlmap系列教程——post登录框注入注入点: http://xxx.xxx.com/Login.asp 注入方式一: 1.对着注入点使用burp抓包,保存txt格式文件. 2.输入命令: . ...
- Discuz! X2.5判断会员登录状态及外部调用注册登录框
Discuz! X2.5判断会员登录状态及外部调用注册登录框 有关discuz论坛会员信息,收集的一些资料: 用dedecms+discuz做了个门户加论坛形式的网站,但是dedecms顶部目前只能q ...
- MySQL 1045登录失败
当你登录MySQL数据库出现:Error 1045错误时(如下图),就表明你输入的用户名或密码错误被拒绝访问了,最简单的解决方法就是将MySQL数据库卸载然后重装,但这样的缺点就是就以前的数据库中的信 ...
- Sqli-LABS通关笔录-11[sql注入之万能密码以及登录框报错注入]
在这一关卡我学到了 1.万能密码的构造,大概的去揣测正常的SQL语句是如何的. 2. 3. 00x1 SQL万能密码的构造 在登录框当中可以添加了一个单引号.报错信息如下所示: 据此报错,我们大概的可 ...
- javascript实例学习之三——类新浪微博的登录框
该登录框和百度的搜索框类似,可以实现如下效果: 1.文字输入时自动弹出提示层 2,提示层根据输入文字进行自动过滤 3,提示层可以使用上下按键进行选择 4,提示层可以点击或者回车来确认输入 微博登录框h ...
- pyQt 每日一练习 -- 登录框
#coding=utf-8 #第一个练习,登录框 import sys from PyQt4 import QtGui,QtCore #登录框 class LoginBox(QtGui.QWidget ...
- mysql计算连续天数,mysql连续登录天数,连续天数统计
mysql计算连续天数,mysql连续登录天数,连续天数统计 >>>>>>>>>>>>>>>>>& ...
- phpmyadmin 4.x 版本无法看到登录框的处理
由于个人dreamhost即将到期问题,购买了一台VPS. 配置了一个CentOS 6.4 Linux 服务器,用Nginx+php-fpm搭建的环境. 这些都是废话,下面是重点: 当搭建后配置php ...
随机推荐
- C博客作业01--分支丶顺序结构
1.本章学习总结 1.1学习内容总结 分支结构 if else-if语句与switch语句都具有选择判断的功能,但是在使用时又有所区别,按题目的不同要求与题意选择不同语句. if else-if语句表 ...
- OpenFOAM——三角腔驱流
本算例来自<ANSYS Fluid Dynamics Verification Manual>中的VMFL011: Laminar Flow in a Triangular Cavity ...
- 273道题目;更新到java题目里面 (已迁移到其他类目下面,存储)
1. Java 基础 1.JDK 和 JRE 有什么区别? 2. == 和 equals 的区别是什么? 3. 两个对象的 hashCode() 相同,则 equals() 也一定为 true,对吗? ...
- jeff dean的主页
https://ai.google/research/people/jeff/ 上面有他的很多论文和ppt 很不错 我于1999年中期加入Google,目前是研究小组的Google高级研究员,负责Go ...
- Centos7安装golang
标准官网:https://golang.org/ 需要墙 镜像官网:https://golang.google.cn/dl/ [国内推荐] 1.下载文件 # wget https://dl.googl ...
- Mac下 python2和python3共存
一般是python2默认安装了,python3没有安装,这时候一般使用命令:brew install python3 进行安装 不同方法安装python的路径是不一样的,如下所示: 接下来就要看具体步 ...
- ISO/IEC 9899:2011 条款6.10.3——宏替换
6.10.3 宏替换 约束 1.两个替换列表是相同的,当且仅当两个替换列表中的预处理符记都具有相同的数.次序.拼写,以及空白分隔符,这里所有的空白分隔符都认为是相同的. 2.当前被定义为一个类似对象的 ...
- 暚光科技定位系统数据解析-java
暚光科技定位系统数据解析-java package com.ygkj.test; import java.io.DataInputStream; import java.io.IOException; ...
- 【前端】input输入框只能输入大于等于0的正数
大于等于0的正数,允许小数 <input type="number" step="1" min="0" onkeyup="t ...
- aardio 文档
aardio 文档 根据官方帮助手册制作了一份文档,添加了一些特性. 支持手机阅读 不用电脑也可以学习 aau 了,不受屏幕大小限制,你的小清新还是你的小清新~ 简单的搜索功能 快捷复制示例代码 基于 ...