day01 项目

项目名称:

编写登陆接口

项目需求:

1 输入用户名密码

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

3 输错3次之后锁定,包括下次运行此程序也要锁定,涉及到持久化的问题只能用python 自带的文件输入输出接口 不能用系统级的接口

折腾了一天终于写出来了,主要是第三个需求中的持久化,我试了 file 的读写,还有pickle ,anydbm 发现都不成功,提示了很多报错,可能是我是小白的原因吧,最后我找到了json 这个官方的模块,使用了一下发现很不错,当然他也是在file 中操作的。

file 我是通过python 的官方手册里查找使用方法的,json 是通过百度得到的方法的。

python 的官方手册地址:https://docs.python.org/3/tutorial/index.html 这个以后要用到了,先标记一下。

下面是show code time :  # getpass 在Pychram 中有问题,请在真实python 环境中运行,例如可以保存到linux 中运行。

 1 #!/usr/bin/env python3
 2 # Auth: Shen Yang
 3 import json
 4 import getpass
 5
 6 vaild_user = {‘yang‘: ‘123‘,‘lu‘: ‘321‘}  #定义可以登陆的用户及密码
 7 black_list_file_path = "e://Python-study/black_list.db"  #定义黑名单路径
 8
 9 try:  # 使用try 来判断文件是否存在,如果不存在说明是第一次运行或者没有被blok 的用户,初始化用户名及密码输入错误次数
10     black_list_file = open(black_list_file_path,"r")  # 使用file 以读的方式打开文件
11     black_list = json.load(black_list_file) #使用json 来载入文件存入的字典
12     black_list_file.close()                 # 关闭文件
13 except FileNotFoundError :
14     black_list = {"lu": 0, "yang": 0}
15
16 while True:  #循环执行输入名字
17         input_user = input("please input your name: ")
18         if input_user in vaild_user:   #判断输入的用户是否在可以登陆的名单里
19                 if  black_list[input_user] == 3:  # 判断用户是否已经输错密码3次
20                     print("User {_input_user} is locked !".format(_input_user=input_user))
21                     break
22                 input_passwd = getpass.getpass("please input your passwd: ")
23                 if input_passwd == vaild_user[input_user]: #判断密码是否正确
24                         print(28 * "+")
25                         print("Welcome {_input_user} to your server!".format(_input_user=input_user))
26                         print(28 * "+")
27                         break
28                 else:  # 密码不正确
29                         print("Invalid passwd")
30                         black_list[input_user] += 1      # 密码输入错误次数每次 + 1
31                         if black_list[input_user] == 3:  # 如果密码错误次数等于3 ,输出锁定信息并修改密码错误次数为3,下次登陆会先判断此值
32                                 print("User {_input_user} is locked !".format(_input_user=input_user))
33                                 black_list_file = open(black_list_file_path,"w") # 使用file 以写的模式打开文件
34                                 json.dump(black_list,black_list_file)       # 使用json 来把字典持久化到文件中
35                                 black_list_file.close()                     # 关闭文件
36                                 break
37         else:         # 判断输入的用户不在定义里输出错误信息并退出
38                 print("User {_input_user} is not allowd in our system! bayby...".format(_input_user=input_user))
39                 break
时间: 2024-10-27 03:53:41

day01 项目的相关文章

智慧city

# 智慧北京黑马74期笔记 # # 智慧北京黑马74期笔记 # ## 项目角色 ## - 产品经理(产品狗,产品汪) 决定开发什么东西, 需求文档(原型图) - 程序员(码农, 程序猿, 攻城狮) 负责开发 - Android开发工程师 - IOS开发工程师 - 服务器开发工程师JavaEE/PHP/.Net (接口文档) - 视觉设计师/UI设计师(美工) 效果图, 切图 1280*720分辨率(主流分辨率) - 测试工程师 - 运营(销售, 推广, 打广告, 写软文) ## 开发流程 ##

团队项目个人进展——Day01

一.昨天工作总结 冲刺第一天,昨天阅读了小程序官方文档关于对视图层和逻辑层的介绍 二.遇到的问题 对小程序的样式文件--WXML里的标签不太理解,相比之下,html的标签更能让人接受 三.今日工作规划 领取任务,完成模块--信息的发布: 学习如何接入高德地图对小程序SDK的支持与应用,并编写一个Demo实现定位功能 继续阅读小程序的官方文档

网上书城小工具(也适用于其他项目)

工欲善其事,必先利其器.下面我们来介绍一下在项目中要使用的小工具(itcast-tools-1.4.jar).这个小工具底层使用了: · c3p0数据库连接池: · common-beanutils: ·common-dbutils: · javaMail: 1 CommonUtils(通用工具类) CommonUtils类就两个方法: ·String uuid():生成长度32的随机字符,通常用来做实体类的ID.底层使用了UUID类完成: ·T toBean(Map, Class<T>):把

java基础学习笔记day01

java基础学习笔记day01 1.软件开发: 软件:按照特定顺序组织的计算机数据和指令的集合 开发:软件的制作过程 软件开发:借助开发工具和计算机语言制作软件 2.java概述: java之父:詹姆斯·高斯林 JDK:java开发环境 jre:java运行环境 JVM:java虚拟机 java跨平台是因为,JVM能在不同的平台运行,JVM是跨平台的 JavaSE:标准版 JavaME:手机端,物联网 JavaEE:企业版,互联网项目 3.java语言特点: 简单性 解释性 面向对象 高性能 分

JavaWeb001-第一个Web项目

*从"http:localhost:8080"说起 "http://localhost:8080"是一个url.url的组成如下面部分: *当你在浏览器地址栏中输入"http:www.cdtu.com"按下回车之后, 为什么出现成都工业学院首页? 你收到的网页是从服务器来的, 呈现在现在浏览器中, 这种模型是"C/S"模型. 当你按下回车的那一刻, 你的浏览器向域名为http:www.cdtu.com的服务器发起了访问, 服务

android 高级 day01

一. 目标:独立完成Android客户端的开发 做项目,一般规模一般难度的   80% 1. 一般项目规模 15个页面左右 代码量:2~3万 2. 一般难度 稍微复杂的UI 常用的功能 有难度的功能:实时语音或视频通讯 高级职位,项目经理或架构师需要掌握的技能: 1. 精通主流手机平台下的高性能编程及性能调优 2. 熟悉设计模式 3. 有很强的解决,分析,调试技术问题的能力 二. Android项目开发流程和角色 流程:CMM 瀑布模型 大中型公司的人员配备 项目经理 1. 收集需求 售前 2.

java程序员面试题day01

Java程序员面试题day01 1.jdk和jre有什么区别?各自有什么作用? jdk是java开发的工具包,主要包含各种的类库和工具如javac/javaw/java,也包括了另外的一个jre,提供了两个不同的虚拟机,jdk的bin目录下有client和server两个文件下的jvm.dll文件:jre作为运行环境,仅仅有一个client下的jvm.dll文件. 1.如何利用jdk 编译和运行应用程序? javahome如何配置? 进入到java文件的目录下 编译语句:javac HelloW

Java基础-day01

今日内容介绍 1.Java开发环境搭建 2.HelloWorld案例 3.注释.关键字.标识符 4.数据(数据类型.常量) ###01java语言概述 * A: java语言概述 * a: Java是sun公司开发的一门编程语言,目前被Oracle公司收购,编程语言就是用来编写软件的. * b: Java的应用 * 开发QQ.迅雷程序(桌面应用软件) * 淘宝.京东(互联网应用软件) * c: Java的擅长 * 互联网:电商.P2P等等 * 企业级应用:ERP.CRM.BOS.OA等等 * d

2016最新新巴巴运动网项目实战开发

课程目录以及下载地址: 16版新巴巴-价值1.1W├─day01│ 01课程介绍│ 02开发环境│ 02项目介绍│ 04项目技术介绍│ 05系统介绍│ 06后台页面介绍│ 07前台系统页面介绍│ 08项目架构│ 09项目搭建之前的准备│ 10创建父工程│ 11创建Maven的其它工程│ 12多个Tomcat设置│ ├─day02│ 01今天内容│ 02搭建SVN服务器│ 03提交代码│ 04SVN检出│ 05导入所有jar包│ 06整合Spring+Mybatis之1│ 07Spring+Myb