700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > Python实现用户注册登录功能

Python实现用户注册登录功能

时间:2019-04-09 07:50:56

相关推荐

Python实现用户注册登录功能

一.环境:

python3 + vscode

二.文件:

【程序文件】用户/管理员~注册/登陆.py【启动标记文件】flag.txt -> 文件内容:0

三.程序步骤分块:

主程序入口

初次启动后,初始化文件更改标记

启动后信息初始化

打印登陆菜单

用户选择

管理员登陆

用户注册

用户登陆

四.程序:

import os# 定义一个全局变量保存名字file_name = '普通用户变量保存名字'# 程序入口def main():# 打开文件with open(r'flag.txt', mode='rt', encoding='utf-8') as flag:# 读取文件word = flag.read()if word == '0':print('首次启动!')c_flag() # 更改标记为1init() # 初始化资源print_login_menu() # 打印登陆菜单user_selsct() # 选择用户elif word == '1':print('欢迎会回来!')print_login_menu()user_selsct()else:print('初始化参数错误!')# 初次启动后,标记文件更改def c_flag():with open(r'flag.txt', mode='wt', encoding='utf-8') as flag:flag.write('1')# 启动后信息初始化def init():root = {'r_name': 'zcy', 'r_pwd': '117'} # 字典存放管理员账号信息with open(r'u_root.txt', mode='wt', encoding='utf-8') as u_root:# 创建并打开管理员账号的文件u_root.write(str(root)) # 写入管理员信息if not os.path.exists(file_name): # 判断是否存在存放普通用户信息的文件夹os.mkdir(file_name) # 没有则创建# 打印登陆菜单def print_login_menu():print('用户选择'.center(10, '-'))print('1.管理员登陆')print('2.普通用户登陆')print(''.center(10, '-'))# 用户选择def user_selsct():while True:user_type_selext = input('请选择用户类型:').strip()if user_type_selext == '1':root_login() # 管理员登陆breakelif user_type_selext == '2': # 普通用户登陆while True:select = input('是否需要注册?(y/n):').strip()if select == 'y' or select == 'Y':# print('用户注册')user_register() # 用户注册user_login()breakelif select == 'n' or select == 'N':# print('用户登陆')user_login() # 用户登陆breakelse:print('输入有误,请重新输入')breakelse:print('请输入已有的编号')# 管理员登陆def root_login():while True:print('---管理员登陆---')root_number = input('请输入你的账号:').strip()root_password = input('请输入你的密码:').strip()with open('u_root.txt', mode='rt', encoding='utf-8') as u_root: # 打开存放管理员信息的文件root = eval(u_root.read()) # 读取管理员信息,并把读取成字符串的信息转换成字典# 账号信息验证if root_number == root['r_name'] and root_password == root['r_pwd']:print('登陆成功')breakelse:print('验证失败!')# 用户注册def user_register():print('---用户注册---')while True:user_id = input('请输入你的账号:').strip()user_pwd = input('请输入你的密码:').strip()user_name = input('请输入你的昵称:')# 获取file_name目录中所有的文件,os.listdir() 方法用于返回指定的文件夹包含的文件或文件夹的名字的列表。user_list = os.listdir(file_name)# 遍历列表,判断user_id是否在列表中if user_id not in user_list:user = {"u_id": user_id, "u_pwd": user_pwd, "u_name": user_name}user_path = file_name + '/' + user_id # 创建用户文件with open(user_path, mode='wt', encoding='utf-8') as user_file: # 写入用户信息user_file.write(str(user))breakelse:print('账号已存在,请重新注册!')# 用户登陆def user_login():while True:print('---用户登陆---')user_id = input('请输入你的账号:').strip()user_pwd = input('请输入你的密码:').strip()# 获取file_name目录中所有的文件,os.listdir() 方法用于返回指定的文件夹包含的文件或文件夹的名字的列表。user_list = os.listdir(file_name)# 遍历列表,判断user_id是否在列表中if user_id in user_list:print('登陆中...')# 构建用户路径user_path = user_path = file_name + '/' + user_id# 打开路径对应用户文件,读取,转换字典,关键字取密码进行判断if user_pwd == eval(open(user_path, mode='rt', encoding='utf-8').read())['u_pwd']:print('登陆成功')breakelse:print('登陆失败,账号或密码错误,请重新输入')else:print('账号不存在,请先注册!')breakif __name__ == '__main__':main()

【注】:此为个人学习作业练习

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