[ Python ]- 建立一簡易小型帳戶登入系統

<!--more-->





使用Python語法撰寫程式為一小型帳戶登入系統:

先來看程式print 出來的結果吧^_^



首先執行程式時會顯示 menu 供 User 輸入選項, 選項1.為建立帳號密碼 2.為顯示目前帳戶資訊
3.為修改密碼 4. 可刪除帳號 , 輸入0為離開程式



首先我們先輸入選項 2 來查看目前是否已經有帳號密碼存在, 上圖為輸入選項2之後的結果,目前帳號密碼為空值, 開始來建立帳號吧~~~~




返回主選單後輸入選項1.來建立帳號




在請輸入欲設定的帳號和密碼, 新增完成按任意鍵返回主選單



返回主選單後再次輸入選項 2 來查詢目前已有的帳號密碼,




這時就能看到方才輸入的帳號密碼的存在囉~~~~~




我們再來新增一組帳號吧~~~~





新增輸入第二組帳號後再次選擇選項2查詢後就會再多一組帳號密碼囉~~~



再來測試選項 3.  執行修改密碼


輸入剛剛曾建立的 123帳號,舊密碼為:222。   輸入完後再輸入欲修改的新密碼




修改完成後再次返回主選單, 可以看到123帳號從原本舊密碼222變成了 555



再來測試選項4 來刪除帳號



以上範例選擇 帳號 123 進行刪除 , 再按確定時會在請 User 輸入 Y 或 N 來判斷是否確定刪除






再次輸入選項 2. 查詢帳號密碼, 可以看到目前帳號只剩下 321 , 帳號123 已經被刪除囉 ^_^




================ 以下附上程式碼 =================

import sqlite3,os
#自定函式menu定義選項功能表
def menu():
    os.system("cls")
    print("帳號、密碼管理系統")
    print("---------------------")
    print("1.輸入帳號、密碼")
    print("2.顯示帳號、密碼")
    print("3.修 改 密 碼")
    print("4.刪除帳號、密碼")
    print("0.結 束 程 式")
    print("---------------------")
   
    #自定函式 input_data建立帳號和密碼
def input_data():
    #建立 cursor 物件
    cursor = conn.cursor()
    #建立一個資料表
    sqlstr = 'CREATE TABLE IF NOT EXISTS password \
    ("name" Text PRIMARY KEY NOT NULL, "pass" TEXT)'
    cursor.execute(sqlstr)
    # 新增一筆記錄
    name=input('請輸入您欲新增的帳號:')
    passwd=input('請輸入您欲新增的密碼:')
    sqlstr="insert into password values('{}','{}')".format(name,passwd)
    cursor.execute(sqlstr)
    conn.commit()#主動更新
    input('新增帳號完成, 請按任意鍵返回主選單')
   
    #自定函式disp_data顯示所有的帳號和密碼
def disp_data():
    # 讀取 password 資料表所有資料,並以 cursor 傳回
    cursor = conn.execute('select * from password')
    print('帳號\t密碼') #顯示所有 cursor 資料
    print("================")
    for row in cursor:
        print('{}\t{}'.format(row[0],row[1]))
    input('按任意鍵返回主選單')

    #輸入新密碼取代就密碼,並將資料寫回資料庫中
def chang_data():
    while True:
        name = input('請輸入帳號:')
        password = input('請輸入新密碼:')
        sqlstr = "update password set pass='{}' \
        where name='{}'".format(password,name)
        conn.execute(sqlstr)
        conn.commit()
        input('密碼更改完畢,請按任意鍵返回主選單')
        break
def delete_data():
    while True:
        name = input('請輸入要刪除的帳號(Enter==>停止輸入)')
        #如果帳號不存在,不允許刪除
        if name =="":break
        sqlstr = "select * from password where name='{}'".format(name)
        cursor = conn.execute(sqlstr)
        row = cursor.fetchone()
        if row == None:
            print('{} 帳號不存在 !'.format(name))
            continue
        print('確定刪除{}的資料:'.format(name))
        #確認刪除後,刪除指定的帳號,並將資料寫回資料庫中
        yn = input('(Y(確定刪除)/N(返回上一步))?')
        if (yn=='Y' or yn=='y'):
            sqlstr = "delete from password where name='{}'".format(name)
            conn.execute(sqlstr)
            conn.commit()
            input('已刪除完畢,請按任意鍵返回主選單')
            break
# 主程式從此開始
conn = sqlite3.connect('Sqlite01,sqlite')#建立資料庫連線
#依 choice 的輸入值,執行各項操作
while True:
    menu()
    choice = int(input('請輸入您的選擇:'))
    print()
    if choice ==1:
        input_data()
    elif choice ==2:
        disp_data()
    elif choice ==3:
        chang_data()
    elif choice ==4:
        delete_data()
    else:
        break
conn.close()#關閉資料庫連線
print('程式執行完畢')
   
   
       
   
















































































留言

熱門文章