unity 使用mysql實現登錄注冊_用mysql實現登錄注冊功能

1、創建用戶表

表結構如下

id

uname

upwd

isdelete

注意:需要對密碼進行加密。

如果使用md5加密,則密碼包含32個字符。

如果使用sha1加密,則密碼包含40個字符,這里使用這種方式。

md5加密方式:

import hashlib

pwd = '123456'

my_md5 = hashlib.md5()

my_md5.update(pwd.encode('utf-8'))

print(my_md5.hexdigest())

sha1加密方式:

import hashlib

pwd = '123456'

my_sha1 = hashlib.sha1(pwd.encode('utf-8'))

print(my_sha1.hexdigest())

創建表

create table userinfos(

id int primary key auto_increment,

uname varchar(20),

upwd char(40),

isdelete bit default 0

);

2、接收輸入并驗證

1)創建testLogin.py文件,引入hashlib模塊、MysqlHelper模塊。

2)接收輸入。

3)根據用戶名查詢,如果未查到則提示用戶名不存在。

4)如果查到則匹配密碼是否相等,如果相等則提示登錄成功,如果不相等則提示密碼錯誤。

3、完整代碼(用于測試)

from pymysql import *

from hashlib import *

class MysqlHelper(object):

def __init__(self, host, port, db, user, passwd, charset='utf8'):

self.host = host

self.port = port

self.db = db

self.user = user

self.passwd = passwd

self.charset = charset

def connect(self):

self.conn = connect(host = self.host, port = self.port, db = self.db, user = self.user,

passwd = self.passwd, charset = self.charset)

self.cursor = self.conn.cursor()

def close(self):

self.cursor.close()

self.conn.close()

def __edit(self, sql, params = None):

self.cursor.execute(sql, params)

self.conn.commit()

def insert(self,sql, params = None):

self.__edit(sql, params)

def delete(self,sql, params = None):

self.__edit(sql, params)

def update(self,sql, params=None):

self.__edit(sql, params)

def select_one(self, sql, params=None):

result = None

try:

self.cursor.execute(sql, params)

result = self.cursor.fetchone()

except Exception as e:

print(e)

return result

def select_all(self, sql, params=None):

self.cursor.execute(sql, params)

return self.cursor.fetchall()

def do_md5(value):

my_md5 = md5()

my_md5.update(value.encode('utf-8'))

return my_md5.hexdigest()

def do_sha1(value):

my_sha1 = sha1(value.encode('utf-8'))

return my_sha1.hexdigest()

def register():

username = input('輸入用戶名:')

userpwd = input('輸入密碼:')

userpwd = do_md5(userpwd)

helper = MysqlHelper('192.168.14.57', 3306, 'laowang', 'root', '123')

helper.connect()

userinfo = helper.select_one("select uname from userinfos where uname=%s", username)

if userinfo == None:

sql = 'insert into userinfos(uname,upwd) values(%s,%s)'

params = [username, userpwd]

helper.insert(sql, params)

helper.close()

print('注冊成功!')

elif userinfo[0] == username:

print('失敗!該用戶名已注冊!請重新輸入...')

return

def enter():

username = input('輸入用戶名:')

userpwd = input('輸入密碼:')

userpwd = do_md5(userpwd)

helper = MysqlHelper('192.168.14.57', 3306, 'laowang', 'root', '123')

helper.connect()

sql = "select upwd from userinfos where uname=%s"

params = [username]

userinfo = helper.select_one(sql, params)

if userinfo == None:

print('用戶名錯誤')

elif userinfo[0] == userpwd:

print('登錄成功')

else:

print('密碼錯誤')

if __name__ == '__main__':

while True:

num = int(input('請選擇 1、登錄 2、注冊 3、退出 :'))

if num == 1:

enter()

elif num == 2:

register()

else:

break

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/533822.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/533822.shtml
英文地址,請注明出處:http://en.pswp.cn/news/533822.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

python爬電影_使用Python多線程爬蟲爬取電影天堂資源

最近花些時間學習了一下Python,并寫了一個多線程的爬蟲程序來獲取電影天堂上資源的迅雷下載地址,代碼已經上傳到GitHub上了,需要的同學可以自行下載。剛開始學習python希望可以獲得寶貴的意見。 先來簡單介紹一下,網絡爬蟲的基本實…

打不開磁盤配額linux,九度OJ 1455 珍惜現在,感恩生活 -- 動態規劃(背包問題)...

題目描述:為了挽救災區同胞的生命,心系災區同胞的你準備自己采購一些糧食支援災區,現在假設你一共有資金n元,而市場有m種大米,每種大米都是袋裝產品,其價格不等,并且只能整袋購買。請問&#xf…

erp 維護費 要交嗎_ERP系統維護費

今年8月,SAP中國公司宣布2009年1月1日前將由傳統支持服務轉向企業級支持服務(SAP Enterprise Support)。同時將開始實施漸進式定價方案,并預計在2012年之前,逐漸將所有客戶從現行的SAP Standard/Premium Support的定價協議過渡為SAP Enterpri…

sentinel 端口_Sentinel原理:控制臺是如何獲取到實時數據的

Sentinel 系列教程,現已上傳到 github 和 gitee 中:GitHub:https://github.com/all4you/sentinel-tutorialGitee:https://gitee.com/all_4_you/sentinel-tutorialSentinel 能夠被大家所認可,除了他自身的輕量級&#x…

linux桌面時區設置,如何在Ubuntu 20.04上設置或更改時區

對于許多與系統相關的任務和進程,使用正確的時區至關重要。 例如,cron守護程序使用系統的時區執行cron作業,而日志文件中的時間戳基于系統的同一時區。在Ubuntu上,系統的時區是在安裝過程中設置的,但以后可以輕松更改。…

ironpython2.7.9_IronPython下載

IronPython是一種在 .NET 及 Mono上的 Python 實現,由微軟的 Jim Hugunin所發起,是一個開源的項目,基于微軟的DLR引擎;托管于微軟的開源網站 CodePlex。IronPython 的官方并未實現 Python通用類庫,僅實現了部分核心類。…

python 最小二乘回歸 高斯核_「機器學習」一文讀懂線性回歸、嶺回歸和Lasso回歸...

點擊上方藍色字體,關注AI小白入門喲作者 | 文杰編輯 | yuquanle本文介紹線性回歸模型,從梯度下降和最小二乘的角度來求解線性回歸問題,以概率的方式解釋了線性回歸為什么采用平方損失,然后介紹了線性回歸中常用的兩種范數來解決過…

天宮初級認證答案_跨境電商人才初級認證試題以及答案

跨境電商人才初級認證試題以及答案跨境電商人才初級認證試題一,單選題(共40題,每題1分,共40分)1.在拍攝反光性產品時,就是從哪個角度進行拍攝的A、正面B、側面參考答案:B2.信用證就是一種( )信用A、商業B、銀行C、民間D、企業參考答案:B3、阿里巴巴專業術語中,MA的全…

Linux打包軟件版本帶時間,帶你寫一個 linux 下的打包軟件 tar

相信你對 linux 的 .tar.gz 有點熟悉,這就是先 tar 打包(.tar 后綴),再對此 tar 文件用 gzip 壓縮(.tar.gz)的后綴名。值得注意的是, tar 不是壓縮軟件,它只做把一堆文件/文件夾打包到一個文件(tar 文件)里的事情,而文…

優先隊列默認是小頂堆嗎_一分鐘帶你讀懂什么是堆?

堆其實就是一種特殊的隊列——優先隊列。 普通的隊列游戲規則很簡單:就是先進先出;但這種優先隊列搞特殊,不是按照進隊列的時間順序,而是按照每個元素的優先級來比拼,優先級高的在堆頂。 這也很容易理解吧,…

螺旋測微器b類不確定度_物理實驗直測量不確定度評估.ppt

物理實驗直測量不確定度評估直接測量不確定度評估 Gauss分布 測量列的平均值、標準差 A類不確定度 t分布 B類不確定度 直接測量的合成不確定度 Gauss分布 也稱正態分布。 δ的平均值等于0、方差為σ。 特征: 對稱性——大于平均值與小于平均值的概率相等&#xff1b…

python 執行shell_python執行shell命令的方法

python執行shell命令的方法 os模塊 os.system方式: import os os.system(top) os.system(cat /proc/cpuinfo) 說明 這個調用相當直接,且是同步進行的,程序需要阻塞并等待返回。 返回值是依賴于系統的,直接返回系統的調用返回值&am…

linux下c語言讀取roed文件,如何在Linux系統上安裝Android4.4.docx

Android (x86)項目致力于移植 Android系統到X86處理器上,使用戶可以更容易的在任何電腦上安裝Android。他們通過使用android源碼,增加補丁來使 Android能夠在X86處理器,筆記本電腦和平板 電腦下工作。前一段時間,項目組發布了最新…

微信小程序setinterval_簡單談談setTimeout與setInterval

感謝踩過的坑sf社區的第一篇文章。最近在做一個拍賣的微信小程序,用到了定時器setTimout和setInterval,簡單談談這兩個api。setTimeout最常見的用法就是第二種(第三種mdn文檔不推薦),如:var timeoutId setTimeout(function() {console.log(hello world!…

python 注釋一段話_Python快速入門(一)

引言Python作為一個,目前最火的編程語言之一,已經滲透到了各行各業。它易學好懂,擁有著豐富的庫,功能齊全。人生苦短,就用Python。這個快速入門系列分為六篇,包含了Python大部分基礎知識,每篇閱…

linux ibus獲取窗體位置,Ubuntu 12.04 顯示ibus 的輸入框

在虛擬機中安裝了Ubuntu 12.04,系統是英文版本的,我能接受,但是苦于沒有中文輸入法。起先,我是安裝SCIM,結果我折騰了半天,發現其只能在lib-office下使用。firefox,文字編輯器中都不能調出SCIM。無奈將其卸…

transporter上傳卡正在交付_【iOS】Xcode11使用Transporter將APP上傳到App Store,卡在正在驗證APP...

問題:在使用Transporter時,會卡主,一直顯示正在驗證APP在這里插入圖片描述解決方案一:利用V-P-N在這里插入圖片描述使用安全上網(V-P-N),雙擊打開iTMSTransporter,等待幾分鐘lichuangMacBook-Pro-3 ~ % /Ap…

python練手經典100例微盤_20個Python練手經典案例,能全做對的人確實很少!

100個Python練手小程序,學習python的很好的資料,覆蓋了python中的每一部分,可以邊學習邊練習,更容易掌握python。 如果你感覺學不會?莫慌,小編推薦大家加入群, 前面548中間377后面875&#xff0…

小紅帽linux各功能中英,英文短劇《小紅帽》劇本臺詞完整版---中英對照文本版...

大灰狼和小紅帽的故事紅帽第一場:小紅帽家 媽媽: (媽媽拿著一個籃子,把桌子上的水果放在籃子里) 小紅帽唱著歌,歡快地跑進來)Hi,mummy, what are you doing? 嘿,媽媽 你在什么? 媽媽: (一邊把水…

uipath循環datatable_UiPath之DataTable轉換為List和Array

今天給大家分享一下,如何將DataTable轉為List和Array,為此小U也花了不少時間研究,最后發現沒有那么復雜。先來說說List和Array的區別:List:就像一個鏈條,存儲數據的空間可以不連續。Array:就像一…