home_work--用户登陆

前提:

  根据文本中的已有用户和密码,实现登陆的交互;在用户输入用户名后,会有一个检测用户是否被锁定的环节;如果用户三次密码输入错误,则该用户则会被添加到锁定文件中,无法登陆。

涉及到的知识点:

1.python对于文件的操作

f = open("lock","r+")

关于内建函数open()
open(name[, mode[, buffering]])
mode的常用值包括:‘r‘读文件(默认);‘w‘写文件(如果文件存在则截断之,如果文件不存在则自动创建文件);‘a‘追加(在文件的末行追加字符)。在打开二进制文件的时候,要以二进制模式打开文件,把‘b‘添加到mode值,这样可以增强可移植性。(在不区分二进制文件和文本文件的系统上,附加‘b‘仍然时有用的,它可以起到文档的目的。)
可选的buffering参数指明了文件需要的缓冲大小:0意味着无缓冲;1意味着行缓冲;{这一块需要实验进行测试,暂时未完全明白}
模式‘r+‘,‘w+‘和‘a+‘打开文件以便更新(同时读写)。注意‘w+‘会截断文件。在区分文本文件和二进制文件的系统上,在模式中附加‘b‘会以二进制模式打开文件;在不区分的系统上,添加‘b‘没有效果。

#读取文件的几种方式:

>>> f = open("lock","r+")
>>> f.read()
‘wurui   asdf\n   asjdfk\tafsf\n  fas\t\tfas  \n    999666\n\t ‘
>>> f.read()
‘‘
#文件读取完毕之后,再次读取就是空字符串,输出的是一个大的字符串。
>>> f.readline()
‘wurui   asdf\n‘
#输出的是文本中一行的内容,以\n为一个字符串的结尾,如果持续执行该命令,会依次输出文本中的每一行的内容,当读到最后,则输出为空。
>>> f.readlines()
[‘wurui   asdf\n‘, ‘   asjdfk\tafsf\n‘, ‘  fas\t\tfas  \n‘, ‘    999666\n‘, ‘123‘]
#该方法是将文本中的所有内容当作一个列表,每一行的内容则是列表中的每个元素,并且每个元素都是字符串的形式。
#关于seek()简单的提一下:
>>> f.readlines()
[‘wurui   asdf\n‘, ‘   asjdfk\tafsf\n‘, ‘  fas\t\tfas  \n‘, ‘    999666\n‘, ‘123‘]
>>> f.readlines()
[]
>>> f.seek(0)
0
>>> f.readlines()
[‘wurui   asdf\n‘, ‘   asjdfk\tafsf\n‘, ‘  fas\t\tfas  \n‘, ‘    999666\n‘, ‘123‘]

以上对文件的读取操作,如果读到了文件的最后一行,下次继续读取都会出现空字符串的现象;需要使用f.close()方法,然后重新读取文件(或者直接使用f.seek(0)也可以直接重新读取文件 )。并且程序中 每次对文件操作完成之后,都需要试用f.close()关闭文件,以释放内存。

方便起见,python中出现了如下便捷操作:

>>> with open(‘workfile‘, ‘r‘) as f:
...     read_data = f.read()
>>> f.closed
True
#该方法省去了f.closed(), 并且比try...finally更短。

2.字符串的定性处理

  此处要考虑的是如何将一个读取出来的字符串,进行去除 \n和 空格的处理,并生成一个列表。

string.strip(self, chars=None)

作用:将字符串进行指定的切除;

使用说明:返回删除前导和尾随字符的字符串的副本,若chars未指定,则默认为空格/或回车(去除两端空格部分)。

返回字符串中的单词列表,使用sep作为分隔符字符串。如果给出maxsplit,则至多拆分maxsplit次(因此,列表中将最多有maxsplit+1个元素)。如果没有指定maxsplit或为-1,那么分割的数量没有限制(进行所有可能的分割)。[若想切除\n则要指定chars]

split(self, sep=None, maxsplit=-1)

作用:将字符串分割,然后分割后的各个部分作为字符串所生成的列表元素。

使用说明:sep指定分割对象。如果sep未指定,则连续的空格被视为一个单一的分隔符,分割后的各列表元素则将自动切除空格(不包括\t和\n)。

3. for ...  else 语句

  程序运行时,如果for循环体内,并没有执行到break,exit(),return或异常语句, 则继续执行 else中的语句; 如果没有else语句,则不管for循环是否正常执行完循环体,都会执行for语句下边的语句。

时间: 2024-10-06 21:21:32

home_work--用户登陆的相关文章

PHPCMS \phpcms\modules\member\index.php 用户登陆SQL注入漏洞分析

catalog 1. 漏洞描述 2. 漏洞触发条件 3. 漏洞影响范围 4. 漏洞代码分析 5. 防御方法 6. 攻防思考 1. 漏洞描述2. 漏洞触发条件 0x1: POC http://localhost/phpcms_v9/index.php?m=member&c=index&a=login dosubmit=1&username=phpcms&password=123456%26username%3d%2527%2bunion%2bselect%2b%25272%2

用户登陆模块的后端实现

前述两篇文章“使用BootStrap制作用户登录UI”和“使用BootStrapValidator来完成前端输入验证 ”已经将用户登陆的界面和验证进行了实现,现在看看后端要做的事情(基于ThinkPHP5).举例来说,比如当学生登陆成功后则进入学生界面,在这个界面中,学生可以提交作业,查看自己作业的批改情况.当用户在前述界面中输入了用户名和密码,选择了学生用户后,点登陆,会进入dologin方法(位于controller\index\account\dologin),代码如下: public f

系统进程管理及用户登陆监控

1.图形中如何查看进程gnome-system-monitor2.如何用命令查看进程ps        进程查看工具             -a    shell中运行的进程             -x    不在shell重运行的进程         -u    查看进程用户             -l    显示进程的详细信息             -f    完全信息full的缩写             -e    显示进程的依赖关系                  -o %c

用户登陆案例

这一篇,我们用之前学习过的知识,做一个用户登陆的案例. 1. 需求分析 用户界面中进行登录判断.输错三次禁止登陆(半小时),用数据库记录ErrorTimes. 在客户端要求登陆的时候,我们需要将用户名和密码进行验证,如果输错密码的次数达到3次,就禁止用户在半小时内登陆.于是,我们就需要在数据库中记录下用户被禁止登陆的时间.如果输错密码的次数达到了3次,就判断距离禁止登陆的时间是否超过了半个小时:如果超过了,就允许用户登陆. 2. 设计表 建立用户表 t_user ErrorTimes  用户输错

ssh允许root用户登陆

新的系统无root用户密码,设置root用户密码,修改也是这么修改 sudo passwd root 连续输入两次新密码. 允许root用户登陆: /etc/ssh/sshd_config 找到 PermitRootLogin without-password 改为 PermitRootLogin yes 重启ssh sudo service ssh restart

ubuntu系统用ROOT用户登陆

ubuntu系统用ROOT用户登陆教程: 1.打开终端,首先使用命令sudo passwd root  接着输入密码 2.输入su - 切换用户权限 3.两种配置的方式 1)可以新建lightdm.conf 文件 $gedit /etc/lightdm/lightdm.conf 在其中填写入如下的内容,然后重启,选择“登陆”输入root用户密码: [SeatDefaults] user-session=ubuntu greeter-show-manual-login=true 2)也可以编辑50

IOS开发之记录用户登陆状态

今天要说的是如何记录我们用户的登陆状态.例如微信,QQ等,在用户登陆后,关闭应用在打开就直接登陆了.那么我们在App开发中如何记录用户的登陆状态呢?之前在用PHP或者Java写B/S结构的东西的时候,我们用Session来存储用户的登陆信息,Session是存在服务器上仅在一次回话中有效,如果要记录用户的登陆状态,那么会用到一个叫Cookie的东西.Cookie和Session不同,Cookie是存在用户本地的一个文件,Cookie中存的就是用户的登陆信息,当用户在此登陆时,自动从Cookie中

Session小案例------完成用户登陆

Session小案例------完成用户登陆 在项目开发中,用户登陆功能再寻常不过啦,当用户完成用户名和密码校验后,进入主界面,需要在主界面中显示用户的信息,此时用session来记住用户是最为合适不过了. 功能实现如下: 1,完成用户登陆功能 2,在主界面记住用户 3,完成用户注销功能 用户类: package cn.itcast.login; public class User{ private String username; private String password; public

后台实现显示欢迎用户登陆的方法

最近在做后台管理时,要实现欢迎用户登陆的功能,现在跟大家分享下,难度不大,就是跟大家交流一下,也算是对自己的总结.比如我们在网站的后台经常会看到欢迎某某登陆,如下图: 那么我们怎么实现这个功能呢,方法有很多,我只是说我用到的那种方法,因为我们登陆会用到session和cookies,所有我用的方法思路: 一.首先说明,当用户登陆时,我们会将用户的信息存储到session,至于为什么要存储到session,主要是为了做验证判断和取值方便, 二.写一个类存储用户的信息,判断session是否为空,不

python小程序(模拟用户登陆系统)

模拟登陆1.用户输入账号密码进行登陆2.用户信息存在文件内3.用户密码输错三次后锁定用户 知识点:strip().split().while.for循环混用以及布尔值的使用 strip()  方法用于移除字符串头尾指定的字符(默认为空格) 实例1: >> str = "0000000this is string example....wow!!!0000000"; >> print str.strip( '0' ); this is string example