资源简介

自己在学习pyton时写的一个小程序,实现从MySQL中抽取数据,实现注册和登陆,修改密码等。

资源截图

代码片段和文件信息

#!/usr/bin/python3

import MySQLdb
import hashlib

def Register(username password):
# 调用hashlib里的方法,生成哈希值
    md5 = hashlib.md5()

    #md5.update(password + ‘wpy‘ + username)
    md5.update(password.encode(“utf8“))
    md = md5.hexdigest()
# 生成哈希值
    realpassword = md
# insert进数据库
    sql = “INSERT INTO LOGIN(USERNAME PASSWORD) VALUES(‘%s‘ ‘%s‘)“ % (username realpassword)
    try:
        cursor.execute(sql)
# 必须commit,否则数据库不会更新
        db.commit()
    except:
        db.rollback()


def Login(username password):

# 与Register()里生成哈希值的方法一样

    md5 = hashlib.md5()
    #md5.update(password + ‘wpy‘ + username(“utf8“))
    md5.update(password.encode(“utf8“))
    md = md5.hexdigest()
    realpassword = md
    sql = “SELECT PASSWORD FROM LOGIN WHERE USERNAME = ‘%s‘“ % (username)
    cursor.execute(sql)
# username是主键,至多有一条纪录
    pwd = cursor.fetchone()[0]
# 返回布尔值
    if pwd == realpassword:
        return True
    else:
        return False


def Update(username password):
    md5 = hashlib.md5()
    #md5.update(password + ‘wpy‘ + username)
    md5.update(password.encode(“utf8“))
    print (“更新数据“)
    md = md5.hexdigest()
    realpassword = md
    sql = “UPDATE LOGIN SET PASSWORD = ‘%s‘ WHERE USERNAME = ‘%s‘“ %(realpassword username)
    try:
        cursor.execute(sql)
        db.commit()
    except:
        db.rollback()
        db = MySQLdb.connect(“127.0.0.1“ “(root)“ “(123456)“ “text“)
        cursor = db.cursor()
        cursor.execute(“CREATE TABLE LOGIN(USERNAME VARCHAR(20) PRIMARY KEY PASSWORD VARCHAR(40))“)


        
        
# 最外面的一层循环,控制系统的结束
while True:
# 根据用户的输入,决定系统是否终止
    db = MySQLdb.connect(“localhost“ “root“ “123456“ “text“)
    cursor = db.cursor()
    start = input(“You want to (R)egister or (L)ogin or (U)pdate?“)
# 判断
    if start.lower() == ‘r‘:
        while True: #用户可以输入多次username
            username = input(“Please input your new name:“)
            sql = “SELECT PASSWORD FROM LOGIN WHERE USERNAME = ‘%s‘“ % username
# 查询不到结果返回None
            m = cursor.execute(sql)
            if m:
                print (“‘%s‘ has already existed.Please change your name.“ %username)
# 输入错误的话重新循环
                continue
            else:
                password = input(“Please input your password:“)
                Register(username password)
                print (“Register sucessfully!“)
                break

评论

共有 条评论