Python 实现简单的登录注册界面
Python 实现简单的登录注册界面
注意:编写代码之前需要导入很重要的包
import tkinter as tk
import pickle
from tkinter import messagebox
主要实现的功能
- 首先在python字典里定义一对值{'admin':'admin'}如果登录成功显示"How are you! admin"。
- 如果字典里没有一一对应的一对值{'Username':'Password'},则需要注册,紧接着再登录。
实现过程
登录界面
- 首先初始化一个window界面
window = tk.Tk()
window.title('Welcome to Mofan Python')
window.geometry('450x300')
.
.
.
window.mainloop()
- 界面需要一个欢迎的logo,主要使用画布实现
#welcome image
#创建一个200X500的画布
canvas = tk.Canvas(window,height = 200,width = 500)
#logo的路径
image_file = tk.PhotoImage(file = 'E:\\welcome.gif')
#什么位置插入logo图片
image = canvas.create_image(0,0,anchor = 'nw',image = image_file)
canvas.pack(side = 'top')
- 接下来主要是登录界面的代码实现
tk.Label(window,text = 'Username:').place(x = 50,y = 150)
tk.Label(window,text = 'Password:').place(x = 50,y = 190) var_usr_name = tk.StringVar()
#默认值为MrZhangxd@python.com
var_usr_name.set('MrZhangxd@python.com')
var_usr_pwd = tk.StringVar()
entry_usr_name = tk.Entry(window,textvariable = var_usr_name)
entry_usr_name.place(x = 160,y = 150) entry_usr_pwd = tk.Entry(window,textvariable = var_usr_pwd,show ='*')
entry_usr_pwd.place(x = 160,y = 190)
- 登录和注册按钮的实现代码
#Login and Sign up button
# command = usr_login 调用usr_login函数
btn_login = tk.Button(window,text = 'Login',command = usr_login)
btn_login.place(x = 170,y = 230)
btn_sign_up = tk.Button(window,text = 'Sign up',command = usr_sign_up)
btn_sign_up.place(x = 270,y = 230)
- 进行登录判断代码:主要用函数判断
#声明usr_login函数
def usr_login():
usr_name = var_usr_name.get()
usr_pwd = var_usr_pwd.get()
try:
with open('usrs_info,pickle','rb') as usr_file:
usrs_info = pickle.load(usr_file)
except FileNotFoundError:
with open('usrs_info','wb') as usr_file:
usrs_info = {'admin':'admin'}
pickle.dump(usrs_info,usr_file)
if usr_name in usrs_info:
if usr_pwd == usrs_info[usr_name]:
tk.messagebox.showinfo(title = 'Welcome',message = 'How are you?' + usr_name)
else:
tk.messagebox.showinfo(message = 'Error,your password is wrong,try again.')
else:
is_sign_up = tk.messagebox.askyesno('Welcome','You hava not sign up yet.Sign up today?') if is_sign_up:
usr_sign_up()
- 登录用户不存在需要注册
注册界面
差不多和登录界面一样,然后不进行细细的说明了,有不懂地方的可以给下文邮件地址发邮箱。
def usr_sign_up():
def sign_to_Mofan_Python():
np = new_pwd.get()
npf = new_pwd_confirm.get()
nn = new_name.get()
with open('usrs_info','rb') as usr_file:
exist_usr_info = pickle.load(usr_file)
if np!= npf:
tk.messagebox.showerror('Error','Password and confirm password must be the same!')
elif nn in exist_usr_info:
tk.messagebox.showerror('Error','The user has already signed up!')
else:
exist_usr_info[nn] = np
with open('usrs_info.pickle','wb') as usr_file:
pickle.dump(exist_usr_info,usr_file)
tk.messagebox.showinfo('Welcome','You have successfully signed up!')
window_sign_up.destroy()
window_sign_up = tk.Toplevel(window)
window_sign_up.geometry('350x200')
window_sign_up.title('Sign up window')
new_name = tk.StringVar()
new_name.set('MrZhangxd@python.com')
tk.Label(window_sign_up,text = 'Username:').place(x = 10,y = 10)
entry_new_name = tk.Entry(window_sign_up,textvariable = new_name)
entry_new_name.place(x = 150,y = 10)
new_pwd = tk.StringVar()
tk.Label(window_sign_up,text = 'Password:').place(x = 10,y = 50)
entry_new_pwd = tk.Entry(window_sign_up,textvariable = new_pwd,show = '*')
entry_new_pwd.place(x = 150,y = 50)
new_pwd_confirm = tk.StringVar()
tk.Label(window_sign_up,text = 'Confirm password:').place(x = 10,y = 90)
entry_comfirm_sign_up = tk.Entry(window_sign_up,textvariable = new_pwd_confirm,show = '*')
entry_comfirm_sign_up.place(x = 150,y = 90)
btn_comfirm_sign_up = tk.Button(window_sign_up,text = 'Sign up',command = sign_to_Mofan_Python)
btn_comfirm_sign_up.place(x = 150,y = 130)
运行界面截图
登录界面

注册界面

Python 实现简单的登录注册界面的更多相关文章
- HTML登录注册界面怎么制作?
在没有学习CSS样式的前提下,是如何做一个简单的注册界面的. 一.表单标签(form) 首先我们先写一个<form></form>的标签,form标签属于表单标签,通常我们的登 ...
- 使用Boostrap框架写一个登录\注册界面
Bootstrap是一个Web前端开发框架,使用它提供的css.js文件可以简单.方便地美化HTML控件.一般情况下,对控件的美化需要我们自己编写css代码,并通过标签选择器.类选择器.ID选择器为指 ...
- Angular之简单的登录注册
使用Angular实现了一个简单的登录注册的功能........ 涉及到的Angular知识点很少 主要是这个功能的实现...(*^__^*) 嘻嘻…… 里面涉及到的知识点记录: 1.本地存储的操作 ...
- amazeui-datatables(登录注册界面用到)
amazeui-datatables(登录注册界面用到) 一.总结 amazeui-datatables:DataTables 插件 Amaze UI 集成,只修改了样式和默认显示语言,其他参数同官方 ...
- swing 实现用户登录注册界面(不使用数据库)
swing 实现用户登录注册界面(不使用数据库) 实现的功能 先说一下具体实现的功能吧:用户注册后会将注册的对象存入内存中,登录时会遍历注册的对象列表,判断是否登录成功: 登录和注册界面: 本次实验分 ...
- 7. Swift 基于Xmpp和openfire实现一个简单的登录注册
1. 基本步骤:首先导入Xmpp框架,配置环境 ->由于我们使用的是OC的Xmpp框架,再进行Swift开发时需要进行桥接. 具体方法就是创建一个基于c的.h的头文件,然后将我们需要编译OC的语 ...
- 家庭记账本app实现登录注册界面以及仿微信操作界面(共4个实现一个)遇到了麻烦
今天学习了数据的创建,以及关于数据库的相关操作. 今天主要是实现了对于数据库的增加和查找. 具体的代码如下: 首先是数据库的创建: DBOpenMessage.java package com.exa ...
- PHP 链接数据库1(连接数据库&简单的登录注册)
对 解析变量的理解 数据库的名称和表的名称不能重复 从结果中取出的数据 都是以数组的形式取出的 1.PHP查询数据库中的某条信息 //PHP链接数据库 /*1.造链接对象 IP地址 用户名 密码 ...
- java web 简单的登录注册
--sql文件 create database studentgouse studentgocreate table stuinfo(--stuid int primary key identity( ...
随机推荐
- The server must be started under an unprivileged user ID to prevent
mysql8 PostgreSQL [root@test local]# postgres -D /usr/local/pgsql/data"root" execution of ...
- The JSP specification requires that an attribute name is preceded by whitespace--异常
异常信息:org.apache.jasper.JasperException: /pages/selectedCourse.jsp (line: 4, column: 39) The JSP spec ...
- html body div height: 100%;
最近做了测试 html{ height: 100%;//全部内容高度,包括滚动出现的内容 background-color:#000;} body{height: 100%;//只一页屏幕,用作滚动的 ...
- jquery特效(2)—选项卡
最近公司有个页面正好用到了选项卡,我就写了一下,感觉还不错,都挺简单的. 下面来看动态效果: 一.主体程序 <!DOCTYPE html> <html> <head> ...
- RBAC打造通用web管理权限
https://www.cnblogs.com/lamp01/p/6576432.html https://www.imooc.com/learn/799
- 有哪些逾渗模型percolation?
自wiki 1.第一个研究的模型是伯努利逾渗, 这个模型中所有键bond独立,物理学家称为键逾渗. 2.随机聚类模型,同Ising模型和Potts模型有很多联系 3.在完备图上的键逾渗,属于在随机图上 ...
- hdu 2671 shǎ崽 OrOrOrOrz(排序)
题意:排序后按题目要求输出 思路:排序 #include<iostream> #include<stdio.h> #include<algorithm> using ...
- MySQL丨分页查询
直奔主题 一.sql语句:select * from table limit startPageNum,everyPageNum 1)语句解析: table:你要查询的表 startPageNum:从 ...
- defaultdict & Counter
在使用python原生的数据结构dict的时候,如果d[key]这样的方式访问,当指定的key不存在时,会抛出keyError异常.但是如果使用defaultdict(导入collections),只 ...
- PIL数据和numpy数据的相互转换
在做图像处理的时候,自己常用的是将PIL的图片对象转换成为numpy的数组,同时也将numpy中的数组转换成为对应的图片对象. 这里考虑使用PIL来进行图像的一般处理. from PIL import ...