驱动安装

安装MySQL驱动

由于MySQL服务器以独立的进程运行,并通过网络对外服务,所以,需要支持Python的MySQL驱动来连接到MySQL服务器。MySQL官方提供了mysql-connector-python驱动,但是安装的时候需要给

支持的版本Python versions v2.6, v2.7 and Python v3.1 to 3.3 (See version overview)

实现Python DB API 2.0 (PEP 249)。

纯Python MySQL协议的实现。

Oracle积极开发和维护。官方维护的库。

包括Django数据库后端。

pip命令加上参数--allow-external:

$ pip install mysql-connector-python --allow-external mysql-connector-python

如果上面的命令安装失败,可以试试另一个驱动:

$ pip install mysql-connector

我们演示如何连接到MySQL服务器的test数据库:

# 导入MySQL驱动: >>> import mysql.connector # 注意把password设为你的root口令: >>> conn = mysql.connector.connect(user='root', password='password', database='test') >>> cursor = conn.cursor() # 创建user表: >>> cursor.execute('create table user (id varchar(20) primary key, name varchar(20))') # 插入一行记录,注意MySQL的占位符是%s: >>> cursor.execute('insert into user (id, name) values (%s, %s)', ['1', 'Michael'])

# 删除表。

cursor.execute("DROP TABLE IF EXISTS EMPLOYEE")>>> cursor.rowcount 1 # 提交事务: >>> conn.commit() >>> cursor.close() # 运行查询: >>> cursor = conn.cursor() >>> cursor.execute('select * from user where id = %s', ('1',)) >>> values = cursor.fetchall() >>> values [('1', 'Michael')] # 关闭Cursor和Connection: >>> cursor.close() True >>> conn.close()

由于Python的DB-API定义都是通用的,所以,操作MySQL的数据库代码和SQLite类似。

小结

执行INSERT等操作后要调用commit()提交事务;

MySQL的SQL占位符是%s。

使用Python的DB-API时,只要搞清楚Connection和Cursor对象,打开后一定记得关闭,就可以放心地使用。

使用Cursor对象执行insert,update,delete语句时,执行结果由rowcount返回影响的行数,就可以拿到执行结果。

使用Cursor对象执行select语句时,通过featchall()可以拿到结果集。结果集是一个list,每个元素都是一个tuple,对应一行记录。

如果SQL语句带有参数,那么需要把参数按照位置传递给execute()方法,有几个?占位符就必须对应几个参数,例如:

cursor.execute('select * from user where name=? and pwd=?', ('abc', 'password'))

SQLite支持常见的标准SQL语句以及几种常见的数据类型。具体文档请参阅SQLite官方网站。

注意:

在Python中操作数据库时,要先导入数据库对应的驱动,然后,通过Connection对象和Cursor对象操作数据。

要确保打开的Connection对象和Cursor对象都正确地被关闭,否则,资源就会泄露。

如何才能确保出错的情况下也关闭掉Connection对象和Cursor对象呢?请回忆try:...except:...finally:...的用法。

PyMySQL

URL

Python versions

2.4 - 3.2

数据库连接python_python连接数据库相关推荐

  1. python通用数据库连接_python连接数据库的几种方式!

    # -*- coding: utf-8 -*- """ ------------------------------------------------- File Na ...

  2. python通用数据库连接_python 连接数据库pg

    extended the postgresql metric python module on ganglia 本文主要拿PostgreSQL ganglia python module 来讲一下如何 ...

  3. SpringBoot项目部分文件解析、数据库连接(idea)

    一.创建项目 1.File->new->project: 2.选择"Spring Initializr",点击next:(选择电脑中已安装的jdk配置) 3.完善信息 ...

  4. python连接数据库步骤_Python连接mysql数据库

    Python中连接MySQL的库主要有三个,Python-MySQL,PyMySQL和SQLAlchemy,其中Python-MySQL已经停止更新,且只支持Python2,目前使用最广泛的是PyMy ...

  5. JDBC连接数据库学习心得

    JDBC连接数据库学习心得 1.    环境的搭建 首先在intelliJADE下新建工程,并且在工程根目录下创建lib包,lib包用于存放JDBC的jar包,以及以后其他工具jar包.将jar包存入 ...

  6. jdbc 连接虚拟机mysql_JDBC 连接数据库步骤

    JDBC(Java Data Base Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口 ...

  7. 【VB与数据库】——数据库连接

    话说学生管理系统和机房收费系统都完成了,再回来说数据库的连接真的好吗?貌似不太好,但是谁让自己欠账了呢!除了还,还能有更好的解决方法吗?前几天说<红皮书>中的七个对象..当时的反应哪七个, ...

  8. sqlmap使用_sqlmap从入门到精通第四章47使用EW代理导出和导入MSSQL数据

    4.7 使用EW代理导出和导入MSSQL数据 一般的场景就是目标站点获取了webshell,然后数据库的IP地址不在目标站的本地,而且做了精准的访问控制,只允许目标站点的IP地址才能访问数据库,那么这 ...

  9. java sql编码_java+sql 编码 UTF-8、ISO-8859-1、GBK

    java 编码 UTF-8.ISO-8859-1.GBK Java支持UTF-8.ISO-8859-1.GBK等各种字体编码,可笔者发现Java中字体编码的问题仍难倒了不少程序员,网上虽然也有不少关于 ...

最新文章

  1. 用TensorFlow实现的Mask R-CNN在人体语义分割上的效果
  2. Java 8 中 Stream API 的奇技淫巧
  3. qt中颜色对话框弹出时应用程序输出栏出现QWindowsWindow::setGeometry: Unable to set geometry 180x30+345+311 (frame: 202x8
  4. union共用体(联合体)、宏定义、枚举
  5. mysql 导入 xc2 xa0_Python 字符串处理特殊空格xc2xa0tn Non-breaking space
  6. CSS+DIV+HTML(一)--HTML总结
  7. 符合推理的解决方法 NSlover
  8. JS实现静默发送邮件功能(选择填报提交后发送、数据查询后发送参考前者)
  9. swift subscript scraps
  10. Java SSLSocket的使用
  11. 路由器桥接chinanet拨号共享
  12. 2022最新酒桌小游戏小程序源码(附带流量主)
  13. Java选择题(十八)
  14. 来看看生词:CVBS、S-Video、YPbPr、模拟RGB、DVI和HDMI
  15. 代表着团结幸福平安的中国结绳
  16. Android 仿余额宝数字动画实现
  17. 天大的本事,顶不上一张会说话的嘴
  18. 计算机基础知识离线作业答案,2013浙大离线作业1.计算机基础知识题
  19. 【HTML CSS JS 实现QQ2009界面——附源代码】
  20. 基于java+server的租房管理系统

热门文章

  1. 【转】匈牙利命名法(Hungarian Notation)
  2. FASTICA独立成分分析matlab代码实现
  3. linux下passwd命令设置修改用户密码的方法
  4. 吴恩达 coursera ML 第十七课总结+作业答案
  5. 『转载』|收藏|一张看懂AI知识体系
  6. μC/OS-II软件定时器的分析与测试
  7. 常见的几种最优化方法
  8. [云炬创业基础笔记]第一章创业环境测试1
  9. [云炬创业基础笔记]第五章创业机会评估测试1
  10. lambda函数if_lambda表达式速度如何呢?看完这篇文章你就明白了