数据库实例:mysql与mongo结合用户登录
- 加入mongodb后登錄邏輯如下圖,將圖中nosql的位置換為mongodb即可
?
- 用戶數(shù)據(jù)存儲(chǔ)的集合名稱為py_users,文檔格式為{'uname':'用戶名','upwd':'密碼'}
- 將原來(lái)MySQL操作的代碼封裝到一個(gè)方法中,代碼如下
?
def mysql_login():
?? ?#mongodb中沒(méi)有則到mysql中查詢
??? sql='select upwd from py_users whereuname=%s'
??? params=[uname]
??? try:
??????? conn= connect(host='localhost',port=3306,database='python',user='root',password='mysql',charset='utf8')
??????? cur=conn.cursor()
???????cur.execute(sql,params)
??????? result=cur.fetchone()
??????? cur.close()
??????? if result==None:
??????????? print '用戶名錯(cuò)誤,登錄失敗,數(shù)據(jù)來(lái)源于mysql'
??????? else:
????????? ??#當(dāng)查詢到用戶及對(duì)應(yīng)的密碼時(shí),將數(shù)據(jù)加入到mongodb中,以供后續(xù)登錄使用
??????????? db.py_users.insert_one({'uname':uname,'upwd':upwd_sha1})
??????????? #判斷密碼是否正確
??????????? if result[0]==upwd_sha1:
??????????????? print '登錄成功,數(shù)據(jù)來(lái)源于mysql'
??????????? else:
??????????????? print '密碼錯(cuò)誤,登錄失敗,數(shù)據(jù)來(lái)源于mysql'
??? except Exception,e:
??????? print '登錄失敗,錯(cuò)誤原因:%s' % e
??? finally:
??????? conn.close()
?
- 創(chuàng)建user_mongodb.py文件,代碼如下
#coding=utf-8
from MySQLdb import*
from hashlib importsha1
from pymongo import*
if __name__=='__main__':
??? try:
??????? #接收輸入用戶名、密碼
??????? uname=raw_input('請(qǐng)輸入用戶名:')
??????? upwd=raw_input('請(qǐng)輸入密碼:')
#對(duì)密碼加密
??????? s1=sha1()
??????? s1.update(upwd)
??????? upwd_sha1=s1.hexdigest()
#根據(jù)用戶名查詢密碼
??????? #先到mongodb上查,沒(méi)有再到mysql上查
??????? client=MongoClient('localhost',27017)
??????? db=client.py3
??????? result=db.py_users.find_one({'uname':uname})
??????? if result==None:
??????????? mysql_login()
??????? else:
?????????? ?#mongodb中找到了這個(gè)用戶名的數(shù)據(jù)
??????????? if result['upwd']==upwd_sha1:
??????????????? print '登錄成功,數(shù)據(jù)來(lái)源于mongodb'
??????????? else:
??????????????? print '密碼錯(cuò)誤,登錄失敗,數(shù)據(jù)來(lái)源于mongodb'
??? exceptException,e:
??????? print '登錄失敗,錯(cuò)誤原因:%s'%e
總結(jié)
以上是生活随笔為你收集整理的数据库实例:mysql与mongo结合用户登录的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: python开始之路—基础中的基础
- 下一篇: 排序:插入排序与希尔排序