zvvq技术分享网

用 Python 连接 MySQL 的几种方式详解_python(用pyt

作者:zvvq博客网
导读这篇文章主要介绍了用 python 连接 mysql 的几种方式,大家可以根据实际情况选择合理的连接方式,需要的朋友可以参考下 尽管很多 NoSQL 数据库近几年大放异彩,但是像 MySQL 这样的关系型

这篇文章主要介绍了用 python 连接 mysql 的几种方式,大家可以根据实际情况选择合理的连接方式,需要的朋友可以参考下 内容来自zvvq

尽管很多 NoSQL 数据库近几年大放异彩,但是像 MySQL 这样的关系型数据库依然是互联网的主流数据库之一,每个学 Python 的都有必要学好一门数据库,不管你是做数据分析,还是网络爬虫,Web 开发、亦或是机器学习,你都离不开要和数据库打交道,而 MySQL 又是最流行的一种数据库,这篇文章介绍 Python 操作 MySQL 的几种方式,你可以在实际开发过程中根据实际情况合理选择。

本文来自zvvq

1、MySQL-python

zvvq

MySQL-python 又叫 MySQLdb,是 Python 连接 MySQL 最流行的一个驱动,很多框架都也是基于此库进行开发,遗憾的是它只支持 Python2.x,而且安装的时候有很多前置条件,因为它是基于C开发的库,在 Windows 平台安装非常不友好,经常出现失败的情况,现在基本不推荐使用,取代的是它的衍生版本。 本文来自zvvq

1 内容来自zvvq

2

内容来自samhan666

3 本文来自zvvq

4 内容来自zvvq

5

内容来自samhan

# 前置条件

内容来自samhan666

sudo apt-get install python-dev libmysqlclient-dev # Ubuntu

内容来自samhan

sudo yum install python-devel mysql-devel # Red Hat / CentOS

zvvq

# 安装

zvvq.cn

pip install MySQL-python

内容来自samhan

登录后复制

立即学习Python免费学习笔记(深入)”;

内容来自samhan

Windows 直接通过下载 exe 文件安装,公众号回复「win」获取下载链接 zvvq好,好zvvq

1

内容来自zvvq

2

内容来自zvvq,别采集哟

3

内容来自zvvq,别采集哟

4 本文来自zvvq

5 内容来自zvvq,别采集哟

6 zvvq.cn

7

内容来自samhan666

8

zvvq

9

内容来自samhan666

10 zvvq好,好zvvq

11

本文来自zvvq

12

zvvq.cn

13 copyright zvvq

14 本文来自zvvq

#!/usr/bin/python 内容来自samhan

import MySQLdb 本文来自zvvq

db = MySQLdb.connect( 内容来自zvvq,别采集哟

host="localhost",  # 主机名 内容来自samhan

user="john",     # 用户名

zvvq好,好zvvq

passwd="megajonhy", # 密码 内容来自samhan666

db="jonhydb")    # 数据库名称 copyright zvvq

# 查询前,必须先获取游标

copyright zvvq

cur = db.cursor() zvvq好,好zvvq

# 执行的都是原生SQL语句 copyright zvvq

cur.execute("SELECT * FROM YOUR_TABLE_NAME") 内容来自zvvq,别采集哟

for row in cur.fetchall():

copyright zvvq

print(row[0]) 内容来自zvvq

db.close()

内容来自samhan

登录后复制

立即学习Python免费学习笔记(深入)”; copyright zvvq

2、mysqlclient

内容来自samhan

由于 MySQL-python 年久失修,后来出现了它的 Fork 版本 mysqlclient,完全兼容 MySQLdb,同时支持 Python3.x,是 Django ORM的依赖工具,如果你想使用原生 SQL 来操作数据库,那么推荐此驱动。安装方式和 MySQLdb 是一样的,Windows 可以在 https://www.lfd.uci.edu/~gohlke/pythonlibs/#mysqlclient 网站找到 对应版本的 whl 包下载安装。 内容来自zvvq,别采集哟

zvvq

1 内容来自zvvq,别采集哟

2

内容来自samhan666

3

内容来自samhan

4 copyright zvvq

5

zvvq

6

内容来自samhan

7 copyright zvvq

# Windows安装

zvvq

pip install some-package.whl

zvvq

# linux 前置条件 zvvq好,好zvvq

sudo apt-get install python3-dev # debian / Ubuntu zvvq好,好zvvq

sudo yum install python3-devel # Red Hat / CentOS zvvq

brew install mysql-connector-c # macOS (Homebrew)

zvvq.cn

pip install mysqlclient 内容来自zvvq,别采集哟

登录后复制

立即学习Python免费学习笔记(深入)”; 内容来自zvvq

3、PyMySQL zvvq

PyMySQL 是纯 Python 实现的驱动,速度上比不上 MySQLdb,最大的特点可能就是它的安装方式没那么繁琐,同时也兼容 MySQL-python 内容来自zvvq,别采集哟

1

内容来自samhan

2

内容来自samhan

3

内容来自zvvq

pip install PyMySQL

copyright zvvq

# 为了兼容mysqldb,只需要加入

内容来自samhan666

pymysql.install_as_MySQLdb() zvvq

登录后复制

立即学习Python免费学习笔记(深入)”;

内容来自zvvq

一个例子

zvvq.cn

1 zvvq好,好zvvq

2 内容来自zvvq,别采集哟

3 zvvq好,好zvvq

4

zvvq.cn

5

zvvq

6 zvvq

7

内容来自zvvq,别采集哟

8

内容来自zvvq,别采集哟

import pymysql

内容来自zvvq

conn = pymysql.connect(host='127.0.0.1', user='root', passwd="xxx", db='mysql') 内容来自samhan

cur = conn.cursor()

zvvq好,好zvvq

cur.execute("SELECT Host,User FROM user") zvvq好,好zvvq

for r in cur: 内容来自zvvq,别采集哟

print(r) zvvq.cn

cur.close()

zvvq好,好zvvq

conn.close() copyright zvvq

登录后复制

立即学习Python免费学习笔记(深入)”; copyright zvvq

4、peewee 内容来自samhan666

写原生 SQL 的过程非常繁琐,代码重复,没有面向对象思维,继而诞生了很多封装 wrapper 包和 ORM 框架,ORM 是 Python 对象与数据库关系表的一种映射关系,有了 ORM 你不再需要写 SQL 语句。提高了写代码的速度,同时兼容多种数据库系统,如sqlite, mysql、postgresql,付出的代价可能就是性能上的一些损失。如果你对 Django 自带的 ORM 熟悉的话,那么 peewee的学习成本几乎为零。它是 Python 中是最流行的 ORM 框架。

zvvq

pip install peewee

copyright zvvq

一个例子 内容来自samhan666

1 zvvq.cn

2 内容来自samhan666

3 内容来自samhan

4 本文来自zvvq

5

copyright zvvq

6

本文来自zvvq

7 内容来自samhan666

8

zvvq

9

内容来自samhan

10 zvvq.cn

11

copyright zvvq

12

zvvq好,好zvvq

13 内容来自zvvq,别采集哟

import peewee

内容来自zvvq,别采集哟

from peewee import * zvvq好,好zvvq

db = MySQLDatabase('jonhydb', user='john', passwd='megajonhy')

内容来自zvvq,别采集哟

class Book(peewee.Model): 内容来自zvvq

author = peewee.CharField()

zvvq.cn

title = peewee.TextField()

本文来自zvvq

class Meta: 内容来自samhan

database = db 内容来自zvvq

Book.create_table() 内容来自zvvq,别采集哟

book = Book(author="me", title='Peewee is cool') copyright zvvq

book.save()

zvvq

for book in Book.filter(author="me"): zvvq好,好zvvq

print(book.title) 内容来自samhan

登录后复制

立即学习Python免费学习笔记(深入)”;

本文来自zvvq

官方文档:http://docs.peewee-orm.com/en/latest/peewee/installation.html 内容来自zvvq,别采集哟

5、SQLAlchemy 本文来自zvvq

如果想找一种既支持原生 SQL,又支持 ORM 的工具,那么 SQLAlchemy 是最好的选择,它非常接近 Java 中的 Hibernate 框架。 内容来自zvvq,别采集哟

1

内容来自zvvq,别采集哟

2 本文来自zvvq

3 copyright zvvq

4 zvvq

5

zvvq好,好zvvq

6

copyright zvvq

7

zvvq

8

zvvq好,好zvvq

9 本文来自zvvq

10

内容来自samhan666

11 zvvq.cn

12 copyright zvvq

13 zvvq好,好zvvq

14

zvvq好,好zvvq

15 zvvq

from sqlalchemy import create_engine

zvvq.cn

from sqlalchemy.orm import sessionmaker

zvvq好,好zvvq

from sqlalchemy_declarative import Address, Base, Person copyright zvvq

class Address(Base):

内容来自zvvq,别采集哟

__tablename__ = 'address'

zvvq.cn

id = Column(Integer, primary_key=True)

本文来自zvvq

street_name = Column(String(250))

本文来自zvvq

engine = create_engine('sqlite:///sqlalchemy_example.db') 内容来自samhan666

Base.metadata.bind = engine

内容来自zvvq,别采集哟

DBSession = sessionmaker(bind=engine) zvvq

session = DBSession()

zvvq好,好zvvq

# Insert a Person in the person table 内容来自samhan666

new_person = Person(name='new person') 内容来自samhan666

session.add(new_person) 本文来自zvvq

session.commit()

内容来自zvvq,别采集哟

登录后复制

立即学习Python免费学习笔记(深入)”; 内容来自zvvq

现在差不多搞明白了这几种数据库驱动的优劣,接下来你就可以选择其中的一个进行系统的学习再把它应用到项目中去了,祝你学习开心,不懂的可以咨询我哈。 本文来自zvvq

相关推荐:

copyright zvvq

python连接sqlite的实例教程 内容来自zvvq

详解python连接impala的实例

内容来自samhan666

使用python连接mongodb并操作的方法

copyright zvvq

立即学习Python免费学习笔记(深入)”;

内容来自samhan666

以上就是用 Python 连接 MySQL 的几种方式详解_python的详细内容,更多请关注php中文网其它相关文章! 内容来自zvvq,别采集哟