python3.6 下连接mysql数据库实现用户登录与注册
2017-09-08 18:57
846 查看
在python3.6中连接数据库只能使用pymysql包,安装方法直接通过pip install pymysql安装即可,较为方便。
初学者一定要做的便是用户的注册与登录,同时牵涉到数据库的相关操作,可以利用Navicat建立一个简单的数据库,在里面更新、插入一些数据。之后写python文件对数据库进行操作,我们可以写一个MysqlHelp.py文件帮助我们访问、操作数据库,更为方便。代码如下:
这段代码里的MysqlHelp类封装了对数据库的常用操作,连接数据库、查找数据、修改表等(可以自行添加)。
接下来要注意创建好数据库以及表:
以上是表的创建,也可以在可视化下操作。之后加入数据:
加入的密码值是123的sha1加密后的值,因为存入密码是肯定要加密的!之后我们就可以写python的实际操作代码,来对数据库test01进行操作。
要引入哈希算法的模块进行数据加密,加密之后用加密的数据与数据库里的数据进行对比,如果相同,则证明登陆成功。注册的操作便是利用insert方法对数据库插入数据。总体理解较为简单。代码如下:
由此便实现了简单的登录与注册,是web应用的基础。
初学者一定要做的便是用户的注册与登录,同时牵涉到数据库的相关操作,可以利用Navicat建立一个简单的数据库,在里面更新、插入一些数据。之后写python文件对数据库进行操作,我们可以写一个MysqlHelp.py文件帮助我们访问、操作数据库,更为方便。代码如下:
#coding=utf-8 import pymysql class MysqlHelper: def __init__(self,host='localhost',port=3306,db='test01',user='root',passwd='wangbo123',charset='utf8'): self.conn=pymysql.connect(host=host,port=port,db=db,user=user,passwd=passwd,charset=charset) def insert(self,sql,params): return self.__cud(sql,params) def update(self,sql,params): return self.__cud(sql,params) def delete(self,sql,params): return self.__cud(sql,params) def __cud(self,sql,params=[]): try: #用来获得python执行Mysql命令的方法,也就是我们所说的操作游标 #cursor 方法将我们引入另外一个主题:游标对象。通过游标扫行SQL 查询并检查结果。 #游标连接支持更多的方法,而且可能在程序中更好用。 cs1 = self.conn.cursor() #真正执行MySQL语句 rows=cs1.execute(sql, params) self.conn.commit() #完成插入并且做出某些更改后确保已经进行了提交,这样才可以将这些修改真正地保存到文件中。 cs1.close() self.conn.close() return rows #影响到了哪行 except Exception as e: print (e) self.conn.rollback() def fetchone(self, sql, params=[] ): #一次只返回一行查询到的数据 try: cs1 = self.conn.cursor() cs1.execute(sql , params) row = cs1.fetchone() #把查询的结果集中的下一行保存为序列 #print(row) #row是查询的值 cs1.close() self.conn.close() return row except Exception as e: print("None", e) def fetchall(self,sql,params): #接收全部的返回结果行 #返回查询到的全部结果值 try: cs1=self.conn.cursor() cs1.execute(sql,params) rows=cs1.fetchall() cs1.close() self.conn.close() return rows except Exception as e: print("None",e)
这段代码里的MysqlHelp类封装了对数据库的常用操作,连接数据库、查找数据、修改表等(可以自行添加)。
接下来要注意创建好数据库以及表:
create table userinfos( id int primary key auto_increment, uname varchar(20), upwd char(40), isdelete bit default 0 );
以上是表的创建,也可以在可视化下操作。之后加入数据:
insert into userinfos values(0,'123','40bd001563085fc35165329ea1ff5c5ecbdbbeef',0);
加入的密码值是123的sha1加密后的值,因为存入密码是肯定要加密的!之后我们就可以写python的实际操作代码,来对数据库test01进行操作。
要引入哈希算法的模块进行数据加密,加密之后用加密的数据与数据库里的数据进行对比,如果相同,则证明登陆成功。注册的操作便是利用insert方法对数据库插入数据。总体理解较为简单。代码如下:
#coding=utf-8 from MysqlHelper import MysqlHelper from hashlib import sha1 #注册 uname=input("请输入用户名:") upwd=input("请输入密码:") s1 = sha1() #初始化sha1对象 s1.update(upwd.encode('utf-8')) #对s1进行更新 upwd2 = s1.hexdigest() #加密 sql = 'insert into userinfos(username, upwd) values(%s,%s)' #sql语句 这是小写 params = [uname,upwd2] #将插入的值存入列表中 helper = MysqlHelper() #将sql语句以及值传给对象中的方法 row = helper.insert(sql,params) #返回的是受到改变的行 print (row) #登录 uname = input("请输入用户名:") upwd = input("请输入密码:") s1 = sha1() s1.update(upwd.encode()) upwd2 = s1.hexdigest() sql = "SELECT upwd from userinfos where username = %s " #大写也可以 params = [uname] helper = MysqlHelper() result = helper.fetchone(sql, params) if result == None: print ('用户名错误') elif result[0] == upwd2: print ('登录成功') else: print ('密码错误')
由此便实现了简单的登录与注册,是web应用的基础。
相关文章推荐
- 用python连接数据库,实现用户注册和用户登录
- java 与数据库连接 实现用户的注册和登录
- 用Python实现web端用户登录和注册功能的教程
- struts2连接数据库实现用户注册与登录
- 在pycharm2017 上实现python3.6与mysql数据库的连接
- Python 实现简单的用户注册和登录
- java利用jdbc连接Mysql数据库——实现登录注册功能
- python实现的简单用户注册登录系统
- 用Python实现web端用户登录和注册功能的教程
- Python学习笔记_02:使用Tkinter连接MySQL数据库实现登陆注册功能
- java连接MySql数据库 实现用户登录功能
- MyEclipse下jsp连接mysql数据库实现用户登录
- javaWeb 简单注册登录(含数据库连接) -- (三) 实现用户注册请求的响应
- Python入门——简单明了的实现:用户注册及登录
- java 与数据库连接 实现用户的注册和登录
- node.js---study2 连接池连接数据库实现登录注册查询用户的功能---
- Servlet 实现用户登录验证以及连接mysql数据库
- Unity C# 连接SQL Server数据库,实现获取和添加登录注册的用户列表
- jsp连接mysql数据库,实现含验证码的用户登录
- 【J2EE核心开发学习笔记 010】struts2的搭建及连接数据库实现用户注册与登录