python綜合練習1-- 使用者登入

來源:互聯網
上載者:User

標籤:python 登入 login_main 使用者類比登陸

一 程式介紹

  1.1 檔案分布

  login_user.jpg   流程圖資訊

  README.txt

  login_main_v1.1.py  主程式

  user_config.conf   設定檔


流程圖:

650) this.width=650;" src="http://s1.51cto.com/wyfs02/M02/82/5C/wKioL1dSgS7QhNkvAAGYzFmv3t4581.jpg-wh_500x0-wm_3-wmp_4-s_2538692698.jpg" title="login_user.jpg" alt="wKioL1dSgS7QhNkvAAGYzFmv3t4581.jpg-wh_50" />


README.txt

####by cw#####

login_main_v1.1.py

#2016-06-04


程式運行說明:

1.運行程式login_main.py

2.輸入使用者名稱和密碼,Input_check()檢查使用者輸入是否正確,使用者名稱和密碼不可為空,密碼至少6位元,如果不符合規範,返回到登入介面即可輸入

3.如果合格,那麼就執行Login_check(),檢查使用者是否被鎖定,如果鎖定,則退出,如果沒有鎖定,繼續下一步

4.繼續檢查使用者Login_passwd_check(),登入使用者名稱是否正確,如果正確,就給出歡迎介面

5.如果使用者名稱和密碼不對,執行Login_Limit_Check()那麼就返回到登入介面,計數器加1,如果計數器大於了3次,那麼鎖定使用者並退出


後續可擴充的內容:

  1. 註冊使用者到mysql

  2. 鎖定使用者可以儲存到memcached/redis

  3. web展現次功能

  4. 根據後面綜合練習繼續改進


#######end README.txt###############



 user_config.conf 

#username,password,status,lock_count

chenwei ,chenwei ,N,0 

chenwei2,chenwei,Y,0

chenwei3,chenwei,Y,0


二 編碼

    具體代碼如下,有些實現方法還不夠簡單,後續第二版本最佳化

#/bin/python#coding=utf-8#by cw#2016-06-03import osUser_conf_file=‘D:\chenwei\data\user_config.conf‘User_conf_tmp=‘D:\chenwei\data\user_config_tmp.conf‘Count_limt=0def Welcome_Main():    print ‘‘‘    Welcome to Python World!!!!!!!    by cw    ‘‘‘def Read_Config_File(file,username):    ‘‘‘    :param file: 設定檔    :param username: 輸入的使用者名稱    :return: 讀取使用者設定檔,返回使用者名稱,鎖定狀態    ‘‘‘    fn=open(file)    User_conf=‘‘    Status=‘‘    Count=‘‘    Passwd=‘‘    for line in fn:        if line.split(‘,‘)[0].strip() == username: #根據使用者名稱去尋找,需要注意去掉空格          User_conf=line.split(‘,‘)[0]   #返回使用者名稱          Passwd=line.split(‘,‘)[1]  #返回密碼          Status=line.split(‘,‘)[2]  #返回狀態          Count=line.split(‘,‘)[3]  #返回次數    fn.close()    return (User_conf,Passwd,Status,Count)  # 返回狀態def Input_Check(username,passwd):    Flag=True    if len(username) == 0:        print ‘The username is NULL,please input againt!!!‘        Flag=False    if len(passwd) == 0:        print ‘The passwd is NUll,please input againt!!!!‘        Flag=False    if len(passwd) < 6:        print "The passwd length is not enough!"        Flag=False    return Flagdef Login_Lock_Check(status):     if status == ‘Y‘:         return False    #the user don‘t locked     else:         return True    #the user lockeddef Lock_Usered(file,file_tmp,username):    fn = open(file)    fn_tmp = open(file_tmp, ‘a‘)    new_line = []    for line in fn.readlines():    #讀取設定檔的每一行        if line.split(‘,‘)[0].strip() == username:            new_line.append("%s ," % username)            new_line.append("%s ," % line.split(‘,‘)[1].strip())            new_line.append(‘N,‘)            new_line.append(‘%s \n‘ % line.split(‘,‘)[3].strip())            fn_tmp.writelines(new_line)            continue        fn_tmp.writelines(line)    fn.close()    fn_tmp.close()    os.remove(file)    os.rename(file_tmp, file)while True:    Config_list=‘‘    Name = raw_input(‘Please input your name: ‘)    Passwd = raw_input(‘Please input your password: ‘)    if Input_Check(Name,Passwd) == False :     #檢查使用者名稱和密碼的規範性        continue    else:        Config_list=Read_Config_File(User_conf_file,Name)    #返回設定檔裡面的內容    if Login_Lock_Check(Config_list[2]): #返回使用者狀態        print "The user is locked"        exit()    else:        if Name == Config_list[0] and Passwd == Config_list[1]:           Welcome_Main()           exit()        else:            Count_limt = Count_limt + 1            if Count_limt == 1:                print ‘The Username or password is not right,you maybe try two!!!‘            if Count_limt == 2:                print ‘The Username or password is not right,you maybe try one!!!‘            if Count_limt >= 3:                Lock_Usered(User_conf_file,User_conf_tmp,Name)                print "user locked!!!"                exit()

本文出自 “痞子廚子戲子” 部落格,請務必保留此出處http://chenwei.blog.51cto.com/32183/1786067

python綜合練習1-- 使用者登入

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.