Python 登陆接口小程序V2
2016-09-02 23:44
459 查看
Python 登陆接口小程序V2
添加登陆时间,失败登陆时间
添加登陆时间,失败登陆时间
#!/usr/bin/python #_*_coding:utf-8 _*_ __author__ = 'gaogd' import MySQLdb as mysql import datetime class Authon(object): def __init__(self): self.db = mysql.connect(user="root", passwd="xxxx@2015", db="logintest", host="192.168.10.12") # 数据库连接信息 self.db.autocommit(True) self.cur = self.db.cursor() self.cur.execute('set names utf8') def strtodatetime(self, datestr, format): return datetime.datetime.strptime(datestr, format) def Login(self): #addtime = datetime.datetime.now().__format__("%Y-%m-%d %H:%M:%S") addtime = datetime.datetime.now() username = raw_input(u'请输入你的用户名:') err_count = 0 Flag = True while Flag: password = raw_input(u'请输入密码:') if username.strip() == '': print u'用户名不能为空!' ## select err_time from loginuser where user='xiaoming'; get_err_time_sql = "select err_time from loginuser where user='%s';" % username self.cur.execute(get_err_time_sql) get_err_time = self.cur.fetchall() #print '------',get_err_time[0][0] if get_err_time[0][0] == None : pass else: print 'get_err_time::' ,get_err_time[0][0] ,'=======',addtime err_time = get_err_time[0][0] diff_time = (addtime - err_time).seconds print 'diff_time::' ,diff_time if not diff_time >= 300 : Flag = False if Flag: # sql = select user,passwd from loginuser where user='gao3'and passwd='gao3'; select_user_passwd_sql = "select user,passwd from loginuser where user='%s'and passwd='%s';" % (username,password) self.cur.execute(select_user_passwd_sql) select_user_passwd = self.cur.fetchall() if len(select_user_passwd) == 0: print u'用户名或密码不正确!!' err_count += 1 if err_count == 3: print u'错误输入密码超过三次,程序自动退出!!' ##sql = update loginuser set err_time='2016-09-02 15:40:01' where user='gao1' ; update_err_sql = "update loginuser set err_time='%s' where user='%s' " %(addtime,username) self.cur.execute(update_err_sql) Flag = False else: err_count = 0 ##sql = update loginuser set login_time='2016-09-02 15:40:01' where user='gao1' ; update_login_sql = "update loginuser set login_time='%s' where user='%s' " %(addtime,username) self.cur.execute(update_login_sql) print u'欢迎您来%s到Python家族!!' % username return True else: print u'%s在5分钟登陆错误超过3次,请三十分钟后登陆!!' % username def Register(self): username = raw_input(u'请输入你要申请的用户名:') password_one = raw_input(u'请输入密码:') password_two = raw_input(u'请再次输入密码:') addtime = datetime.datetime.now() if username.strip() == '': print u'用户名不能为空!' if not username.isalnum(): print u'用户名不能包含特殊字符' return False if password_one.strip() == '': print u'密码不能为空!' return False if not password_one.strip() == password_two.strip(): print u'你两次输入的密码不一致' return False ## sql = insert into loginuser(user,passwd,err_count,time) values('gaogd','gaogd','0','2016-09-02 14:40:22'); create_user_sql = "insert into loginuser(user,passwd,create_time) values('%s','%s','%s')" % (username,password_one,addtime) try: print create_user_sql self.cur.execute(create_user_sql) except Exception as e: print e print u'创建用户失败!!' return False print u'创建用户成功:',username def Deleuser(self): username = raw_input(u'请输入你要删除的用户名:') password = raw_input(u'请输入密码:') if username.strip() == '': print u'用户名不能为空!' select_user_sql = "select user from loginuser;" self.cur.execute(select_user_sql) select_user = self.cur.fetchall() Flag = False for n in range(len(select_user)): if username == select_user [0]: Flag = True if Flag : #select passwd from loginuser where user='gao';v select_passwd_sql = "select passwd from loginuser where user='%s';" % username self.cur.execute(select_passwd_sql) select_passwd = self.cur.fetchall() if password.strip() == select_passwd[0][0].strip(): ##删除用户 ##DELETE FROM loginuser WHERE user='gao1'; select_deluser_sql = "DELETE FROM loginuser WHERE user='%s';" % username self.cur.execute(select_deluser_sql) print u'已经成功删除%s用户' % username else: print u'用户名或密码不正确!!' def SelectFunction(): content=u''' 1.登陆Python家族 2.注册用户 3.删除用户 ''' print content num = raw_input(u'请输入您的选择:') if num.strip() == '1': authon.Login() return True if num.strip() == '2': authon.Register() return True if num.strip() == '3': authon.Deleuser() return True print u'您的输入有误!!请输入您需要的功能对应的序号' if __name__ == "__main__": #pass authon = Authon() #authon.Register() #authon.Login() #authon.Deleuser() SelectFunction() """ 可以用版本1的数据进行修改: alter table loginuser add login_time datetime Null; alter table loginuser change time create_time datetime not Null; ALTER TABLE loginuser drop err_count; alter table loginuser add err_time datetime Null; 数据数据库以及对应的表 create database logintest ; use logintest; mysql> show create table loginuser \G; *************************** 1. row *************************** Table: loginuser Create Table: CREATE TABLE `loginuser` ( `user` varchar(64) NOT NULL, `passwd` varchar(128) DEFAULT NULL, `create_time` datetime NOT NULL, `login_time` datetime DEFAULT NULL, `err_time` datetime DEFAULT NULL, PRIMARY KEY (`user`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 1 row in set (0.00 sec) mysql> desc loginuser; +-------------+--------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +-------------+--------------+------+-----+---------+-------+ | user | varchar(64) | NO | PRI | NULL | | | passwd | varchar(128) | YES | | NULL | | | create_time | datetime | NO | | NULL | | | login_time | datetime | YES | | NULL | | | err_time | datetime | YES | | NULL | | +-------------+--------------+------+-----+---------+-------+ 5 rows in set (0.01 sec) mysql> 注册用户 登陆用户 删除用户 """ ''' datetime 时间转换: 字符串转换为时间 get_err_time='2016-09-02 22:51:44' err_time = datetime.datetime.strptime(str(get_err_time), '%Y-%m-%d %H:%M:%S') http://blog.sina.com.cn/s/blog_684ae1750101kkid.html '''
相关文章推荐
- Python动态类型的学习---引用的理解
- Python3写爬虫(四)多线程实现数据爬取
- 垃圾邮件过滤器 python简单实现
- 下载并遍历 names.txt 文件,输出长度最长的回文人名。
- install and upgrade scrapy
- Scrapy的架构介绍
- Centos6 编译安装Python
- 使用Python生成Excel格式的图片
- 让Python文件也可以当bat文件运行
- [Python]推算数独
- Python中zip()函数用法举例
- Python中map()函数浅析
- Python将excel导入到mysql中
- fastjson处理接口时的一个问题
- Python在CAM软件Genesis2000中的应用
- 使用Shiboken为C++和Qt库创建Python绑定
- FREEBASIC 编译可被python调用的dll函数示例