用户登录模块

  • 前言&思维导图
  • 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()

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

  1. Python爬虫实战(5):模拟登录淘宝并获取所有订单

    Python爬虫入门(1):综述 Python爬虫入门(2):爬虫基础了解 Python爬虫入门(3):Urllib库的基本使用 Python爬虫入门(4):Urllib库的高级用法 Python爬虫 ...

  2. Python爬虫实战之(五)| 模拟登录wechat

    作者:xiaoyu 微信公众号:Python数据科学 知乎:Python数据分析师 不知何时,微信已经成为我们不可缺少的一部分了,我们的社交圈.关注的新闻或是公众号.还有个人信息或是隐私都被绑定在了一 ...

  3. Python爬虫实战之(五)| 模拟登录wechat 1

    作者:xiaoyu 微信公众号:Python数据科学 知乎:Python数据分析师 不知何时,微信已经成为我们不可缺少的一部分了,我们的社交圈.关注的新闻或是公众号.还有个人信息或是隐私都被绑定在了一 ...

  4. 《Python编程实战:运用设计模式、并发和程序库创建高质量程序》—— 第1章 Python的创建型设计模式...

    本节书摘来自华章出版社<Python编程实战:运用设计模式.并发和程序库创建高质量程序>一 书中的第1章,第1.1节,作者:(美) Mark Summerfield,更多章节内容可以访问云 ...

  5. python经典书籍:Python编程实战 运用设计模式、并发和程序库创建高质量程序

    Python编程实战主要关注了四个方面 即:优雅编码设计模式.通过并发和编译后的Python(Cython)使处理速度更快.高层联网和图像.书中展示了在Python中已经过验证有用的设计模式,用专家级 ...

  6. 《Python编程实战:运用设计模式、并发和程序库创建高质量程序》—— 导读

    前 言 本书面向有志于拓展及深化Python知识的读者,它将教你如何改进Python程序的质量.可靠性.速度.可维护性以及可用性.书中包含大量实用的范例与思路,可帮助大家提升Python编程水平. 本 ...

  7. python编程实例-python编程实战

    广告关闭 2017年12月,云+社区对外发布,从最开始的技术博客到现在拥有多个社区产品.未来,我们一起乘风破浪,创造无限可能. 另外又学了几个python3的新decorator. 创建型设计模式抽象 ...

  8. Python爬虫实战,requests+tqdm模块,爬取漫画数据(附源码)

    前言 今天给大家介绍的是Python爬取漫画数据,在这里给需要的小伙伴们代码,并且给出一点小心得. 首先是爬取之前应该尽可能伪装成浏览器而不被识别出来是爬虫,基本的是加请求头,但是这样的纯文本数据爬取 ...

  9. Python爬虫实战,requests+openpyxl模块,爬取手机商品信息数据(附源码)

    前言 今天给大家介绍的是Python爬取手机商品信息数据,在这里给需要的小伙伴们代码,并且给出一点小心得. 首先是爬取之前应该尽可能伪装成浏览器而不被识别出来是爬虫,基本的是加请求头,但是这样的纯文本 ...

  10. Python爬虫实战,requests+openpyxl模块,爬取小说数据并保存txt文档(附源码)

    前言 今天给大家介绍的是Python爬取小说数据并保存txt文档,在这里给需要的小伙伴们代码,并且给出一点小心得. 首先是爬取之前应该尽可能伪装成浏览器而不被识别出来是爬虫,基本的是加请求头,但是这样 ...

最新文章

  1. jquery_jquery插件、jqueryUI使用方法、自定义jquery插件(一个插件其实就是一个功能)...
  2. SpringSecurity OAuth2介绍
  3. python安装pyautogui遇到的gbk异常解决
  4. 谷歌gcp 远程计算机_引导性GCP:带有Google Cloud Pub / Sub的Spring Cloud Stream
  5. 华为云计算值班电工_华为FusionModule2000智能微模块荣获2019云计算中心科技奖卓越奖...
  6. LSGO软件技术团队2015~2016学年第十七周(1221~1227)总结
  7. 程序—java记事本
  8. 打狗棒法之:Cknife(C刀)自定义模式秒过安全狗(二)
  9. 项目管理中PMO项目管理办公室的价值
  10. 西门子PLC编程软件step7 v5.5 和仿真软件S7-Plcsim安装与授权
  11. xshell教育版网盘下载
  12. 制作u盘winpe启动盘_u盘启动盘制作工具软件哪个好?
  13. Thymeleaf模板引擎使用详解
  14. lvm扩容-缩减磁盘
  15. 用这个方法解决Python多版本共存问题,简单粗暴
  16. 品牌如何热搜不断?五菱社会化超级运营的玩梗之路
  17. 百度文库如何申请个人认证?需要什么资质?
  18. 深度搜索(DFS)和广度搜索(BFS)
  19. 【机器学习】显卡、GPU、NVIDIA、CUDA、cuDNN
  20. iptables知识点总结

热门文章

  1. 基于89C51单片机的智能语音拨号电话
  2. html 组件化 编辑器,纯前端表格控件SpreadJS V14.0发布:组件化编辑器+数据透视表...
  3. SQL语句实现模糊查询
  4. win7怎么把计算机放到桌面6,手机投屏到电脑win7最简单具体操作步骤
  5. 一文教会你如何基于高德地图获取城市公交网络数据(包含经纬度)
  6. python 开源cms内容管理系统_八大CMS内容管理系统推荐
  7. 宏碁传奇14 Swift 指纹模块失效解决
  8. 设计师的十大金科玉律
  9. wegame安装包文件MD5校验失败解决方案
  10. ElasticJob分布式调度,分布式多个微服务执行只需要执行一个定时任务,基本概念介绍(一)