开发者社区> 科技小能手> 正文

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

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
Python登录验证码
相信大家都明白,大多数的网站为了不被恶意访问,往往需要设置验证码登录,避免机器人访问,而造成我服务器瘫痪,崩溃,这里用到Python3,下面就来看看实现的具体过程吧!
15 0
简单的Python脚本,实现ssh登录配置路由器
简单的Python脚本,实现ssh登录配置路由器
183 0
python接口自动化(二十)--token登录(详解)
为了验证用户登录情况以及减轻服务器的压力,减少频繁的查询数据库,使服务器更加健壮。有些登录不是用 cookie 来验证的,是用 token 参数来判断是否登录。token 传参有两种一种是放在请求头里,本质上是跟 cookie 是一样的,只 是换个单词而已;另外一种是在 url 请求参数里,这种更直观。
313 0
python接口自动化(十三)--cookie绕过验证码登录(详解)
有些登录的接口会有验证码:短信验证码,图形验证码等,这种登录的话验证码参数可以从后台获取的(或者查数据库最直接)。获取不到也没关系,可以通过添加cookie的方式绕过验证码。(注意:并不是所有的登录都是用cookie来保 持登录的,有些是用token登录)
65 0
python简单登录
简单登录源代码
28 0
Python编程:Flask-BasicAuth实现Authentication登录认证
Python编程:Flask-BasicAuth实现Authentication登录认证
83 0
Python黑科技系列13-登录验证码识别技术
世界软件业巨头、微软公司创办人比尔·盖茨说:“人生是不公平的,习惯去接受它吧。请记住,永远都不要抱怨!” 每个人都是独一无二的,在这世界上你也真的很好,很优秀,因为你是唯一的。
26 0
Python Web开发(七):登录实现及功能测试
Python Web开发(七):登录实现及功能测试
146 0
python+selenium 通过添加cookies或token解决网页上验证码登录问题
cookie或token可以保存登录信息,当我们拿到cookie后,可以通过向浏览器发送cookie中记录的数据,直接变成登录状态,不需要再登录。
606 0
文章
问答
文章排行榜
最热
最新
相关电子书
更多
给运维工程师的Python实战课
立即下载
Python 脚本速查手册
立即下载
ACE 区域技术发展峰会:Flink Python Table API入门及实践
立即下载