python
MVC介紹影片
Learn More →
View: 負責畫面呈現
Controller: 負責流程、邏輯處理(商業邏輯)
Model: 負責資料庫、檔案讀寫
流程:
優點:畫面、商業邏輯、資料處理分開處理,結構明確減少錯誤發生,也比較好除錯
Learn More →
init.py (負責初始化設定)
import logging
logging.basicConfig(level=logging.DEBUG)
logging.info("載入init.py")
conn = r'C:\Users\test\Desktop\test.db' # 請修改成自己電腦存放路徑!!
sql = {
"add_user": "insert into user (name, account, password) values ('{0}', '{1}', '{2}')",
"check_user": "select * from user where account='{0}' and password='{1}';"
}
controller.py (負責系統邏輯處理)
import init, model, view
def main():
account, password = view.login()
status, message, response = model.check_user(account, password)
if status == "success":
print("""
1. 新增使用者
2. 修改使用者
3. 刪除使用者""")
else:
init.logging.info('status: ' + status+ ' message: ' + message)
init.logging.info('response: ' + str(response))
if __name__ == '__main__':
init.logging.info("執行controller.py")
main()
model.py (負責資料讀寫)
import sqlite3
import init
init.logging.info("載入model.py")
conn = sqlite3.connect(init.conn)
def check_user(account, password):
init.logging.info("執行model.check_user()")
try:
response = conn.execute(init.sql['check_user'].format(account, password)).fetchone()
if(response == None):
status = 'error'
message = '帳號或密碼錯誤,請重新輸入'
return status, message, response
else:
status = 'success'
message = '歡迎使用本系統'
return status, message, response
except Exception as e:
status = 'error'
message = e
return status, message, response
# def add_user(name, account, password):
# init.logging.info("執行model.add_user()")
# try:
# conn.execute(init.sql['add_user'].format(name, account, password))
# conn.commit()
# status = 'success'
# message = '成功新增使用者'
# except Exception as e:
# status = 'error'
# message = e
# return status, message
view.py (負責畫面呈現)
import init
init.logging.info("載入view.py")
def login():
init.logging.info("執行view.login()")
account = input("請輸入帳號: ")
password = input("請輸入密碼: ")
return account, password