python——模拟一个简单的登录接口程序

简介:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
一、功能要求
登录接口小程序(需实现的功能如下)
1 、输入用户名和密码
2 、认证成功后显示欢迎信息
3 、输错三次后锁定
二、逻辑思路分析:
     定义一个文件用于存储用户名和密码:passwd.db
     定义一个文件用于记录输入 3 次错误后的用户名,以判断文件里的用户名来决定用户是否为锁定状态    lock_user.db
     定一个变量为 3 ,用于输错密码最多次数      count  =  3
     定一个变量为 0 ,用于输错一次自动增加 1  inter = 0
     定义一个变量login_status作为标志位,默认值为login_status = False ,为false的目地也就是说登录失败。如果用户登录成功后那么就赋值为 True
1 、输入用户名和密码
2 、输入用户名之后,检测账户是否是锁定,那么需打开lockfile文件,循环读取每一行的用户名,判断是否此用户已经存在lock文件里,如果用户存在,则提示用户已被锁定,且退出程序,如果账户名不存在lockfile文件里,则继续往下执行
3 、打开userdbfile,循环读取每一行,且分割用户名和密码,分别存储在userdb、passwddb变量里。接着将输入的用户名和密码分别与这两个变量进行匹配,如果相等,则提示验证通过,且将标志位match_flag赋值为 True ,且终止循环。如果输入的密码是不正确的,那么标志位不变,也就还是为 False
4 、接着判断标志位,如果为false,则说明没有匹配上,提示重试登录,且同时将count增 1 ,如果不为false,也就是为true。则提示登录系统完成

三、代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
#!/usr/bin/env python    
#_*_ coding:utf-8 _*_    
#注册用户名和密码,数据写入在文件里    
#输入用户和密码    
#认证成功后显示欢迎信息    
#输错三次后锁定    
#!/usr/bin/env python    
import  shelve    
#账户添加(可单独调用该函数执行即可)    
def  adduser(name,passwd):    
     files  =  shelve. open ( "passwd.db" )    
     files[name]  =  passwd    
     files.close()    
def  check(name,passwd):    
     db  =  dict (shelve. open ( "passwd.db" ))    
     lock  =  dict (shelve. open ( "lock_user.db" ))    
     if  lock.get(name, None ) ! =  None :    
         print  '账户处于锁定状态,请与管理员联系'    
         return  False    
     if  db.get(name, None = =  None :    
         print  '用户名不存在'    
         return  False    
     if  passwd ! =  db.get(name):    
         print  '密码错误'    
         return  False    
     else :    
         return  True    
if  __name__  = =  '__main__' :    
     inter  =  0    
     count  =  3    
     login_status  =  False    
     while  inter < count:    
         name  =  raw_input ( '账号:' )    
         passwd  =  raw_input ( '口令:' )    
         if  check(name,passwd)  = =  True :    
             login_status  =  True    
             print  '认证通过'    
             break    
         else :    
             inter  + =  1    
             print  '还可尝试%s次登录'  %  ( 3  -  inter)    
             continue    
         if  login_status  = =  False :    
             files  =  shelve. open ( "lock_user.db" )    
             files[name]  =  name    
             files.close()    
             print  '账户被锁定'



本文转自 TtrToby 51CTO博客,原文链接:http://blog.51cto.com/freshair/1869246
相关文章
|
18天前
|
存储 缓存 JavaScript
python实战篇:利用request库打造自己的翻译接口
python实战篇:利用request库打造自己的翻译接口
30 1
python实战篇:利用request库打造自己的翻译接口
|
1月前
|
数据采集 JSON API
如何实现高效率超简洁的实时数据采集?——Python实战电商数据采集API接口
你是否曾为获取重要数据而感到困扰?是否因为数据封锁而无法获取所需信息?是否因为数据格式混乱而头疼?现在,所有这些问题都可以迎刃而解。让我为大家介绍一款强大的数据采集API接口。
|
1月前
|
存储 算法 数据处理
使用Python编写高效的数据处理程序
在当今信息爆炸的时代,数据处理变得越来越重要。本文将介绍如何使用Python语言编写高效的数据处理程序,包括利用Python内置的数据结构和函数、优化算法和并行处理等技术,帮助开发者更好地处理和分析大规模数据。
|
28天前
|
Java Python 开发者
Python 学习之路 01基础入门---【Python安装,Python程序基本组成】
线程池详解与异步任务编排使用案例-xian-cheng-chi-xiang-jie-yu-yi-bu-ren-wu-bian-pai-shi-yong-an-li
76 2
Python 学习之路 01基础入门---【Python安装,Python程序基本组成】
|
5天前
|
数据采集 JavaScript 前端开发
使用Python打造爬虫程序之破茧而出:Python爬虫遭遇反爬虫机制及应对策略
【4月更文挑战第19天】本文探讨了Python爬虫应对反爬虫机制的策略。常见的反爬虫机制包括User-Agent检测、IP限制、动态加载内容、验证码验证和Cookie跟踪。应对策略包括设置合理User-Agent、使用代理IP、处理动态加载内容、验证码识别及维护Cookie。此外,还提到高级策略如降低请求频率、模拟人类行为、分布式爬虫和学习网站规则。开发者需不断学习新策略,同时遵守规则和法律法规,确保爬虫的稳定性和合法性。
|
6天前
|
SQL 安全 Go
如何在 Python 中进行 Web 应用程序的安全性管理,例如防止 SQL 注入?
在Python Web开发中,确保应用安全至关重要,主要防范SQL注入、XSS和CSRF攻击。措施包括:使用参数化查询或ORM防止SQL注入;过滤与转义用户输入抵御XSS;添加CSRF令牌抵挡CSRF;启用HTTPS保障数据传输安全;实现强身份验证和授权系统;智能处理错误信息;定期更新及审计以修复漏洞;严格输入验证;并培训开发者提升安全意识。持续关注和改进是保证安全的关键。
14 0
|
22天前
|
分布式计算 算法 搜索推荐
优化 Python 程序的五大技巧
本文介绍了优化 Python 程序的五大技巧,涵盖了代码结构优化、算法选择、内置函数利用、库的使用以及并行处理等方面。通过对这些技巧的实践,可以提升 Python 程序的性能和效率,从而更好地满足各类应用的需求。
|
23天前
|
Python
python使用tkinter库,封装操作excel为GUI程序
python使用tkinter库,封装操作excel为GUI程序
|
25天前
|
前端开发 JavaScript 数据管理
描述一个使用Python开发Web应用程序的实际项目经验,包括所使用的框架和技术栈。
使用Flask开发Web应用,结合SQLite、Flask-SQLAlchemy进行数据管理,HTML/CSS/JS(Bootstrap和jQuery)构建前端。通过Flask路由处理用户请求,模块化代码提高可维护性。unittest进行测试,开发阶段用内置服务器,生产环境可选WSGI服务器或容器化部署。实现了用户注册登录和数据管理功能,展示Python Web开发的灵活性和效率。
14 4
|
1月前
|
存储 数据库连接 数据处理
Python语言的程序框架
Python语言的程序框架