Rumah pembangunan bahagian belakang Tutorial Python 编写登录接口实例详解

编写登录接口实例详解

Jul 24, 2017 am 10:18 AM
Log masuk menulis

要求:编写登录接口

1. 输入用户名和密码

2. 认证成功后显示欢迎信息

3. 输错三次后锁定


 1)编写思路

编写思路参考下面GitHub链接中的流程图

作业/Day1_作业_登录接口流程图.png


 2)具体实现

1

 1 # -*- coding:utf-8 -*- 2  3 # Author:Chuixin Zeng 4  5 # 字典和列表的区别:列表是有顺序的,使用索引访问;而字典中的条目是用键来访问的 6  7 # 初始化空字典 8 _user_dict = {} 9 # 初始化空列表list,有了空的列表之后,程序就可以向这个列表中增加元素10 _user_list = []11 # 初始化登录不存在用户名的初始值为012 _login_error_count = 013 14 # 使用while开始无限制的循环15 while True:16     # 交互式输入登录用户名和密码17     _user_naming = input("Pls input your username:")18     _user_password = input("Pls input your password:")19     # 读取用户登录数据文件UserPassword.txt20     _users_data = open('UserPassword.txt')21     # 循环遍历打开的数据,对打开的数据进行格式化操作,然后把格式化以后的数据保存到创建好的_user_dict字典当中22     for user_data in _users_data:23         # 使用strip去除user_data数据行中的前后空格24         _user_list = user_data.strip()25         # 将去除前后空格之后的数据行_user_list使用逗号进行分割,并重新保存到_user_datas中26         _user_datas = _user_list.split(',')27         # 将_user_datas数据行中的第0个位置的数据(即用户名),去除前后空格后,赋给新的变量_user_name28         _user_name = _user_datas[0].strip()29         # 将_user_datas数据行中的第1个位置的数据(即密码),去除前后空格后,赋给新的变量_user_pass30         _user_pass = _user_datas[1].strip()31         # 将_user_datas数据行中的第2个位置的数据(即锁定状态,0代表未锁定,1代表锁定),去除前后空格后,赋给新的变量_user_locked32         _user_locked = _user_datas[2].strip()33         # 将_user_datas数据行中的第3个位置的数据(即密码输入错误次数),去除前后空格后,赋给新的变量_user_error_count34         # 将_user_datas[3]的数据类型强制转换为int35         _user_error_count = int(_user_datas[3].strip())36         # 将前面定义好的变量信息,保存到字典中,为前面的值指定键名,即键:值对应的关系,键名可以随便起,建议考虑易读性37         # 如果下面的键名出线下划波浪线,并不代表有语法错误,而是编辑器认为拼写的英文不是正确的英文单词,不影响脚本执行38         # 按照Python的编程规范,在逗号和冒号后面需要加一个空格39         _user_dict[_user_name] = {'name': _user_name, 'password': _user_pass,40                                   'locked': _user_locked, 'errorcount': _user_error_count}41 42     # 关闭打开的UserPassword.txt文件43     _users_data.close()44 45     # 判断用户账户是否已经被锁定,将前面交互界面输入的用户名和字典里保存的用户名列进行匹配46     # 将前面交互式输入的用户名和字典中的userlocked键进行匹配,如果用户名对应的键为1,就是被锁定了,退出登录47     if _user_naming in _user_dict.keys():48         if _user_dict[_user_naming]['locked'] == '1':49             print("The account was locked,pls contact administrator!")50             break51         # 将前面输入的用户名、密码和字典中的用户名、密码进行匹配,如果成功,则输出登录系统,然后退出52         if _user_naming == _user_dict[_user_naming]['name'and _user_password == _user_dict[_user_naming]['password']:53             print("Welcome to System!")54             break55         else:56             # 如果用户名在字典里,但是密码不对,将前面输入的用户名所对应字典中的错误次数进行自增57             _user_dict[_user_naming]['errorcount'] += 158             # 如果用户名输入正确的情况下,密码输入错误的次数小于3次,给用户重新尝试的机会59             if _user_dict[_user_naming]['errorcount'] < 3:60                 print("The password was wrong,pls try again,your have three chance!")61                 # 追加写入新的数据到UserPassword.txt,其中的errorcount会随着失败尝试次数的增加而增加,三次就是2,即0,1,262                 _write_data = open(&#39;UserPassword.txt&#39;, &#39;w+&#39;)63                 # 将字典里面的值取到_user_value中,进行循环遍历64                 for _user_value in _user_dict.values():65                     # 往脚本开头定义好的空列表里面逐行写入数据66                     _user_list = [_user_value[&#39;name&#39;], _user_value[&#39;password&#39;], str(_user_value[&#39;locked&#39;]),67                                   str(_user_value[&#39;errorcount&#39;])]68                     # 将写入到_user_list的数据再次进行格式化后赋给_users_list69                     _users_list = &#39;,&#39;.join(_user_list)70                     # 将_users_list中的数据写入到UserPassword.txt中,并在每一行数据的结尾进行换行71                     _write_data.write(_users_list + &#39;\n&#39;)72                 # 关闭UserPassword.txt文档73                 _write_data.close()74 75             else:76                 # 如果密码不正确的次数已经超过3次,就输出账户被锁定77                 print("You try three times,Account locked")78                 # 输出账户锁定的同时,将字典中locked键的值设置为1,这个地方改成1,前面判断Locked状态的IF才生效79                 _user_dict[_user_naming][&#39;locked&#39;] = 180                 # 账户设置为锁定之后,将用户对应的错误密码次数清零,我理解的是锁定属性为1了,错误次数可以清零81                 _user_dict[_user_naming][&#39;errorcount&#39;] = 082                 _write_data = open(&#39;UserPassword.txt&#39;, &#39;w+&#39;)83                 for _user_value in _user_dict.values():84                     _user_list = [_user_value[&#39;name&#39;], _user_value[&#39;password&#39;], str(_user_value[&#39;locked&#39;]),85                                   str(_user_value[&#39;errorcount&#39;])]86                     _users_list = &#39;,&#39;.join(_user_list)87                     _write_data.write(_users_list + &#39;\n&#39;)88                 _write_data.close()89                 break90 91 92     else:93         # 如果用户名不存在,则输出信息94         print("Pls ensure input currect account or password,you can try three times!")95         # 程序开头设置了初始化不存在用户名的值为0,这里进行自增96         _login_error_count += 197         # 如果不存在的用户尝试次数超过3次,则中断程序98         if _login_error_count > 2:99             break

Salin selepas log masuk

 3)Github笔记

第一天的笔记的地址是:

随堂练习

第一天作业的地址是:

作业


 4)Readme.md文档

作业/Readme_登陆接口.md

Atas ialah kandungan terperinci 编写登录接口实例详解. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
2 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Repo: Cara menghidupkan semula rakan sepasukan
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Cara mendapatkan biji gergasi
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Apakah yang perlu saya lakukan jika saya memuat turun kertas dinding orang lain selepas log masuk ke akaun lain pada mesin kertas dinding? Apakah yang perlu saya lakukan jika saya memuat turun kertas dinding orang lain selepas log masuk ke akaun lain pada mesin kertas dinding? Mar 19, 2024 pm 02:00 PM

Apakah yang perlu saya lakukan jika saya memuat turun kertas dinding orang lain selepas log masuk ke akaun lain pada mesin kertas dinding?

Bagaimanakah saya boleh log masuk ke akaun saya sebelum ini di Xiaohongshu? Apakah yang perlu saya lakukan jika nombor asal hilang selepas ia ditukar? Bagaimanakah saya boleh log masuk ke akaun saya sebelum ini di Xiaohongshu? Apakah yang perlu saya lakukan jika nombor asal hilang selepas ia ditukar? Mar 21, 2024 pm 09:41 PM

Bagaimanakah saya boleh log masuk ke akaun saya sebelum ini di Xiaohongshu? Apakah yang perlu saya lakukan jika nombor asal hilang selepas ia ditukar?

Discuz penyelesaian masalah log masuk latar belakang didedahkan Discuz penyelesaian masalah log masuk latar belakang didedahkan Mar 03, 2024 am 08:57 AM

Discuz penyelesaian masalah log masuk latar belakang didedahkan

Kulit koleksi Ibaraki Douji 'Onmyoji' boleh diperolehi sebaik sahaja anda log masuk, dan kulit Zen Heart Cloud Mirror baharu akan dilancarkan tidak lama lagi! Kulit koleksi Ibaraki Douji 'Onmyoji' boleh diperolehi sebaik sahaja anda log masuk, dan kulit Zen Heart Cloud Mirror baharu akan dilancarkan tidak lama lagi! Jan 05, 2024 am 10:42 AM

Kulit koleksi Ibaraki Douji 'Onmyoji' boleh diperolehi sebaik sahaja anda log masuk, dan kulit Zen Heart Cloud Mirror baharu akan dilancarkan tidak lama lagi!

Cara log masuk ke versi PC Kuaishou - Cara log masuk ke versi PC Kuaishou Cara log masuk ke versi PC Kuaishou - Cara log masuk ke versi PC Kuaishou Mar 04, 2024 pm 03:30 PM

Cara log masuk ke versi PC Kuaishou - Cara log masuk ke versi PC Kuaishou

Bagaimana untuk log masuk ke dua peranti pada Quark Bagaimana untuk log masuk ke dua peranti pada Quark Feb 23, 2024 pm 10:55 PM

Bagaimana untuk log masuk ke dua peranti pada Quark

Bagaimana untuk log masuk jika Xiaohongshu hanya mengingati akaun tersebut? Saya hanya ingat bagaimana untuk mendapatkan semula akaun saya? Bagaimana untuk log masuk jika Xiaohongshu hanya mengingati akaun tersebut? Saya hanya ingat bagaimana untuk mendapatkan semula akaun saya? Mar 23, 2024 pm 05:31 PM

Bagaimana untuk log masuk jika Xiaohongshu hanya mengingati akaun tersebut? Saya hanya ingat bagaimana untuk mendapatkan semula akaun saya?

115 Pintu masuk log masuk versi web Netdisk 115 Pintu masuk log masuk versi web Netdisk Feb 23, 2024 pm 02:04 PM

115 Pintu masuk log masuk versi web Netdisk

See all articles