当前位置: 首页>編程日記>正文

python编程实战(一):用户登录模块,用户注册、登录、信息管理、功能设计与实现!

python编程实战(一):用户登录模块,用户注册、登录、信息管理、功能设计与实现!

用户登录模块

    • 前言&思维导图
    • 1.判断首次启动
    • 2.用户注册
    • 3、管理员信息&登录
    • 4.用户登录
    • 5.完整代码

前言&思维导图

用户登录模块是最基本的模块之一,主要设计的有当前用户存在判断,用户注册,用户登录名和密码的保存,用户信息输出等等;

在这里插入图片描述

1.判断首次启动

通过判断flag.txt是否存在,判断是不是首次启动;

这是一种简单而常见的手法,常在程序初始化的时候会有这样的需求。

判断一个特定文件存在与否,或者判断配置文件的值是否改变;

就能够判断出来当前是不是首次启动,是的话,初始化程序,不是则不变等等

(这是后续了,根据需求来,记住这个小方法即可!)

这里是判断flag.txt是否存在

2.用户注册

用户信息单独文件保存

# 用户注册 用户信息单独文件保存
def user_register():user_id = input('输入账户id:')user_pwd = input('输入用户密码:')user_name = input('输入用户昵称:')user = {'u_id': user_id, 'u_pwd': user_pwd, 'u_name': user_name}user_path = "./users/" + user_id # 新建文件夹保存信息file_user = open(user_path, 'w')  file_user.write(str(user))  file_user.close()  

在文件中保存的信息如下:
在这里插入图片描述

3、管理员信息&登录

管理员身份是写死的 名称 root 密码 123456

身份信息同样是新建一个文件,保存
在这里插入图片描述

# 初始化管理员
def init():if os.path.exists('users') == False:file = open('u_root.txt', 'w') root = {'rnum': 'root', 'rpwd': "123456"}file.write(str(root)) file.close()  os.mkdir('users')  

管理员登录;

# 管理员登陆
def root_login():while True:print('****管理员登陆****')root_number = input('请输入管理员账户名:')root_password = input('请输入管理员密码:')file_root = open('u_root.txt', 'r')  # 只读打开文件root = eval(file_root.read())  # 读取账户信息if root_number == root['rnum'] and root_password == root['rpwd']:print('管理员登陆成功!')breakelse:print('很遗憾!验证失败')

4.用户登录

选择是注册还是登录;

注册和 上述2 一样

登录和管理员登录类似,匹配信息就好了

# 普通用户登录
def user_login():while True:print('****普通用户登录****')user_id = input('请输入账户名')user_pwd = input('请输入密码:')user_list = os.listdir('./users')  # 遍历元组,判断user_id是否在元组中flag = 0for user in user_list:if user == user_id:flag = 1print('登录中····')# 打开文件file_name = './users/' + user_idfile_user = open(file_name)# 获取文件内容user_info = eval(file_user.read())if user_pwd == user_info['u_pwd']:print('登录成功!')# 此处根据需求,可以跳转到登陆成功之后的操作breakif flag == 1:breakelif flag == 0:print('您并没有注册!请您先注册用户')break

在这里插入图片描述

users文件夹下,就会新增 qqqqqq 用户的信息了!
在这里插入图片描述

在这里插入图片描述

5.完整代码

# 文件存储管理信息
import os# 判断是否首次使用系统
def is_first_use():if os.path.exists('flag.txt') == False:print('首次启动')flag = open('flag.txt', 'w+')flag.write('1')flag.close()  # 关闭文件init()  # 初始化资源print_login_menu()  # 打印登录菜单user_select()  # 选择用户else:flag = open('flag.txt', 'r')word = flag.read()if len(word) == 1:init()  # 初始化资源print_login_menu()  # 打印登录菜单user_select()  # 选择用户# 初始化管理员
def init():if os.path.exists('users') == False:file = open('u_root.txt', 'w')  # 创建并打开管理员账户文件root = {'rnum': 'root', 'rpwd': "123456"}file.write(str(root))  # 写入管理员信息file.close()  # 关闭管理员账户文件os.mkdir('users')  # 创建普通用户文件夹# 打印登录菜单
def print_login_menu():print('----用户登录----')print('1-管理员登陆')print('2-普通用户登陆')print('--------------')print('请选择您的登陆身份')# 用户选择
def user_select():while True:user_type_select = input('请选择用户类型')if user_type_select == '1':  # 管理员登陆验证root_login()breakelif user_type_select == '2':  # 普通用户while True:select = input('是否需要注册?(y/n):')if select == 'y' or select == 'Y':print('----用户注册----')user_register()  # 用户注册breakelif select == 'n' or select == 'N':print('----用户登录----')breakelse:print('输入有误,请重新选择')user_login()  # 用户登录breakelse:print('输入有误,请重新选择')# 管理员登陆
def root_login():while True:print('****管理员登陆****')root_number = input('请输入管理员账户名:')root_password = input('请输入管理员密码:')file_root = open('u_root.txt', 'r')  # 只读打开文件root = eval(file_root.read())  # 读取账户信息# 信息匹配if root_number == root['rnum'] and root_password == root['rpwd']:print('管理员登陆成功!')breakelse:print('很遗憾!验证失败')# 用户注册 用户信息单独文件保存
def user_register():user_id = input('输入账户id:')user_pwd = input('输入用户密码:')user_name = input('输入用户昵称:')user = {'u_id': user_id, 'u_pwd': user_pwd, 'u_name': user_name}user_path = "./users/" + user_id # 新建文件夹保存信息file_user = open(user_path, 'w')file_user.write(str(user))file_user.close()# 普通用户登录
def user_login():while True:print('****普通用户登录****')user_id = input('请输入账户名')user_pwd = input('请输入密码:')user_list = os.listdir('./users')  # 遍历元组,判断user_id是否在元组中flag = 0for user in user_list:if user == user_id:flag = 1print('登录中····')# 打开文件file_name = './users/' + user_idfile_user = open(file_name)# 获取文件内容user_info = eval(file_user.read())if user_pwd == user_info['u_pwd']:print('登录成功!')# 此处根据需求,可以跳转到登陆成功之后的操作breakif flag == 1:breakelif flag == 0:print('您并没有注册!请您先注册用户')breakif __name__ == '__main__':is_first_use()


https://www.fengoutiyan.com/post/17497.html

相关文章:

  • python简单的登录系统
  • python pip安装
  • python模块大全
  • python模块有哪些
  • python 类
  • php和python
  • python爬虫教程
  • qpython
  • 鏡像模式如何設置在哪,圖片鏡像操作
  • 什么軟件可以把圖片鏡像翻轉,C#圖片處理 解決左右鏡像相反(旋轉圖片)
  • 手機照片鏡像翻轉,C#圖像鏡像
  • 視頻鏡像翻轉軟件,python圖片鏡像翻轉_python中鏡像實現方法
  • 什么軟件可以把圖片鏡像翻轉,利用PS實現圖片的鏡像處理
  • 照片鏡像翻轉app,java實現圖片鏡像翻轉
  • 什么軟件可以把圖片鏡像翻轉,python圖片鏡像翻轉_python圖像處理之鏡像實現方法
  • matlab下載,matlab如何鏡像處理圖片,matlab實現圖像鏡像
  • 圖片鏡像翻轉,MATLAB:鏡像圖片
  • 鏡像翻轉圖片的軟件,圖像處理:實現圖片鏡像(基于python)
  • canvas可畫,JavaScript - canvas - 鏡像圖片
  • 圖片鏡像翻轉,UGUI優化:使用鏡像圖片
  • Codeforces,CodeForces 1253C
  • MySQL下載安裝,Mysql ERROR: 1253 解決方法
  • 勝利大逃亡英雄逃亡方案,HDU - 1253 勝利大逃亡 BFS
  • 大一c語言期末考試試題及答案匯總,電大計算機C語言1253,1253《C語言程序設計》電大期末精彩試題及其問題詳解
  • lu求解線性方程組,P1253 [yLOI2018] 扶蘇的問題 (線段樹)
  • c語言程序設計基礎題庫,1253號C語言程序設計試題,2016年1月試卷號1253C語言程序設計A.pdf
  • 信奧賽一本通官網,【信奧賽一本通】1253:抓住那頭牛(詳細代碼)
  • c語言程序設計1253,1253c語言程序設計a(2010年1月)
  • 勝利大逃亡英雄逃亡方案,BFS——1253 勝利大逃亡
  • 直流電壓測量模塊,IM1253B交直流電能計量模塊(艾銳達光電)
  • c語言程序設計第三版課后答案,【渝粵題庫】國家開放大學2021春1253C語言程序設計答案
  • 18轉換為二進制,1253. 將數字轉換為16進制
  • light-emitting diode,LightOJ-1253 Misere Nim
  • masterroyale魔改版,1253 Dungeon Master
  • codeformer官網中文版,codeforces.1253 B
  • c語言程序設計考研真題及答案,2020C語言程序設計1253,1253計算機科學與技術專業C語言程序設計A科目2020年09月國家開 放大學(中央廣播電視大學)
  • c語言程序設計基礎題庫,1253本科2016c語言程序設計試題,1253電大《C語言程序設計A》試題和答案200901
  • 肇事逃逸車輛無法聯系到車主怎么辦,1253尋找肇事司機