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.mzph.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:就像一…