学会python——用python制作一个登录和注册窗口(python实例十八)
目录
1.认识Python
2.环境与工具
2.1 python环境
2.2 Visual Studio Code编译
3.登录和注册窗口
3.1 代码构思
3.2 代码实例
3.3 运行结果
4.总结
1.认识Python
Python 是一个高层次的结合了解释性、编译性、互动性和面向对象的脚本语言。
Python 的设计具有很强的可读性,相比其他语言经常使用英文关键字或标点符号,它具有比其他语言更有特色的语法结构。

2.环境与工具
2.1 python环境
在Windows上使用命令行窗口查看所安装的python版本
python --version

2.2 Visual Studio Code编译
Visual Studio Code是一款由微软开发且跨平台的免费源代码编辑器。该软件以扩展的方式支持语法高亮、代码自动补全、代码重构功能,并且内置了命令行工具和Git 版本控制系统。

3.登录和注册窗口
3.1 代码构思
通过定义五个函数,实现对磁盘文件的读和写、用户登录判断、注册信息判断、保存以及注册窗口界面的生成。
3.2 代码实例
import tkinter as tk
from tkinter import messagebox
import pickle
import os# 用pickle模块将字典变量进行序列转换并写入文件
def write_file(path, dic):with open(path, 'wb') as f:pickle.dump(dic, f)def read_file(path):with open(path, 'rb') as f:dic = pickle.load(f)return dic# 判断用户登录时录入的信息是否正确
def login():if os.path.exists('name.pickle'):userinfo = read_file('name.pickle')else:userinfo = {}name = txt_name.get()passwd = txt_passwd.get()if name in userinfo.keys():if userinfo[name] == passwd:messagebox.showinfo('登录成功', '欢迎您,' + name)else:messagebox.showerror('登录失败', '密码错误')txt_name.set('')txt_passwd.set('')e_name.focus()else:messagebox.showerror('登录失败', '用户名不存在')# 实现用户注册功能
def reg(regwin, path, name, passwd, passwd2):if passwd != passwd2:messagebox.showerror('注册失败', '两次输入的密码不一致')returnif os.path.exists(path):userinfo = read_file(path)else:userinfo = {}if name in userinfo.keys():messagebox.showerror('注册失败', '用户名已存在')returnelse:userinfo.update({name: passwd})write_file(path, userinfo)messagebox.showinfo('注册成功', '欢迎您,' + name)regwin.destroy()# 生成一个注册窗口界面
def create_regwindow():regwin = tk.Toplevel(win)regwin.title('注册')regwin.geometry('300x250')lb_name = tk.Label(regwin, text='用户名', bg='gainsboro', font=('arial', 12), height=1, width=10)lb_name.place(x=50, y=50)lb_passwd = tk.Label(regwin, text='密码', bg='gainsboro', font=('arial', 12), height=1, width=10)lb_passwd.place(x=50, y=100)lb_passwd2 = tk.Label(regwin, text='确认密码', bg='gainsboro', font=('arial', 12), height=1, width=10)lb_passwd2.place(x=50, y=150)txt_name = tk.StringVar()e_name = tk.Entry(regwin, textvariable=txt_name, font=('arial', 12), width=15)e_name.place(x=150, y=50, anchor='nw')txt_passwd = tk.StringVar()e_passwd = tk.Entry(regwin, textvariable=txt_passwd, font=('arial', 12), show='*')e_passwd.place(x=150, y=100, anchor='nw')txt_passwd2 = tk.StringVar()e_passwd2 = tk.Entry(regwin, textvariable=txt_passwd2, font=('arial', 12), show='*')e_passwd2.place(x=150, y=150, anchor='nw')# 生成一个注册按钮btn_reg = tk.Button(regwin, text='注册', bg='gainsboro', font=('arial', 12), height=1, width=10, command=lambda: reg(regwin, './part4/name.pickle', txt_name.get(), txt_passwd.get(), txt_passwd2.get()))btn_reg.place(x=100, y=200, anchor='nw')if __name__ == '__main__':win = tk.Tk()win.title('登录')win.geometry('300x200')win['background'] = 'gainsboro'lb_name = tk.Label(win, text='用户名', bg='gainsboro', font=('arial', 12), height=1, width=10)lb_name.place(x=50, y=50, anchor='nw')lb_passwd = tk.Label(win, text='密码', bg='gainsboro', font=('arial', 12), height=1, width=10)lb_passwd.place(x=50, y=100, anchor='nw')txt_name = tk.StringVar()e_name = tk.Entry(win, textvariable=txt_name, font=('arial', 12), width=15)e_name.place(x=150, y=50, anchor='nw')txt_passwd = tk.StringVar()e_passwd = tk.Entry(win, textvariable=txt_passwd, font=('arial', 12), show='*')e_passwd.place(x=150, y=100, anchor='nw')btn_log = tk.Button(win, text='登录', bg='gainsboro', font=('arial', 12), height=1, width=10, command=login)btn_log.place(x=50, y=150, anchor='nw')btn_reg = tk.Button(win, text='注册', bg='gainsboro', font=('arial', 12), height=1, width=10, command=create_regwindow)btn_reg.place(x=150, y=150, anchor='nw')win.mainloop()
3.3 运行结果
登录

注册(以用户名111,密码111为例)

登录成功

4.总结
通过定义函数实现可视化界面,通过利用python库实现信息的交互。
相关文章:
学会python——用python制作一个登录和注册窗口(python实例十八)
目录 1.认识Python 2.环境与工具 2.1 python环境 2.2 Visual Studio Code编译 3.登录和注册窗口 3.1 代码构思 3.2 代码实例 3.3 运行结果 4.总结 1.认识Python Python 是一个高层次的结合了解释性、编译性、互动性和面向对象的脚本语言。 Python 的设计具有很强的可读…...
Vue3+Element-plus的表单重置
作用:简化代码,重置表单数据 1.创建表单,绑定表单数据对象model,并且每一表单需要绑定prop <el-button type"primary" click"Formreset">重置</el-button> <el-form :inline"true" :model"fromModel" ref"form&q…...
pytorch中的contiguous()
官方文档:https://pytorch.org/docs/stable/generated/torch.Tensor.contiguous.html 其描述contiguous为: Returns a contiguous in memory tensor containing the same data as self tensor. If self tensor is already in the specified memory forma…...
Windows系统安装分布式搜索和分析引擎Elasticsearch与远程访问详细教程
文章目录 前言系统环境1. Windows 安装Elasticsearch2. 本地访问Elasticsearch3. Windows 安装 Cpolar4. 创建Elasticsearch公网访问地址5. 远程访问Elasticsearch6. 设置固定二级子域名 前言 本文主要介绍如何在Windows系统安装分布式搜索和分析引擎Elasticsearch,…...
界面材料知识
界面材料是用于填充芯片和散热器之间的空隙,将低导热系数的空气挤出,换成较高导热系数的材料,以提高芯片散热能力。参考下图 图片来源网上 热阻是衡量界面材料性能最终的参数,其中与热阻有关的有: 1、导热系数&#x…...
【Git】远程仓库操作
创建远程仓库 在官网进行注册登录:Gitee或Github 进入后点击新建仓库,默认选项创建即可 **仓库创建完成后可以看到SSH的仓库地址:gitgitee.com:username/test.git**或gitgithub.com:Toukensan/test.git 配置SSH公钥 在本地通过命令行创建…...
clonezilla(再生龙)克隆物理机linux系统,然后再去另一台电脑安装
前言: 总共需要2个u盘,一个装再生龙系统,一个是使用再生龙把硬盘备份到另一个盘里面,恢复的时候,先使用再生龙引导,然后再插上盘进行复制 1.制作启动u盘 1.1下载再生龙Clonezilla 下載 1.2下载UltraISO(https://cn.ultraiso.net/uiso9_cn.exe) 1.3 打开UltraISO,选择co…...
短视频电商源码的优势及软件架构解析
短视频电商源码是目前电商行业中非常火热的一个新兴领域,它通过短视频内容和电商商品的结合,为用户提供了一种新的购物体验。下面将介绍短视频电商源码的优势以及软件架构。 首先,短视频电商源码具有以下几个优势: 1、创新的购物体…...
Git使用[推送大于100M的文件后解救办法]
推送大于100M的文件后解救办法 本文摘录于:https://blog.csdn.net/u012150602/article/details/122687435只是做学习备份之用,绝无抄袭之意,有疑惑请联系本人! 当有文件大于100M的时候在提交的时候没有问题,但是在push的似乎就不行…...
RClone挂载有阿里云的AList
转自个人博客:https://www.jjy2023.cn/2024/05/23/rclone%e6%8c%82%e8%bd%bd%e6%9c%89%e9%98%bf%e9%87%8c%e4%ba%91%e7%9a%84alist-md/ RClone挂载一般的AList可以直接使用mount命令,但是阿里云需要使用指定头部Referer:https://www.aliyundrive.com/ &a…...
[ruby on rails]rails6.0升级6.1
1.准备工作 在开始升级过程之前,我们有一些建议的准备工作。 升级的时候,最好一个版本一个版本升级,比如6.0到6.1再到7.0,不要一次从6.0到7.0至少80%的测试覆盖率,测试真的很重要,能确保升级快速完成。本…...
大模型日报 2024-07-04
大模型日报 2024-07-04 一、大模型资讯 大厂高管转战 AI 创业盘点:超 25 人,覆盖全产业链,AI 应用最热门 涉及多家互联网大厂高管加入生成式 AI 创业,涵盖多个领域及融资情况。 腾讯云发布自研大数据高性能计算引擎 Meson 软硬一体…...
技术成神之路:设计模式(一)单例模式
在软件设计中,有时我们希望某个类的实例始终是唯一的,即无论在何处访问这个类,都能够得到同一个实例。单例模式(Singleton Pattern)就是为了解决这个问题而产生的。单例模式确保一个类只有一个实例,并提供一…...
四、(3)补充beautifulsoup、re正则表达式、标签解析
四、(3)补充beautifulsoup、re正则表达式、标签解析 beautifulsoupre正则表达式正则提取标签解析 beautifulsoup 补充关于解析的知识 还需要看爬虫课件 如何定位文本或者标签,是整个爬虫中非常重要的能力 无论find_all(ÿ…...
Vscode快捷键崩溃
Vscode快捷键崩溃 Linux虚拟机下使用vscode写代码【ctrlA,CtrlC,CtrlV】等快捷键都不能使用,还会出现“NO text insert“等抽象的指令,问题就是不知道什么时候装了一个VIM插件,让他滚出电脑》》》...
Spring Boot中的开发工具与插件推荐
Spring Boot中的开发工具与插件推荐 大家好,我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编,也是冬天不穿秋裤,天冷也要风度的程序猿!今天我们来聊聊Spring Boot中的开发工具与插件推荐。Spring Boot作为一种简…...
qt6 获取百度地图(一)
需求分析: 要获取一个地图, 需要ip 需要根据ip查询经纬度 根据经纬度查询地图 另外一条线是根据输入的地址 查询ip 根据查询到的ip查地图‘ 最后,要渲染地图 上面这这些动作,要进行http查询: 为此要有三个QNet…...
overlap的uORF对TE的抑制程度为什么显著高于non-overlap的uORF
在翻译调控中,上游开放阅读框(uORFs)对主开放阅读框(main ORF)的抑制效果有很大差异,尤其是重叠的uORFs(overlap uORFs)通常比非重叠的uORFs(non-overlap uORFsÿ…...
面向高精度导航定位领域的UM980RTK定位模块
UM980 是和芯星通自主研发的新一代 BDS/GPS/GLONASS/Galileo/QZSS 全系统全频高精度 RTK 定位模块,基于和芯星通自主研发的新一代射频基带及高精度算法一体化GNSS SoC 芯片—NebulasIV 设计。可同时跟踪 BDS, GPS, GLONASS, Galileo, QZSS, NavIC, SBAS, L-Band* 等…...
Nunchaku FLUX.1-dev实战:手把手教你用ComfyUI生成惊艳AI图片
Nunchaku FLUX.1-dev实战:手把手教你用ComfyUI生成惊艳AI图片 1. 环境准备与快速部署 1.1 硬件与软件要求 在开始之前,请确保你的系统满足以下基本要求: 显卡:NVIDIA显卡(推荐RTX 30/40系列,显存8GB&am…...
App 测试用例覆盖率提升检查清单
App 测试用例覆盖率提升检查清单 核心用途:核对现有测试用例,快速找出「需求、功能、非功能、移动端特有场景」的覆盖遗漏点,适配 App UI 自动化手动测试,兼顾 PO 模型、数据驱动、各类用例设计方法(等价类/边界值等&a…...
新手必看:在快马平台学习排列组合公式的代码实现
新手必看:在快马平台学习排列组合公式的代码实现 作为一个编程新手,当我第一次接触排列组合公式时,那些数学符号和递归逻辑让我一头雾水。直到在InsCode(快马)平台上找到了带详细注释的示例代码,才真正理解了Cn和An公式的实现原理…...
除了阿里云,还有哪些靠谱的身份证实名认证方案?SpringBoot整合横向评测
SpringBoot整合主流身份证实名认证API横向评测:从阿里云到多服务商技术选型指南 当你的应用需要接入身份证实名认证功能时,阿里云可能只是众多选项中的一个起点。作为技术决策者,如何在腾讯云、百度智能云、聚合数据等众多服务商中做出最优选…...
xiaomusic设备DID配置故障排除与优化指南
xiaomusic设备DID配置故障排除与优化指南 【免费下载链接】xiaomusic 使用小爱音箱播放音乐,音乐使用 yt-dlp 下载。 项目地址: https://gitcode.com/GitHub_Trending/xia/xiaomusic xiaomusic作为一款开源的小爱音响音乐服务工具,让用户能够通过…...
3步精通Path of Building PoE2:流放之路2玩家的角色规划零门槛指南
3步精通Path of Building PoE2:流放之路2玩家的角色规划零门槛指南 【免费下载链接】PathOfBuilding-PoE2 项目地址: https://gitcode.com/GitHub_Trending/pa/PathOfBuilding-PoE2 你是否曾在《流放之路2》中遭遇这样的困境:投入数十小时培养的…...
原创:第三篇(工程落地・首个抓手)电磁筑基:无线充电工程落地总案
第三篇(工程落地・首个抓手)电磁筑基:无线充电工程落地总案 作者:华夏之光永存 总摘要 当前人类电磁学应用仍处于婴孩阶段,现有电磁能量传输技术多局限于有线模式,存在传输损耗高、场景适配性差、灵活性不足…...
构建专业级Java量化交易系统的5个实战步骤
构建专业级Java量化交易系统的5个实战步骤 【免费下载链接】ta4j A Java library for technical analysis. 项目地址: https://gitcode.com/gh_mirrors/ta/ta4j 你是否曾想用Java构建自己的量化交易系统,但被复杂的技术指标和回测框架吓退?今天&a…...
3个突破限制步骤:res-downloader让网络资源获取变得无拘无束
3个突破限制步骤:res-downloader让网络资源获取变得无拘无束 【免费下载链接】res-downloader 视频号、小程序、抖音、快手、小红书、直播流、m3u8、酷狗、QQ音乐等常见网络资源下载! 项目地址: https://gitcode.com/GitHub_Trending/re/res-downloader 在数…...
驱动残留清理技术解析:Display Driver Uninstaller实战指南
驱动残留清理技术解析:Display Driver Uninstaller实战指南 【免费下载链接】display-drivers-uninstaller Display Driver Uninstaller (DDU) a driver removal utility / cleaner utility 项目地址: https://gitcode.com/gh_mirrors/di/display-drivers-uninsta…...
