小菜鳥的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

相關文章
相關標籤/搜索