Python 开发实现登陆和注册模块

这篇具有很好参考价值的文章主要介绍了Python 开发实现登陆和注册模块。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Python 开发实现登陆和注册模块

一、案例介绍

本例设计一个用户登录和注册模块,使用Tkinter框架构建界面,主要用到画布、文本框、按钮等组件。涉及知识点:Python Tkinter界面编程、pickle数据存储。本例实现了基本的用户登录和注册互动界面,并提供用户信息存储和验证。

pickle是python语言的一个标准模块,安装python后已包含pickle库,不需要单独再安装。pickle模块实现了基本的数据序列化和反序列化。通过pickle模块的序列化操作能够将程序中运行的对象信息保存到文件中去,永久存储;通过pickle模块的反序列化操作,能够从文件中创建上一次程序保存的对象。

二、案例效果

运行启动欢迎界面

Python 开发实现登陆和注册模块,Python,python,数据库,服务器

提示注册界面

Python 开发实现登陆和注册模块,Python,python,数据库,服务器

注册界面

Python 开发实现登陆和注册模块,Python,python,数据库,服务器

其他功能实现界面欢迎大家尝试自己实现

三、案例代码

3.1 导入库文件

import tkinter as tk
import pickle
import tkinter.messagebox
from PIL import Image, ImageTk

3.2 设置欢迎界面

window = tk.Tk()  # 建立一个窗口
window.title('欢迎登录')
window.geometry('450x300')  # 窗口大小为300x200

# 画布
canvas = tk.Canvas(window, height=200, width=900)
# 加载图片
im = Image.open("注册&登陆_image/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('name@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)

3.3 设置登陆功能

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()

3.4 设置注册功能

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('name@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)

3.5 实现注册、登陆

# 创建注册和登录按钮
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()

总结

本例设计一个用户登录和注册模块,使用Tkinter框架构建界面,主要用到画布、文本框、按钮等组件。是一个比较综合的 python 基础开发案例,希望对你有所帮助。文章来源地址https://www.toymoban.com/news/detail-855732.html

到了这里,关于Python 开发实现登陆和注册模块的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Python:利用pymssql模块操作SQL server数据库

    python默认的数据库是 SQLlite,不过它对MySql以及SQL server的支持也可以。这篇文章,介绍下如何在Windows下安装pymssql库并进行连接使用。。。 环境:Windows_64位 版本:python3.6 一、简单介绍 pymssql是一个python的数据库接口,基于FreeTDS构建,对_mssql模块进行了封装,遵循python的DBAP

    2024年02月12日
    浏览(52)
  • Python数据库模块sqlite3操作实例(非常实用)

    当使用Python进行SQLite数据库操作时, sqlite3 模块是一个非常常用和强大的工具。它提供了一系列函数和方法,用于创建、连接、查询和管理数据库。下面是一些常见的用法示例:   sqlite-utils 、 sqlitebiter 和其他类似的库可以提供更高级的功能,包括预编译语句的执行优化和数

    2024年02月13日
    浏览(49)
  • Python数据库模块(sqlite3,SQLite3)

    创建数据库:在控制台sqlite3 name sqlite3.connect(database [,timeout ,other optional arguments]) 打开数据库;如果指数据库存在则返回一个连接对象,如果不存在则会创建一个数据库; connection.cursor() 创建一个cursor; cursor.execute(sql) 执行一个sql语句,该语句可以被参数化; connection.execut

    2024年03月19日
    浏览(61)
  • 在Python中利用内置SQLite3模块进行数据库操作的完整指南

      在Python中,使用SQLite非常方便,Python内置了 SQLite3 模块,无需额外安装。SQLite 是一个轻量级的嵌入式数据库,适用于小型项目和单用户应用。以下是一个简单的示例,演示如何在 Python 中使用 SQLite,并提供了常见的查询、增加、修改和删除功能。 首先,确保你的 Python 安装

    2024年02月03日
    浏览(63)
  • Python Socket联机自动匹配双人五子棋(含登录注册系统与界面,数据库连接,可作结课作业,可用于学习)

    致使用该程序的同志、朋友们:         本段代码存在重大问题,原有描述的局域网连接功能存在纰漏,无法实现多主机对局,但如果单一主机演示则可以正常使用。         关于此问题的修正方案,由于期末周较为繁忙,截止2023年12月25日尚无完整代码实现,对此某深表歉

    2024年02月07日
    浏览(60)
  • Python面向对象编程,实现模块化开发

    面向对象编程(Object Oriented Programming,OOP)是一种编程范式,它将真实世界中的事物抽象成程序中的对象,并通过对象之间的相互作用来完成程序的逻辑。 封装 (Encapsulation) 封装是指把数据和行为结合成一个相对独立的整体,防止程序中其他部分直接访问或修改这个整体,而

    2024年02月05日
    浏览(142)
  • 【数据库开发】DataX开发环境的安装部署(Python、Java)

    DataX是阿里云DataWorks数据集成的开源版本。下载即可用,支持linux和windows,只需要短短几步骤就可以完成数据的传输。 官网地址: https://github.com/alibaba/DataX DataX 是阿里云 DataWorks数据集成 的开源版本,在阿里巴巴集团内被广泛使用的离线数据同步工具/平台。DataX 实现了包括

    2024年02月02日
    浏览(50)
  • 【Python开发】FastAPI 10:SQL 数据库操作

    在 FastAPI 中使用 SQL 数据库可以使用多个 ORM 工具,例如 SQLAlchemy、Tortoise ORM 等,类似 Java 的 Mybatis 。这些 ORM 工具可以帮助我们方便地与关系型数据库进行交互,如 MySQL 、PostgreSQL等。本篇文章将介绍如何使用 SQLAlchemy 来完成数据库操作,以便让我们在 FastAPI 项目中方便地进

    2024年02月14日
    浏览(42)
  • 〖Python 数据库开发实战 - MongoDB篇⑧〗- MongoDB的数据结构

    订阅 Python全栈白宝书-零基础入门篇 可报销! 白嫖入口-请点击我。 推荐他人订阅,可获取扣除平台费用后的35%收益,文末名片加V! 说明:该文属于 Python全栈白宝书专栏, 免费阶段订阅数量4300+ , 购买任意白宝书体系化专栏可加入 TFS-CLUB 私域社区。 福利:加入社区的小伙

    2023年04月09日
    浏览(92)
  • Python Flask Web开发二:数据库创建和使用

    数据库在 Web 开发中起着至关重要的作用。它不仅提供了数据的持久化存储和管理功能,还支持数据的关联和连接,保证数据的一致性和安全性。通过合理地设计和使用数据库,开发人员可以构建强大、可靠的 Web 应用程序,满足用户的需求。这里介绍:SQLAlchemy 安装pymysql和

    2024年02月10日
    浏览(65)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包