1.理解程式流程
2.建立使用者表userinfos
表結構為:
id、uname、
upwd、
isdelete
注意:需要對密碼進行加密。
如果使用
md5加密,則密碼包含
32個字元;
如果使用
sha1
加密,則密碼包含
40個字元,一般推薦使用這種加密方式。
create table userinfos(
id int primary key auto_increment,
uname varchar(20),
upwd char(40),
isdelete bit default 0
);
3.加入測試資料
插入如下資料,使用者名為123,密碼為123,這是sha1加密後的值。
insert into userinfos values(0,'123','40bd001563085fc35165329ea1ff5c5ecbdbbeef',0);
4.接收輸入並驗證
建立testlogin.py檔案,引入hashlib模組(python自帶)、mysqlhelper模組(自定義)。
根據使用者名稱查詢,如果未查到則提示使用者名稱不存在;
如果查到則匹配密碼是否相等,如果相等則提示登入成功;
如果不相等則提示密碼錯誤。
#encoding=utf-8
from mysqlhelper import mysqlhelper
from hashlib import sha1
sname=input("請輸入使用者名稱:")
spwd=input("請輸入密碼:")
#對輸入的密碼spwd進行加密
s1=sha1()
s1.update(spwd)
spwdsha1=s1.hexdigest()
#通過get_one獲取最新一行的值
sql="select upwd from userinfos where uname=%s"
params=[sname]
sqlhelper=mysqlhelper('localhost',3306,'test1','root','mysql')
userinfo=sqlhelper.get_one(sql,params)
#對獲取到的值進行判別
if userinfo==none:
print('使用者名稱錯誤')
elif userinfo[0]==spwdsha1:
print('登入成功')
else:
print('密碼錯誤')
mysql17 增量備份
mysql增量備份 全備份是 增量備份一定要看日誌的時間和位置節點 mysql資料庫會以二進位制的形式,把使用者對mysql資料庫的操作記錄到檔案中,不用使用定時器了。當使用者希望恢復的時候,可以使用備份檔案進行恢復。會記錄dml語句,建立表的語句。不會記錄select語句 對資料庫本身沒有影響 會...
mysql17 增量備份
mysql增量備份 全備份是 增量備份一定要看日誌的時間和位置節點 mysql資料庫會以二進位制的形式,把使用者對mysql資料庫的操作記錄到檔案中,不用使用定時器了。當使用者希望恢復的時候,可以使用備份檔案進行恢復。會記錄dml語句,建立表的語句。不會記錄select語句 對資料庫本身沒有影響 會...
MySQL 17 數值函式
mysql中另一類很重要的函式就是數值函式,這些函式能處理很多數值方面的運算。可以想象,如果沒有這些函式的支援,我們在編寫有關數值運算方面的 時將會困難重重。舉個栗子,如果沒有abs函式,要取乙個數值的絕對值,就需要進行好多次判斷才能返回這個值,而數值函式能夠大大提高工作效率。本節將配合一些例項對m...