十五、Python操作mysql数据库

利用Navicat Premium 15软件连接mysql数据库,新建testdb数据库,并添加2个表usertest和userinfo。

 

main.py

#!/usr/bin/python3
# -*- coding: utf-8 -*-
import reimport pymysql  # 导入模块myConn = pymysql.connect(host='127.0.0.1',  # 主机模块port=3306,  # 端口号user='root',  # 用户名password='root',  # 密码database='testdb',  # 需要连接的数据库charset='utf8'  # 指定编码utf8
)if __name__ == '__main__':# myCursor = myConn.cursor()  # 获取游标,默认游标类型为元组形式myCursor = myConn.cursor(pymysql.cursors.DictCursor)  # 获取的查询结果更加规范化 便于分辨sql = "select * from userTest;"row_count = myCursor.execute(sql)  # row_count 受影响的行数for x in myCursor.fetchall():  # 取出所有的print(x)try:# ===插入记录===sql = "INSERT INTO userTest(id,name,age) VALUES(%s, %s, %s)"val = (6, "John", 23)myCursor.execute(sql, val)  # 执行sql语句"""val = [(7, "Lily", 30),(8, "Martin", 35),(9, "Sally", 32)]myCursor.executemany(sql, val)  # 插入多行数据时,执行sql语句"""# ===修改记录===# 以字符串形式书写SQL语句sql = "update userTest set name = '刘琪' where name = '韩寒'; "# 执行SQL语句row_count = myCursor.execute(sql)# ===删除记录===# 以字符串形式书写SQL语句sql = "delete from userTest where name= '王五' ;"# 执行SQL语句row_count = myCursor.execute(sql)myConn.commit()  # 增删改操作时,需要进行提交except Exception as err:# 检查异常原因是否是感兴趣的result1 = re.search('Duplicate entry.*key.*PRIMARY', str(err))# 如果是,什么都不用做# 否则(也不知道是什么原因),那就回滚吧if result1 is None:myConn.rollback()raisemyCursor = myConn.cursor(pymysql.cursors.DictCursor)  # 获取的查询结果更加规范化 便于分辨sql = "select * from userTest;"row_count = myCursor.execute(sql)  # row_count受影响的行数for x in myCursor.fetchall():  # 取出所有的print(x)# =====使用数据来进行一下用户名和密码的认证操作======myCursor = myConn.cursor(pymysql.cursors.DictCursor)usr = input('请输入用户名:').strip()pwd = input('请输入密码:').strip()# 当已知用户名时 破解密码为 (feng'-- dfadasdad)# 当未知用户名密码时 破解密码为 (fsdf' or 1=1 -- fdsfsdfs)try:sql = "select * from userinfo where username='%s' and password='%s';" % (usr, pwd)# res我们说是得到的行数,如果这个行数不为零,说明用户输入的用户名和密码存在,如果为0说明不存在row_count = myCursor.execute(sql)  # pymysql 模块会自动将输入的特殊字符删除print(row_count)  # 如果输入的用户名和密码错误,这个结果为0,如果正确,这个结果为1if row_count:print('登陆成功')else:print('用户名和密码错误!')except Exception as err:# 检查异常原因是否是感兴趣的result1 = re.search('Duplicate entry.*key.*PRIMARY', str(err))# 如果是,什么都不用做# 否则(也不知道是什么原因),那就回滚吧if result1 is None:myConn.rollback()raisemyCursor.close()  # 关闭游标myConn.close()  # 关闭连接

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/546661.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

面试必备的分布式事物方案

四月初,去面试了本市的一家之前在做办公室无人货架的公司,虽然他们现在在面临着转型,但是对于我这种想从传统企业往互联网行业走的孩子来说,还是比较有吸引力的。在面试过程中就提到了分布式事物问题。我又一次在没有好好整理的问…

记住:永远不要在MySQL中使用UTF-8

原文地址:https://dwz.cn/QS4wLyjh最近我遇到了一个bug&#xff0c;我试着通过Rails在以“utf8”编码的MariaDB中保存一个UTF-8字符串&#xff0c;然后出现了一个离奇的错误&#xff1a;Incorrect string value: ‘\xF0\x9F\x98\x83 <…’ for column ‘summary’ at row 1我…

面试官:不使用synchronized和lock,如何实现一个线程安全的单例?

单例&#xff0c;大家肯定都不陌生&#xff0c;这是Java中很重要的一个设计模式。稍微了解一点单例的朋友也都知道实现单例是要考虑并发问题的&#xff0c;一般情况下&#xff0c;我们都会使用synchronized来保证线程安全。那么&#xff0c;如果有这样一道面试题&#xff1a;不…

Mac OS X中配置Apache

我使用的Mac OS X版本是10.8.2&#xff0c;Mac自带了Apache环境。 启动Apache设置虚拟主机启动Apache 打开“终端(terminal)”&#xff0c;输入 sudo apachectl -v&#xff0c;&#xff08;可能需要输入机器秘密&#xff09;。如下显示Apache的版本 接着输入 sudo apachectl st…

你真的理解零拷贝了吗?

作者&#xff1a;ksfzhaohui 来源&#xff1a;http://t.cn/ESALgwV前言从字面意思理解就是数据不需要来回的拷贝&#xff0c;大大提升了系统的性能&#xff1b;这个词我们也经常在java nio&#xff0c;netty&#xff0c;kafka&#xff0c;RocketMQ等框架中听到&#xff0c;经常…

一、华为鸿蒙开发HUAWEI DevEco Studio下载、安装与配置

一、HUAWEI DevEco Studio下载 https://developer.harmonyos.com/cn/develop 二、HUAWEI DevEco Studio安装 解压后&#xff0c;双击安装包。 打开启动 DevEco Studio 三、DevEco Studio配置 DevEco Studio开发环境需要依赖于网络环境&#xff0c;需要连接上…

从JDK中,我们能学到哪些设计模式?

作者&#xff1a;肥朝 来自&#xff1a;肥朝&#xff08;ID&#xff1a;feichao_java&#xff09;结构性模式&#xff1a;适配器模式&#xff1a;常用于将一个新接口适配旧接口肥朝小声逼逼&#xff1a;在我们业务代码中经常有新旧接口适配需求&#xff0c;可以采用该模式。桥…

二、华为鸿蒙开发DevEco Studio运行第一个Hello World工程

1.打开DevEco Studio,创建一个Empty Ability(Java)工程,工程类型:Application 2.按照下图,Tools->Device Manager打开设备管理

解析url

2019独角兽企业重金招聘Python工程师标准>>> #include <stdio.h> #include <string.h> #include <stdlib.h>// 解析url&#xff0c;作为示例&#xff0c;很多情况没考虑&#xff0c;比如说user,pass之类的 int parse_url(char *url, char **serve…

面试官:讲一下Jvm中如何判断对象的生死?

但凡问到 JVM&#xff08;Java 虚拟机&#xff09;通常有 99% 的概率一定会问&#xff0c;在 JVM 中如何判断一个对象的生死状态&#xff1f;判断对象的生死状态的算法有以下几个&#xff1a;1、引用计数器算法引用计算器判断对象是否存活的算法是这样的&#xff1a;给每一个对…

三、华为鸿蒙HarmonyOS应用开发HUAWEI DevEco Studio实现页面跳转

在上一节二、华为鸿蒙开发DevEco Studio运行第一个Hello Word工程 基础上进行下面步骤。 在Java UI框架中,提供了两种编写布局的方式:在XML中声明UI布局和在代码中创建布局。这两种方式创建出的布局没有本质差别,为了熟悉两种方式,我们将通过XML的方式编写第一个页面,通过…

MVVM架构~前台后台分离的思想与实践

返回目录 MVVM是一种架构思想&#xff0c;是一种解决问题的方式&#xff0c;对于一个项目&#xff0c;一个功能模块&#xff0c;你可以选择使用&#xff2d;&#xff36;&#xff36;&#xff2d;的架构来实现&#xff0c;而knockoutjs只是实现MVVM的一种工具&#xff0c;它是在…

Java中所有锁介绍

在读很多并发文章中&#xff0c;会提及各种各样锁如公平锁&#xff0c;乐观锁等等&#xff0c;这篇文章介绍各种锁的分类。介绍的内容如下&#xff1a;1.公平锁 / 非公平锁2.可重入锁 / 不可重入锁3.独享锁 / 共享锁4.互斥锁 / 读写锁5.乐观锁 / 悲观锁6.分段锁7.偏向锁 / 轻量…

python深拷贝,浅拷贝,赋值引用

1.在python中&#xff0c;对象赋值实际上是对象的引用。当创建一个对象&#xff0c;然后把它赋给另一个变量的时候&#xff0c;python并没有拷贝这个对象&#xff0c;而只是拷贝了这个对象的引用 &#xff08;1&#xff09;直接赋值,默认浅拷贝传递对象的引用而已,原始列表改变…

pjtool用到的数据库----oracle范畴

PL/SQL Developer 专门面向Oracle数据库存储程序单元的开发 PL/SQL&#xff1a;过程化SQL语言转载于:https://www.cnblogs.com/ejllen/p/3684890.html

如何让mysql索引更快一点

后端开发&#xff0c;公众号内容包括但不限于 python、mysql、数据结构和算法、网络协议、Linux。技术人怎能只有技术和代码&#xff0c;如果你对投资理财、保险&#xff0c;英语学习、读书写作有兴趣&#xff0c;都欢迎来公众号【谭某人】与我交流&#xff0c;你总会有些收获。…

将本地项目上传到码云(gitee)远程仓库

前提条件&#xff1a; 1、本地电脑上已经安装了 git客户端&#xff0c;未安装的&#xff0c;具体安装过程可以参考此安装链接&#xff1a;https://blog.csdn.net/ezreal_tao/article/details/81609883 2、用户已经在gitee码云上注册完成 具体操作步骤&#xff1a; 1、登录码云…

单线程的Redis为什么却能支撑高并发?

作者&#xff1a;Draveness原文链接&#xff1a;draveness.me/redis-io-multiplexing最近在看 UNIX 网络编程并研究了一下 Redis 的实现&#xff0c;感觉 Redis 的源代码十分适合阅读和分析&#xff0c;其中 I/O 多路复用&#xff08;mutiplexing&#xff09;部分的实现非常干净…

在Windows10上安装WSL使用binwalk命令

Windows 10 推出的WSL 功能可以协助我们直接使用binwalk 分析Windows 内的文件 一、WSL 准备 1、打开控制面板→应用→程序和功能→启动或关闭Windows 功能&#xff0c;打开“适用于Linux 的Windows 子系统”和“虚拟机平台”&#xff0c;随后需要重启。 2、打开Windows 10 自…

最详细的 IDEA调试教程

Debug用来追踪代码的运行流程&#xff0c;通常在程序运行过程中出现异常&#xff0c;启用Debug模式可以分析定位异常发生的位置&#xff0c;以及在运行过程中参数的变化。通常我们也可以启用Debug模式来跟踪代码的运行流程去学习三方框架的源码。在Intellij IDEA中使用好Debug&…