MySQL(17) 使用者登入例項

2021-08-21 05:00:42 字數 1476 閱讀 6622

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...