Python+tkinter模拟“记住我”自动登录实例代码


Posted in Python onJanuary 16, 2018

本文分享的代码主要是通过Python+tkinter模拟“记住我”自动登录的功能,具体介绍如下。

基本思路:如果某次登录成功,则创建临时文件记录有关信息,每次启动程序时尝试自动获取上次登录成功的信息并自动编写。本文主要演示思路,可根据实际系统中的需要进行改写,例如读取数据库并验证用户名和密码是否正确、对用户名和密码进行本地加密存储等等。

import tkinter
import tkinter.messagebox
import os
import os.path
# 获取Windows平台临时文件夹
path = os.getenv('temp')
filename = os.path.join(path, 'info.txt')
# 创建应用程序窗口
root = tkinter.Tk()
# 在窗口上创建标签组件
labelName = tkinter.Label(root,text='User Name:',justify=tkinter.RIGHT,width=80)
labelName.place(x=10, y=5, width=80, height=20)
# 创建字符串变量和文本框组件,同时设置关联的变量
varName = tkinter.StringVar(root, value='')
entryName = tkinter.Entry(root,width=80,textvariable=varName)
entryName.place(x=100, y=5, width=80, height=20)
labelPwd = tkinter.Label(root,text='User Pwd:',justify=tkinter.RIGHT,width=80)
labelPwd.place(x=10, y=30, width=80, height=20)
# 创建密码文本框
varPwd = tkinter.StringVar(root, value='')
entryPwd = tkinter.Entry(root,show='*',width=80,textvariable=varPwd)
entryPwd.place(x=100, y=30, width=80, height=20)
# 尝试自动填写用户名和密码
try:
  with open(filename) as fp:
    n, p = fp.read().strip().split(',')
    varName.set(n)
    varPwd.set(p)
except:
  pass
# 登录按钮事件处理函数
def login():
  # 获取用户名和密码
  name = entryName.get()
  pwd = entryPwd.get()
  if name=='admin'and pwd=='123456':
    tkinter.messagebox.showinfo(title='恭喜',message='登录成功!')
    # 把登录成功的信息写入临时文件
    with open(filename, 'w') as fp:
      fp.write(','.join((name,pwd)))
  else:
    tkinter.messagebox.showerror('警告',message='用户名或密码错误')
    # 创建按钮组件,同时设置按钮事件处理函数
    buttonOk = tkinter.Button(root,
    text='Login',
    command=login)
    buttonOk.place(x=30, y=70, width=50, height=20)

# 取消按钮的事件处理函数
def cancel():
#清空用户输入的用户名和密码
  varName.set('')
  varPwd.set('')
  buttonCancel = tkinter.Button(root,
  text='Cancel',command=cancel)
  buttonCancel.place(x=90, y=70, width=50, height=20)
  #启动消息循环
root.mainloop()

演示结果:

Python+tkinter模拟“记住我”自动登录实例代码

总结

以上就是本文关于Python+tkinter模拟“记住我”自动登录实例代码的全部内容,希望对大家有所帮助。感兴趣的朋友可以继续参阅本站其他相关专题,如有不足之处,欢迎留言指出。感谢朋友们对本站的支持!

Python 相关文章推荐
今天 平安夜 Python 送你一顶圣诞帽 @微信官方
Dec 25 Python
Python使用Django实现博客系统完整版
Sep 29 Python
pycharm 将django中多个app放到同个文件夹apps的处理方法
May 30 Python
对Python生成汉字字库文字,以及转换为文字图片的实例详解
Jan 29 Python
Jupyter加载文件的实现方法
Apr 14 Python
Python验证码截取识别代码实例
May 16 Python
python怎么判断模块安装完成
Jun 19 Python
python使用QQ邮箱实现自动发送邮件
Jun 22 Python
django序列化时使用外键的真实值操作
Jul 15 Python
快速创建python 虚拟环境
Nov 28 Python
利用Python多线程实现图片下载器
Mar 25 Python
使用python绘制分组对比柱状图
Apr 21 Python
Python利用字典将两个通讯录文本合并为一个文本实例
Jan 16 #Python
Python爬虫爬取一个网页上的图片地址实例代码
Jan 16 #Python
Python+Turtle动态绘制一棵树实例分享
Jan 16 #Python
Python实现七彩蟒蛇绘制实例代码
Jan 16 #Python
答题辅助python代码实现
Jan 16 #Python
python实现百万答题自动百度搜索答案
Jan 16 #Python
Python数据结构之双向链表的定义与使用方法示例
Jan 16 #Python
You might like
基于Linux调试工具strace与gdb的常用命令总结
2013/06/03 PHP
PHP删除HTMl标签的实现代码
2013/06/30 PHP
phpmyadmin中禁止外网使用的方法
2014/11/04 PHP
Win10 下安装配置IIS + MySQL + nginx + php7.1.7
2017/08/04 PHP
JS获取鼠标相对位置的方法
2016/09/20 Javascript
Vue.js表单控件实践
2016/10/27 Javascript
layer弹出层框架alert与msg详解
2017/03/14 Javascript
Vue自定义事件(详解)
2017/08/19 Javascript
利用canvas中toDataURL()将图片转为dataURL(base64)的方法详解
2017/11/20 Javascript
js图数据结构处理 迪杰斯特拉算法代码实例
2019/09/11 Javascript
微信小程序实现列表的横向滑动方式
2020/07/15 Javascript
Python实现图片转字符画的示例代码
2017/08/21 Python
利用python将json数据转换为csv格式的方法
2018/03/22 Python
python3.6.3+opencv3.3.0实现动态人脸捕获
2018/05/25 Python
浅谈python编译pyc工程--导包问题解决
2019/03/20 Python
python3 property装饰器实现原理与用法示例
2019/05/15 Python
Pandas之Dropna滤除缺失数据的实现方法
2019/06/25 Python
python 机器学习之支持向量机非线性回归SVR模型
2019/06/26 Python
django框架使用方法详解
2019/07/18 Python
python的等深分箱实例
2019/11/22 Python
python开发实例之Python的Twisted框架中Deferred对象的详细用法与实例
2020/03/19 Python
Tensorflow tensor 数学运算和逻辑运算方式
2020/06/30 Python
Python Selenium模块安装使用教程详解
2020/07/09 Python
英国第二大营养品供应商:Vitabiotics
2016/10/01 全球购物
Kusmi茶美国官网:优质散叶茶和茶包
2019/10/13 全球购物
澳大利亚礼品篮网站:Macarthur Baskets
2019/10/14 全球购物
Currentbody德国站:健康与美容技术专家
2020/04/05 全球购物
C面试题
2015/10/08 面试题
2014年道德讲堂实施方案
2014/03/05 职场文书
保护母亲河倡议书
2014/04/14 职场文书
房屋产权共有协议书范本
2014/11/03 职场文书
公司中层管理培训心得体会
2016/01/11 职场文书
2016年小学教师政治学习心得体会
2016/01/23 职场文书
使用Navicat Premium工具将oracle数据库迁移到MySQL
2021/05/27 Oracle
windows11怎么查看wifi密码? win11查看wifi密码的技巧
2021/11/21 数码科技
Java存储没有重复元素的数组
2022/04/29 Java/Android