python实现登录与注册功能

本文实例为大家分享了python实现登录与注册的具体代码,供大家参考,具体内容如下

1. 案例介绍

本例设计一个用户登录和注册模块,使用 Tkinter 框架构建界面,主要用到画布、文本框、按钮等组件。涉及知识点:Python Tkinter 界面编程、pickle 数据存储。本例实现了基本的用户登录和注册互动界面,并提供用户信息存储和验证。pickle 是 python 语言的一个标准模块,安装 python 后已包含 pickle 库,不需要单独再安装。pickle 模块实现了基本的数据序列化和反序列化。通过 pickle 模块的序列化操作能够将程序中运行的对象信息保存到文件中去,永久存储;通过 pickle 模块的反序列化操作,能够从文件中创建上一次程序保存的对象。本例难度为中级,适合具有 Python 基础和 Tkinter 组件编程知识的用户学习。

2. 示例效果

3. 示例源码

import tkinter as tk
import pickle
import tkinter.messagebox
from PIL import Image, ImageTk
 
# 设置窗口---最开始的母体窗口
window = tk.Tk()  # 建立一个窗口
window.title('欢迎登录')
window.geometry('450x300')  # 窗口大小为300x200
 
# 画布
canvas = tk.Canvas(window, height=200, width=900)
# 加载图片
im = Image.open("images/01.png")
image_file = ImageTk.PhotoImage(im)
# image_file = tk.PhotoImage(file='images/01.gif')
image = canvas.create_image(100, 40, anchor='nw', image=image_file)
canvas.pack(side='top')
 
# 两个文字标签,用户名和密码两个部分
tk.Label(window, text='用户名').place(x=100, y=150)
tk.Label(window, text='密  码').place(x=100, y=190)
 
var_usr_name = tk.StringVar()  # 讲文本框的内容,定义为字符串类型
var_usr_name.set('amoxiang@163.com')  # 设置默认值
var_usr_pwd = tk.StringVar()
 
# 第一个输入框-用来输入用户名的。
# textvariable 获取文本框的内容
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)
 
 
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.pickle', '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='欢迎光临', message=usr_name + ':请进入个人首页,查看最新资讯')
        else:
            tk.messagebox.showinfo(message='错误提示:密码不对,请重试')
    else:
        is_sign_up = tk.messagebox.askyesno('提示', '你还没有注册,请先注册')
        print(is_sign_up)
        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.pickle', 'rb') as usr_file:
            exist_usr_info = pickle.load(usr_file)
            if np != npf:
                tk.messagebox.showerror('错误提示', '密码和确认密码必须一样')
            elif nn in exist_usr_info:
                tk.messagebox.showerror('错误提示', '用户名早就注册了!')
            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('欢迎', '你已经成功注册了')
                window_sign_up.destroy()
 
    # 点击注册之后,会弹出这个窗口界面。
    window_sign_up = tk.Toplevel(window)
    window_sign_up.title('欢迎注册')
    window_sign_up.geometry('360x200')  # 中间是x,而不是*号
 
    # 用户名框--这里输入用户名框。
    new_name = tk.StringVar()
    new_name.set('amoxiang@163.com')  # 设置的是默认值
    tk.Label(window_sign_up, text='用户名').place(x=10, y=10)
    entry_new_name = tk.Entry(window_sign_up, textvariable=new_name)
    entry_new_name.place(x=100, y=10)
 
    # 新密码框--这里输入注册时候的密码
    new_pwd = tk.StringVar()
    tk.Label(window_sign_up, text='密  码').place(x=10, y=50)
    entry_usr_pwd = tk.Entry(window_sign_up, textvariable=new_pwd, show='*')
    entry_usr_pwd.place(x=100, y=50)
 
    # 密码确认框
    new_pwd_confirm = tk.StringVar()
    tk.Label(window_sign_up, text='确认密码').place(x=10, y=90)
    entry_usr_pwd_confirm = tk.Entry(
        window_sign_up, textvariable=new_pwd_confirm, show='*')
    entry_usr_pwd_confirm.place(x=100, y=90)
 
    btn_confirm_sign_up = tk.Button(
        window_sign_up, text=' 注  册 ', command=sign_to_Mofan_Python)
    btn_confirm_sign_up.place(x=120, y=130)
 
 
# 创建注册和登录按钮
btn_login = tk.Button(window, text=' 登  录 ', command=usr_login)
btn_login.place(x=150, y=230)  # 用place来处理按钮的位置信息。
btn_sign_up = tk.Button(window, text=' 注  册 ', command=usr_sign_up)
btn_sign_up.place(x=250, y=230)
 
window.mainloop()

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • Python +Selenium解决图片验证码登录或注册问题(推荐)

    1. 解决思路 首先要获得这张验证码的图片,但是该图片一般都是用的js写的,不能够通过url进行下载. 解决方案:截图然后根据该图片的定位和长高,使用工具进行裁剪 裁剪完毕之后,使用工具解析该图片. 2. 代码实现 2.1 裁剪出验证码图片 裁剪图片需要使用 Pillow 库,进入pip包路径后输入安装命令pip install Pillow: 之前安装的时候忘记了截图,只能够截一张安装后的图片了 ╰(:з╰∠)_ 安装完成后,代码实现方式如下: #coding=utf-8 from selen

  • Python3 Tkinkter + SQLite实现登录和注册界面

    本文实例为大家分享了Python3 Tkinkter + SQLite 实现登录和注册界面,供大家参考,具体内容如下 Ubuntu14 + Python3.4 + Pycharm2018 一.设计数据库 数据库内容(login.db):用户名,密码,邮箱,密码错误次数(达到三次时锁定) create table loginuser ( username varchar(30) NOT NULL PRIMARY KEY , password varchar(16) NOT NULL , email

  • python应用文件读取与登录注册功能

    python应用文件读取与登录注册功能,具体实现代码如下所示: #!/usr/bin/python3 # -*- coding: utf-8 -*- # Author: zhw #读取文件中的内容 def open_file(filename ,file_type , *args): #读取文件中的数据 if file_type == 'r': flie_list = [] with open(filename,file_type) as sub_all: for file_line in su

  • Python登录注册验证功能实现

    简介 本次项目登录注册验证是对之前学习知识点的加深学习,这次项目的练习的知识点有函数.判断语句.循环语句.文件操作等. 项目流程 运行代码之后,输出登录或者注册选项. 当选择登录之后,输入用户名密码,如果该用户信息没有注册过,就输出登录失败,如果该用户信息已经注册过,就显示登录成功. 当选择注册之后,输入用户名密码,如果该用户信息没有注册过,就输出注册成功,如果该用户信息已经注册过,就显示用户名已经存在,注册失败. 代码流程 运行代之后首先执行main()函数,mian()函数中接收用户输入的用

  • 用Python实现web端用户登录和注册功能的教程

    用户管理是绝大部分Web网站都需要解决的问题.用户管理涉及到用户注册和登录. 用户注册相对简单,我们可以先通过API把用户注册这个功能实现了: _RE_MD5 = re.compile(r'^[0-9a-f]{32}$') @api @post('/api/users') def register_user(): i = ctx.request.input(name='', email='', password='') name = i.name.strip() email = i.email.

  • python实现登录与注册系统

    本文实例为大家分享了python实现登录与注册系统的具体代码,供大家参考,具体内容如下 实现功能 1.调用文本文件里的用户信息 2.可以将注册信息存储在文本文件里 3.实现了密码格式的限制 具体用户信息将如下格式存储在txt文本文件下 转换后便于代码利用的格式(列表中嵌套字典) 具体代码如下: #-*- coding=utf8 -*- # @author:sololi # date: 2020/11/3 # 文件说明 : import sys def register(username,pass

  • Python实现注册登录系统

    表单在网页中主要负责数据采集功能.一个表单有三个基本组成部分: 表单标签:这里面包含了处理表单数据所用CGI程序的URL以及数据提交到服务器的方法. 表单域:包含了文本框.密码框.隐藏域.多行文本框.复选框.单选框.下拉选择框和文件上传框等. 表单按钮:包括提交按钮.复位按钮和一般按钮:用于将数据传送到服务器上的CGI脚本或者取消输入,还可以用表单按钮来控制其他定义了处理脚本的处理工作.而在HTML里面,在地址栏输入一个URL然后打开,这样发送的是一个get请求,若是要使用POST请求,就需要使

  • Python制作简易注册登录系统

    这次我主要讲解如何用Python基于Flask的登录和注册,验证方式采用Basic Auth 主要用以下库 import os #Flask的基础库 from flask import Flask, abort, request, jsonify, g, url_for #Flaks的数据库操作的库 from flask.ext.sqlalchemy import SQLAlchemy #Flask登录注册的库 from flask.ext.httpauth import HTTPBasicAu

  • Python + Tkinter连接本地MySQL数据库简单实现注册登录

    项目结构: 源代码: # -*- coding: utf-8 -*- """ @date:  2022/01/09 17:40 @author: Anker @python:v3.10 """   import tkinter as tk import tkinter.messagebox import pymysql   # 定义要执行的创建表的SQL语句 test_sql = """              

  • Python实现注册、登录小程序功能

    主要实现功能 1.用户输入用户名,在用户名文件中查找对应的用户,若无对应用户名则打印输入错误 2.用户名输入正确后,进行密码匹配.输入密码正确则登录成功,否则重新输入. 3.连续输错三次密码则该用户名被锁,退出程序 -------------------------------------------------- 在程序文件夹下建立一个用户名.密码的文件 :user_np.txt和一个用于存放被锁用户名的文件:lock.txt ---------------------------------

随机推荐