小菜鸟的python学习之路----信息查询系统

功能说明:python

(1)用户认证功能,只有输入对的用户名和密码后才能查询
(2)能够查员工的ID,Name,部门,电话
(3)查询的接口关键字是姓名,用户经过姓名来查其余关联相关信息。
(4)查完了输出用户信息,若是查询失败,报没有这个用户,而后循环起来
数据库


python源代码以下(经过读取外部文件来导入数据)ide

#!/usr/bin/env python
# encoding=utf-8
# author:sihaogongyuan
# date:2015-4-5
# desc:2015-4-5 test
import sys
import os
#输出系统当前的时间,并分隔####################################
print os.system('date'),'\n','#################################'
#假设数据库中的name和password都为admin
manage_name_db='admin'
manage_password_db='admin'
#################################################################
#定义死循环,使用户能够直接循环输入要查询的东西
while True:
    #让用户输入管理员名称
    manage_name=raw_input('please input your manage name:')
    #若是用户输入的管理员名称和定义的数据库中名称同样,则让用户输入管理密码
    if manage_name==manage_name_db:
        manage_password=raw_input('please input your manage password:')
        #当用户输入的管理员密码和db库中的密码不一致时,提示用户再次输入管理密码
        #直到密码输入成功
        while manage_password!=manage_password_db:
            manage_password=raw_input('manage password is error,please try again:')
        #直到用户密码输对了,跳出密码的这个while循环,执行后面的else语句
        else:
            #打印出欢迎界面,来到软件
            print '\033[32mwelcome to my contact_select_software!\033[0m'
            #定义用户查询信息代码断,涉及到用户屡次查询,因此定义while循环
            while True:
                #定义match变量,初始赋值为NO,表明不匹配
                match='NO'
                #定义select_name变量,做为被查询的用户名
                select_name=raw_input('please input you select name:')
                #若是select_name变量为空的话,提示用户从新输入用户名,直到非空
                #此时直接按回车键,表明传递过去的也是空字符串,注意
                while select_name.strip()=='':
                    select_name=raw_input('please input you select name:')
                #打开外部关联文件/tmp/python/contact.txt,默认只读模式
                select_file=file('/tmp/python/contact.txt')
                #为每次读取文件中的每一行,作一个循环
                while True:
                    #line变量的值就是每次调用readline()函数,每次取出一行内容
                    line=select_file.readline()
                    #len函数判断该行中的字符串数量,若是数量为0表明到文件末,已经读取出了
                    #最后一行,跳出读取文件的while循环
                    if len(line)==0:
                        break
                    #当要搜索的名称在该行中,输出该行全部内容
                    elif select_name in line:
                        print '%s'%(line)
                        #把变量match赋值为YES
                        match='YES'
                    else :
                        pass
                        #pass为空指令,什么都不执行
                #若是要搜索的用户名在全部的行中都没有的话,经过len(line)==0,最后break
                #跳出了读取文件内容的while循环,由于初始的match变量内容为NO,表明没有匹
                #配到,若是文件中出现过搜索的内容的话,match变量就被置为1了。
                if match!='YES':
                    print 'no match founded'
    #当用户输入的管理员帐户与db库中的管理员帐户不一致的时候,提示用户输入错了,从新输入
    #会跳到最大的while循环那去,manage_name从新接受用户的输入请求
    else:
        print 'name is not funded,try again:'

/tmp/python/contact.txt格式以下:(中间以tab键来分隔的)函数

1    xiaohogn    IT    9999999999
2    xiaopang    IT    666666666
3    xiaofei    IT    8888888888

spa

相关文章
相关标签/搜索