python怎么安装pymysql_python pymysql安装「建议收藏」

python怎么安装pymysql_python pymysql安装「建议收藏」==================mysql.connector===================最近发现mysql5.7有一个bug会引起pymysql报警,lib\site-packages\pymysql\cursors.py:170:Warning:(1265,”Datatruncatedforcolumn’使用mysql.connector可以避免该问题,安装pyth…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全家桶1年46,售后保障稳定

==================mysql.connector===================

最近发现mysql5.7有一个bug会引起pymysql报警,

lib\site-packages\pymysql\cursors.py:170: Warning: (1265, “Data truncated for column ‘

使用mysql.connector可以避免该问题,安装

python -m pip install mysql-connector

连接数据库

import mysql.connector

# 接收参数:user, password, host, port=3306, unix_socket and database

# 返回一个MySQLConnection Object

conn = mysql.connector.connect(

host=’localhost’,

user=’root’,

password=’root’,

database=’test’

)

==================pymysql===================

由于 MySQLdb 模块还不支持 Python3.x,所以 Python3.x 如果想连接MySQL需要安装 pymysql 模块。

pymysql 模块可以通过 pip 安装。但如果你使用的是 pycharm IDE,则可以使用 project python 安装第三方模块。

[File] >> [settings] >> [Project: python] >> [Project Interpreter] >> [Install按钮]

875028-20161002000403750-123452875.png

由于Python统一了数据库连接的接口,所以 pymysql 和 MySQLdb 在使用方式上是类似的:

copycode.gif

pymysql.Connect()参数说明

host(str): MySQL服务器地址

port(int): MySQL服务器端口号

user(str): 用户名

passwd(str): 密码

db(str): 数据库名称

charset(str): 连接编码

connection对象支持的方法

cursor() 使用该连接创建并返回游标

commit() 提交当前事务

rollback() 回滚当前事务

close() 关闭连接

cursor对象支持的方法

execute(op) 执行一个数据库的查询命令

fetchone() 取得结果集的下一行

fetchmany(size) 获取结果集的下几行

fetchall() 获取结果集中的所有行

rowcount() 返回数据条数或影响行数

close() 关闭游标对象

copycode.gif

==================MySQL===================

首先在连接数据库之前,先创建一个交易表,方便测试 pymysql 的功能:

copycode.gif

DROP TABLE IF EXISTS `trade`;

CREATE TABLE `trade` (

`id` int(4) unsigned NOT NULL AUTO_INCREMENT,

`name` varchar(6) NOT NULL COMMENT ‘用户真实姓名’,

`account` varchar(11) NOT NULL COMMENT ‘银行储蓄账号’,

`saving` decimal(8,2) unsigned NOT NULL DEFAULT ‘0.00’ COMMENT ‘账户储蓄金额’,

`expend` decimal(8,2) unsigned NOT NULL DEFAULT ‘0.00’ COMMENT ‘账户支出总计’,

`income` decimal(8,2) unsigned NOT NULL DEFAULT ‘0.00’ COMMENT ‘账户收入总计’,

PRIMARY KEY (`id`),

UNIQUE KEY `name_UNIQUE` (`name`)

) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8;

INSERT INTO `trade` VALUES (1,’乔布斯’,’18012345678′,0.00,0.00,0.00);

copycode.gif

==================Python===================

使用Python脚本实现增删改查和事务处理,源码如下:

copycode.gif

import pymysql.cursors

# 连接数据库

connect = pymysql.Connect(

host=’localhost’,

port=3310,

user=’woider’,

passwd=’3243′,

db=’python’,

charset=’utf8′

)

# 获取游标

cursor = connect.cursor()

# 插入数据

sql = “INSERT INTO trade (name, account, saving) VALUES ( ‘%s’, ‘%s’, %.2f )”

data = (‘雷军’, ‘13512345678’, 10000)

cursor.execute(sql % data)

connect.commit()

print(‘成功插入’, cursor.rowcount, ‘条数据’)

# 修改数据

sql = “UPDATE trade SET saving = %.2f WHERE account = ‘%s’ “

data = (8888, ‘13512345678’)

cursor.execute(sql % data)

connect.commit()

print(‘成功修改’, cursor.rowcount, ‘条数据’)

# 查询数据

sql = “SELECT name,saving FROM trade WHERE account = ‘%s’ “

data = (‘13512345678’,)

cursor.execute(sql % data)

for row in cursor.fetchall():

print(“Name:%s\tSaving:%.2f” % row)

print(‘共查找出’, cursor.rowcount, ‘条数据’)

# 删除数据

sql = “DELETE FROM trade WHERE account = ‘%s’ LIMIT %d”

data = (‘13512345678’, 1)

cursor.execute(sql % data)

connect.commit()

print(‘成功删除’, cursor.rowcount, ‘条数据’)

# 事务处理

sql_1 = “UPDATE trade SET saving = saving + 1000 WHERE account = ‘18012345678’ “

sql_2 = “UPDATE trade SET expend = expend + 1000 WHERE account = ‘18012345678’ “

sql_3 = “UPDATE trade SET income = income + 2000 WHERE account = ‘18012345678’ “

try:

cursor.execute(sql_1) # 储蓄增加1000

cursor.execute(sql_2) # 支出增加1000

cursor.execute(sql_3) # 收入增加2000

except Exception as e:

connect.rollback() # 事务回滚

print(‘事务处理失败’, e)

else:

connect.commit() # 事务提交

print(‘事务处理成功’, cursor.rowcount)

# 关闭连接

cursor.close()

connect.close()

copycode.gif

==================测试结果===================

875028-20161002001957094-148578946.png

转载:https://www.cnblogs.com/hank-chen/p/6624299.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/234391.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Pycharm使用技巧——自动调整代码格式汇总!自动化神器!

    Pycharm使用技巧——自动调整代码格式汇总!自动化神器!代码自动填充了空格问题在使用pycharm的代码编辑器时,常常懒得写空格,如下图,但这是不符合代码规范的,而且也会影响可读性。解决方法pycharm有自动调整代码格式的快捷键,默认为Alt+Ctrl+L,按下快捷键后,代码自动填充了空格。自动对齐代码问题在使用pycharm的代码编辑器时,有点时候copy的代码的没有按照代码格式对齐,如下图,但这是不符合代码规范的,而且也会影响可读性。解决方法pycharm有自动调整代码格式的快捷键,默认为Alt+Ctrl+L

    2022年8月27日
    26
  • [编剧] 尼克·皮佐拉托谈获益最多的小说——转载「建议收藏」

    [编剧] 尼克·皮佐拉托谈获益最多的小说——转载「建议收藏」[编剧] 尼克·皮佐拉托谈获益最多的小说——转载

    2022年4月21日
    36
  • 3D建模初学者必知

    3D建模初学者必知3d建模师是当下是分热门的职业,3dmax这个庞大的软件应用十分重要,它广泛应用于影视动画、游戏、广告、建筑设计等领域。许多零基础的同学面对如此庞大又复杂的软件,该如何学习呢?学习3dmax是一个长期的过程,不可急于一时,下面几个知识点是初学者必须要掌握的。1.平面图的编辑3dmax属于设计类软件,这类软件学习时必须掌握最基本的平面构图能力,场景空间大小、色彩搭配与所要展示事物的关联度都是最重要的基础。平面图就是3d空间的基础,二维空间好对三维空间的建造很有帮助。…

    2022年5月12日
    39
  • mybaits入门(含实例教程和源码)

    mybaits入门(含实例教程和源码)

    2020年11月12日
    167
  • 请描述django模板中标签的作用?_html object标签

    请描述django模板中标签的作用?_html object标签常用的模板标签if标签if标签相当于Python中的if语句,有elif和else相对应,但是所有的标签都需要用标签符号({%%})进行包裹。if标签中可以使用==、!=、<、<=、&

    2022年7月30日
    7
  • 基于python的电影推荐系统_python为什么叫python

    基于python的电影推荐系统_python为什么叫python好莱坞知名媒体THR《好莱坞报道者》,邀请了2800多名好莱坞影视从业人员,包括779名演员,365名制片人,268名导演等等,由他们选出自己最爱的剧集,最终汇总成为这个百大经典美(英)剧清单。看看你追的剧上榜了吗?看到第一名时,瞬间热泪盈眶!果然是他,最经典,没有之一!100、绝望主妇DesperateHousewives(2004-2012)ABC99、弗尔蒂旅馆FawltyTowe…

    2022年9月30日
    3

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号