一、运行环境

1.使用Navicat Premium软件,建立数据库和记录用户账号及密码(加密后)的表,或使用系统终端,输入MySQL命令,建立数据库和表;

2.使用pycharm软件,用来与数据库进行交互。

二、实现目标

1.能够记录用户注册的账号和密码,并对密码进行加密处理;

2.能够对输入的登录账号及密码,与数据库内存储的数据进行比对,账号若未匹配,则显示“该账号未注册”,对已注册账号显示“登录成功”或“密码错误”;

3.对交互代码进行封装处理。

三、代码段

1.MysqlHelper.py——python交互封装

# coding:utf-8import pymysqlclass MysqlHelper(object):def __init__(self, host,  user, password, database, port=3306, charset='utf8'):self.host = hostself.port = portself.user = userself.password = passwordself.database = databaseself.charset = charsetdef open(self):self.conn = pymysql.connect(host=self.host,port=self.port,database=self.database,user=self.user,password=self.password,charset=self.charset)self.cursor = self.conn.cursor()def close(self):self.cursor.close()self.conn.close()# 增删改def cud(self, sql, params):try:self.open()self.cursor.execute(sql, params)self.conn.commit()self.close()print('OK')except Exception:print("error")# 查询def all(self, sql, params=[]):try:self.open()self.cursor.execute(sql, params)result = self.cursor.fetchall()self.close()return resultexcept Exception:print("error")

2.registe_login_mysql.py ——实现注册或登录

# coding: utf-8from DataBaseTest import MysqlHelper
from hashlib import sha1def register():# 注册端显示内容register_name = input("请输入注册账户名称:")register_paswd = input("请输入账户密码:")sqlHelper = MysqlHelper.MysqlHelper('127.0.0.1', 'root', '数据库密码', '数据库名', 3306, 'utf8')# 对密码进行加密ss = sha1()ss.update(register_paswd.encode("utf-8"))pwd = ss.hexdigest()sql = "insert into register_login(name, password) values (%s, %s)"sqlHelper.cud(sql, (register_name, pwd))print("注册成功")def login():# 登录端显示内容login_name = input("请输入账户名称:")login_password = input("请输入账号密码:")sqlHelper = MysqlHelper.MysqlHelper('127.0.0.1', 'root', '数据库密码', '数据库名', 3306, 'utf8')# 对密码进行加密ss = sha1()ss.update(login_password.encode("utf-8"))pwd = ss.hexdigest()# 与数据库进行交互sql = "select password from register_login where name=%s"result = sqlHelper.all(sql, [login_name])# 根据返回结果进行判断if 0 == len(result):print("用户名未注册!")elif result[0][0] == pwd:print("登录成功!")else:print("密码错误!")if __name__ == "__main__":select_regis_or_login = input("注册账号输入1,登录账号输入2:")if 1 == int(select_regis_or_login):register()elif 2 == int(select_regis_or_login):login()else:print("输入错误!")

四、实现效果

数据库端显示

纠错效果

Python与MySQL交互——简易用户注册登录相关推荐

  1. 【python MySQL 笔记】python和MySQL交互、操作

    [python MySQL 笔记]python和MySQL交互.操作 目录 1. 数据准备 2.  SQL演练 2.1 SQL语句强化练习 2.2. 将一个表拆为多个表 3. python操作MySQ ...

  2. python与mysql交互详解

    python与MySQL交互 一.数据准备 二.pymysql模块的使用 三.实例的介绍 1. 面向对象的方法 完成查询 2. 添加增加功能 3.查询-->包含sql注入 4.解决sql注入 四 ...

  3. python与mysql交互下的简单购物系统

    在学习python与MySQL的交互的过程中,遇到过许多问题,磕磕盼盼的写下了一个简单的购物系统附代码如下: mysql数据表的创建sql语句 # 创建顾客表 create table GUEST_I ...

  4. 分享一个python 处理mysql的简易封装模块---directsql

    directsql​ 一个简单的使用python操作mysql的工具,提供了一些类似sql语法的方法,最终拼接成sql.可以很好地处理一些常见场景,不依赖orm 的同时避免手写大量sql,只需要数据是 ...

  5. 〖Python 数据库开发实战 - Python与MySQL交互篇⑨〗- 项目实战 - 封装数据库连接池与编写第一个业务流程(用户登录即身份校验)

    订阅 Python全栈白宝书-零基础入门篇 可报销!白嫖入口-请点击我.推荐他人订阅,可获取扣除平台费用后的35%收益,文末名片加V! 说明:该文属于 Python全栈白宝书专栏,免费阶段订阅数量43 ...

  6. 采用php与Mysql数据库完成用户注册登录等操作

    1.采用PHP与Mysql数据库,完成用户注册程序,注册表单项可自由指定,尽量包含所有表单类型,注册成功后在新页面显示注册信息,注册中需要上传的照片的操作功能使用自定义函数调用,并在注册成功后显示照片 ...

  7. python与MySQL交互

    from pymysql import connect class MysqlHelp: def init(self,database,host='localhost',user='root',pas ...

  8. 〖Python 数据库开发实战 - Python与MySQL交互篇⑯〗- 项目实战 - 实现用户管理 - 新增用户功能

    订阅 Python全栈白宝书-零基础入门篇 可报销!白嫖入口-请点击我.推荐他人订阅,可获取扣除平台费用后的35%收益,文末名片加V! 说明:该文属于 Python全栈白宝书专栏,免费阶段订阅数量43 ...

  9. 〖Python 数据库开发实战 - Python与MySQL交互篇⑭〗- 项目实战 - 实现新闻管理 - 审批新闻 功能

    订阅 Python全栈白宝书-零基础入门篇 可报销!白嫖入口-请点击我.推荐他人订阅,可获取扣除平台费用后的35%收益,文末名片加V! 说明:该文属于 Python全栈白宝书专栏,免费阶段订阅数量43 ...

  10. 〖Python 数据库开发实战 - Python与MySQL交互篇⑫〗- 项目实战- 实现新闻管理模块

    订阅 Python全栈白宝书-零基础入门篇 可报销!白嫖入口-请点击我.推荐他人订阅,可获取扣除平台费用后的35%收益,文末名片加V! 说明:该文属于 Python全栈白宝书专栏,免费阶段订阅数量43 ...

最新文章

  1. C++ 中 map 的用法
  2. 在rMBP上利用Python的onetimepass库实现Google Authenticator Application的效果
  3. win10系统搭建Tensorflow深度学习平台详细步骤
  4. hibernate延迟加载(get和load的区别)
  5. mount挂载windows共享文件夹
  6. asp利用dictionary创建二维数组
  7. 调整eclipse、SpringToolSuite4编辑器的内存大小以及显示
  8. NAND FLASH简介
  9. Ubuntu18.04设置开机启动脚本__NVIDIA Jetson xavier NX设置开机启动脚本
  10. 邮箱密码暴力破解器(代码)
  11. 小学到大学各类英语教学视频(一)
  12. 在哪里能学到计算机基础知识,电脑基础知识学习
  13. 学生个人网页设计作品 HTML+CSS+JavaScript仿小米商城(8页) 学生个人网页模板 简单个人主页成品 个人网页制作 HTML学生个人网站作业设计代做
  14. 搜集源码之github搜索语法,网盘搜索,搜索引擎等
  15. Excel如何快速填写二维表
  16. BroadcastReceiver 广播
  17. LaTex 解决目录红框问题
  18. mysql报08s01的错误_MYSQL报08S01的异常
  19. VHDL语言的数据类型
  20. elasticsearch安装与配置

热门文章

  1. 微信创建公众号,获取AppID、AppSecret以及accesstoken
  2. olcd12864的u8g2库_OLED屏显示功能-U8glib库函数大全。
  3. html 登录页面模板
  4. jt808终端鉴权_北斗终端设备通信协议(JT/T808)
  5. TI-RTOS---Semaphores
  6. iOS 应用唤起淘宝到指定商店页面
  7. Chrome快捷键与Vimium
  8. 干货|Android系统定制开发基础篇
  9. 用python爬取微博评论对鹿晗、关晓彤微博进行情感分析
  10. 观《怦然心动》之后的感悟