700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > python编程实战(一):用户登录模块 用户注册 登录 信息管理 功能设计与实现!

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

时间:2021-04-27 11:01:33

相关推荐

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

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。