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()
【注】:此为个人学习作业练习
Python实现用户注册登录功能相关推荐
- python写appium_案例分享,Python +appium做登录功能
原标题:案例分享,Python +appium做登录功能 Appium 是一个自动化测试开源工具,支持 iOS 平台和 Android 平台上的原生应用,同时又是一个跨平台的工具:它允许测试人员在不同 ...
- Laravel5.8入门系列二,快速实现用户注册登录功能
一 XAMPP 环境配置 这次我们需要开始使用继承开发环境了,因为我们需要使用数据库,完成用户的登录注册功能. 首先要配置好XAMPP环境,我们需要添加一个vhost,指向blog5.8的public ...
- PHP连接数据库实现用户注册登录功能
PHP连接数据库实现用户注册登录功能 代码如下 dbconnect.php login.html register.php login.php index.php logout.php ) 代码如下 ...
- 采用Node.js+Express+Jade实现用户注册登录功能
Node.js是一个JavaScript运行环境,发布于2009年5月,由Ryan Dahl开发,实质是对Chrome V8引擎进行了封装.V8引擎执行Javascript的速度非常快,性能非常好. ...
- java登陆注册 mysql_Java+mysql用户注册登录功能
最近刚刚开始学习mysql,所以就写了这个很基本的用户注册登录的功能来练练手.虽然这个很简单,但是我还是看到了自己学习的进步,很开心.哈哈哈. 这里要注意数据表的建立: 直接上代码吧,里面注释很详细了 ...
- Python实现用户注册登录校验功能(面向对象方法)
案例需求: <用户登录>分别提示用户输入用户名和密码,用户名为seven,密码为123,或者用户名为alex,密码为456.提示登录成功,并结束程序.否则提示失败原因,并提示重新输入,最多 ...
- python程序下载腾讯企业邮箱附件_获取腾讯企业邮箱通讯录python脚本(带登录功能)...
之前的 帖子 加入了 @ sdc1992 提供的登录部分 根据邮箱和密码,获取企业通讯录 运行后会生成两个文件 一个只包含邮箱,可以用于后续爆破 一个为部门名称 和 部门下的员工邮箱的树形结构,可以方 ...
- PHP+MYSQL实现简单的用户注册登录功能
有必要用一下php+mysql实现一下这个"最基础"的用户功能,(虽然开发可能会用后端云) 基础结构 html+css+JavaScript作前端渲染: php作为后端,mysql ...
- eclipse连接数据库并实现用户注册登录功能
文章目录 MySQL配置环境变量 navicat 部署tomcat 导入驱动 修改代码 连接mysql数据库 运行: MySQL配置环境变量 mysql肯定是必不可少的,这个就不用多说了,自己去官网下 ...
最新文章
- numpy库:常用基本
- 想拥有最新的微软嵌入式技术 就赶快加入微软嵌入式专家社区吧!
- EasyTable.js,令html的table布局变得非常简单!
- 【Matlab 控制】利用 Simulink 对微分代数方程建模
- 关于编译GITHUB上的工程
- Windows优化大师的一点研究
- 软件开发有哪些规范和标准_高品质、标准化——四维图新自动驾驶地图通过ASPICE CL2认证...
- 放弃手机后!罗永浩今年已带货19亿元
- 2018--Linux面试题
- 机器学习——图像分类
- 每天吃多少才不会胖?食物和卡路里对照表
- 神经网络,英文字母识别
- 从文件结构认识HLS
- uniCloud云开发平台简介及云函数数据库基础操作练习(新人首作,欢迎支持
- win10查看电池详细使用情况报告(查看损耗等)以及无法启动服务问题
- 做月饼-制作过程及图文笔记
- 图 邻接矩阵幂的含义 离散数学定理14.11
- java程序模拟红篮球概率事件
- ubuntu E: Unable to locate package xxxxxxx解决办法
- 一文彻底搞懂MySQL基础:B树和B+树的区别