Python登录注册验证功能实现


Posted in Python onJune 18, 2018

简介

本次项目登录注册验证是对之前学习知识点的加深学习,这次项目的练习的知识点有函数、判断语句、循环语句、文件操作等。

项目流程

运行代码之后,输出登录或者注册选项。

当选择登录之后,输入用户名密码,如果该用户信息没有注册过,就输出登录失败,如果该用户信息已经注册过,就显示登录成功。

当选择注册之后,输入用户名密码,如果该用户信息没有注册过,就输出注册成功,如果该用户信息已经注册过,就显示用户名已经存在,注册失败。

代码流程

运行代之后首先执行main()函数,mian()函数中接收用户输入的用户名和密码,用户选择登录,就调用loing()函数,将用户输入的信息在和存放用户信息的文件中的信息进行比对,如果有该用户的信息就登录成功,否则失败,用户选择注册,在接收到用户输入的用户名密码之后,调用register()函数,在这里将调用 user_exist()函数进行对用户输入的信息进行判断,如用户输入的信息存在存放用户信息的文件里,输出注册失败,否则注册成功。

在login()和user_exist()函数中调用了错误处理函数。

错误处理函数介绍

try:
.....
except IOError:
......

ry中的代码执行没有出现错误,就不再执行except中的代码,如果try中的代码出现错误,就执行except中的代码。

代码实现

def login(username, password):
  """
  用于用户名和密码的验证
  :param username:用户名
  :param paaword:密码
  :return:True,用户验证成功;False,用户验证失败
  """
  try:
    f = open("users", "r", encoding="utf-8")
    for line in f:
      line = line.strip() # 清除换行符
      # 无参数时移除两侧空格,换行符
      # 有参数时移除两侧指定的字符
      line_list = line.split("$")
      if line_list[0] == username and line_list[1] == password:
        # print("成功")
        return True
    return False
  except IOError:
    return False


def register(username, password):
  """
  注册用户
  1、打开文件
  2、用户名$密码
  :param username:用户名
  :param password:密码
  :return:True:注册成功;
  """
  with open("users", "a", encoding="utf-8") as f:
    temp = "\n" + username + "$" + password
    f.write(temp)
    return True


def user_exist(username):
  """
  检测用户名是否存在
  :param username:要检测的用户名
  :return: True:用户名存在;False:用户名不存在
  """
  # 一行一行的去查找,如果用户名存在,return True:False
  try:
    with open("users", "r", encoding="utf-8") as f:
      for line in f:
        line = line.strip()
        line_new = line.split("$")
        if line_new[0] == username:
          return True
      return False
  except IOError:
    return False


def main():
  while True:
    print("欢迎登录xxx系统")
    arg = input("1:登录,2:注册")

    if arg == "1":
      uer = input("请输入用户名:")
      pwd = input("请输入密码:")
      if login(uer, pwd):
        print("成功")
        break
      else:
        print("失败")
    elif arg == "2":
      user = input("请输入用户名:")
      pwd = input("请输入密码:")
      is_exist = user_exist(user)
      if is_exist:
        print("用户名已经存在,注册失败")
      else:
        if register(user, pwd):
          print("注册成功")
          continue
        else:
          print("注册失败")
    else:
      print("输入错误,请重新输入")


main()

这次的项目仅仅使用了之前学习的部分知识,比较简单的一个项目,之后会继续加深学习。

Python 相关文章推荐
python实现的简单窗口倒计时界面实例
May 05 Python
详解python的数字类型变量与其方法
Nov 20 Python
详解python发送各类邮件的主要方法
Dec 22 Python
python3 破解 geetest(极验)的滑块验证码功能
Feb 24 Python
Python基于递归和非递归算法求两个数最大公约数、最小公倍数示例
May 21 Python
python库lxml在linux和WIN系统下的安装
Jun 24 Python
利用Django模版生成树状结构实例代码
May 19 Python
如何使用pyinstaller打包32位的exe程序
May 26 Python
TensorFlow学习之分布式的TensorFlow运行环境
Feb 05 Python
jupyter notebook参数化运行python方式
Apr 10 Python
如何使用python-opencv批量生成带噪点噪线的数字验证码
Dec 21 Python
scrapy实践之翻页爬取的实现
Jan 05 Python
详解python3中zipfile模块用法
Jun 18 #Python
python爬取个性签名的方法
Jun 17 #Python
Python爬虫包BeautifulSoup学习实例(五)
Jun 17 #Python
Python爬虫包BeautifulSoup实例(三)
Jun 17 #Python
Python爬虫包BeautifulSoup异常处理(二)
Jun 17 #Python
Python爬虫包BeautifulSoup简介与安装(一)
Jun 17 #Python
python主线程捕获子线程的方法
Jun 17 #Python
You might like
PHP环境搭建最新方法
2006/09/05 PHP
windows下开发并编译PHP扩展的方法
2011/03/18 PHP
php中经典方法实现判断多维数组是否为空
2011/10/23 PHP
php使用反射插入对象示例分享
2014/03/11 PHP
php中运用http调用的GET和POST方法示例
2014/09/29 PHP
PHP文件后缀不强制为.php方法
2019/03/31 PHP
Yii Framework框架开发微信公众平台示例
2020/04/26 PHP
javascript处理表单示例(javascript提交表单)
2014/04/28 Javascript
JavaScript中的DSL元编程介绍
2015/03/15 Javascript
JavaScript使用FileSystemObject对象写入文本文件内容的方法
2015/08/05 Javascript
基于jQuery实现搜索关键字自动匹配功能
2020/03/26 Javascript
jQuery Easyui实现左右布局
2016/01/26 Javascript
jQuery+css实现的换页标签栏效果
2016/01/27 Javascript
BootStrap响应式导航条实例介绍
2016/05/06 Javascript
微信小程序自定义导航隐藏和显示功能
2017/06/13 Javascript
微信小程序之网络请求简单封装实例详解
2017/06/28 Javascript
深入浅析javascript继承体系
2017/10/23 Javascript
echarts鼠标覆盖高亮显示节点及关系名称详解
2018/03/17 Javascript
利用Console来Debug的10个高级技巧汇总
2018/03/26 Javascript
微信小程序仿抖音视频之整屏上下切换功能的实现代码
2020/05/24 Javascript
Python入门篇之数字
2014/10/20 Python
python版本的读写锁操作方法
2016/04/25 Python
详解Python中使用base64模块来处理base64编码的方法
2016/07/01 Python
在matplotlib的图中设置中文标签的方法
2018/12/13 Python
python在回调函数中获取返回值的方法
2019/02/22 Python
python实现的登录与提交表单数据功能示例
2019/09/25 Python
Python 3 使用Pillow生成漂亮的分形树图片
2019/12/24 Python
解决django migrate报错ORA-02000: missing ALWAYS keyword
2020/07/02 Python
canvas使用注意点总结
2013/07/19 HTML / CSS
美国床垫连锁店:Mattress Firm
2021/02/13 全球购物
房地产出纳岗位职责
2013/12/01 职场文书
地震慰问信
2015/02/14 职场文书
2015庆祝七一建党节94周年活动总结
2015/03/20 职场文书
检察院起诉意见书
2015/05/20 职场文书
运动会主持人开幕词
2016/03/04 职场文书
利用Python网络爬虫爬取各大音乐评论的代码
2021/04/13 Python