当前位置:首页 » 编程语言 » pythonmysqldbpip

pythonmysqldbpip

发布时间: 2023-01-03 14:44:34

A. python第三方库不安装可以吗

Python 是一门优雅的语言,简洁的语法,强大的功能。当然丰富的第三方库,更能加速开发。那么问题来了,如何安装这些第三方库(包)呢?

安装第三方库的方式其实不多。下面就介绍一些技巧。

源码安装

很多第三方库都是开源的,几乎都可以在github 或者 pypi上找到源码。找到源码格式大概都是 zip 、 tar.zip、 tar.bz2格式的压缩包。解压这些包,进入解压好的文件夹,通常会看见一个 setup.py 的文件。打开命令行,进入该文件夹。运行

python setup.py install

这个命令,就能把这个第三库安装到系统里,也就是你的 Python 路径,windows大概是在 C:\Python2.7\Lib\site-packages。
linux会在 /usr/local/lib/python2.7/dist-packages。
Mac 应该在 /Library/Python/2.7/site-packages。如果是在 virtulenv环境下安装,这个包就被安装在所建立的虚拟环境下的 site-packages/目录下。想要卸载这些库也很简单,进入 site-packages,直接删掉库文件就 OK 啦。当然,这些安装可能有一点麻烦,需要下载,解压,再运行安装,卸载也不是很方便。有没有一种工具,可以帮外面管理这些库呢?

包管理器 (pip 和 easy_install)

现在很多编程语言,都带有包管理器,例如 Ruby 的 gem,nodejs的npm。Python当然也不例外,拥有大名鼎鼎的 pip和 easy_install。

前面说到的pypi就是一些 python第三库所在的源,使用 pip 或者 easy_install 安装模块,会搜索这个源,然后自动下载安装。比如我们需要安装 flask 框架具体命令如下:

pip install flask

或者

easy_install flask

简单吧,一个简单的命令就搞定。卸载也很方便,例如我们需要卸载flask

pip uninstall flask

查看所安装的包,包括系统自带的和手动安装的

pip list

还可以搜索包

pip search flask

还可以重定向输出项目使用的库。

pip freeze > requirements.txt

这样就会把该环境下的第三方库重定向到 requirements.txt文件内,如果给别人安装项目的依赖,只需要运行:

pip install -r requirements.txt

很方便吧。当然,有时候,我们的网络并不是那么顺畅,pip是在线安装的,可不可以离线呢?当然可以啦,pip install 的第一步,就是在 pypi 上寻找包,然后下载到本地。如果网络不好,可以先建一个本地的仓库,把常用的包离线下载。比如可以下载 flask 的源码

pip intall flask-master.zip

同样也可以安装。

最新版本的pip也支持git安装,只需要使用其git地址就行

pip install git+https://github.com/kennethreitz/requests.git

不过这种安装方式相当的慢。它的原来就是先clone到本地的临时目录,然后再安装zip包。

虚拟环境相关安装

当然,上面介绍的,其实也是很普通很常见的方式,也算不上什么技巧。下面介绍的,则是一些需要了解原理和解决非常规问题的技巧。

使用Python,我们会喜欢用 virtualenv建立虚拟环境,例如建立一个 venv的虚拟环境。我们只需要 source进去就可以使用pip安装了。可是有时候,即使在虚拟环境下,使用了sudo的前缀(windows忽略),那么安装的库不是在虚拟环境,而是被安装到系统下的site-package 目录下了。

windows的用户可能会很开心,不需要注意这个问题。当然 windows 也同样有着自己的问题。在 windows上安装python,一般是编译好的二进制包exe可执行文件。通常有 32位和64位的python。对于第三方库,本来32和64不会有太大的差别。但是对于一些C写的python库,如mysqldb,PIL, pillow,会发现使用 pip或者 easy_install 的方式会报错:

Fixing python error: Unable to find vcvarsall.bat

原因大概是 windows上缺少一些 C编译器东东。源码需要编译一下才能安装,此时 windows就很苦逼了。当然,有一些好心人,帮您把常用的一些库编译成 exe 可执行文件,放到了这个站点。你只需要寻找对于版本的,下载一键安装。

可是,还有一个问题,下载 exe 文件,运行安装,这个库是被安装到了系统的 site-package 目录下,如果我在windows 建立了venv虚拟环境,这样安装不是歇菜了么?

别担心,这个文章的真正技巧,就是为了解决这个问题的。我们来安装64位的 mysqldb。先下载 MySQL‑python‑1.2.5.win‑amd64‑py2.7.exe 在 windows 上,用命令行进入虚拟环境 venv。然后运行

easy_install MySQL‑python‑1.2.5.win‑amd64‑py2.7.exe

完美解决,在 venv 虚拟环境,将mysqldb 库安装到了venv下。

有了上面三个方式,几乎涵盖 python 所有平台的第三方库安装。不过话说回来,尽管 Python 是跨平台,开发环境,还是尽量使用 Linux或者MacOS,这两个系统有更好的工具以及省去很多莫名其妙的问题。

B. 如何用python3连接mysql数据库

python3使用PyMysql连接mysql数据库
python语言的3 x完全不向前兼容,导致我们在python2 x中可以正常使用的库,到了python3就用不了了 比如说mysqldb目前MySQLdb并不支持python3
python语言的3.x完全不向前兼容,导致我们在python2.x中可以正常使用的库,到了python3就用不了了.比如说mysqldb
目前MySQLdb并不支持python3.x , Python3.x连接MySQL的方案有:oursql, PyMySQL, myconnpy 等
下面来说下python3如何安装和使用pymysql,另外两个方案我会在以后再讲。
1.pymysql安装
pymysql就是作为python3环境下mysqldb的替代物,进入命令行,使用pip安装pymysql

1

pip install pymysql3

2.pymysql使用
如果想使用mysqldb的方式,那么直接在py文件的开头加入如下两行代码即可。

1
2
3
4

#引入pymysql
import pymysql
#当成是mysqldb一样使用,当然也可以不写这句,那就按照pymysql的方式
pymysql.install_as_MySQLdb()

C. 如何用python的pip安装mysqldb

如何用python的pip安装mysqldb
python2.7和python3.4你可以看成是两个软件,你在一个里装了,另一个里当然不能用,你需要在python3.4里也安装mysqldb才可以,你可以通过pip install mysql-python,或者python3 setup.py install 来安装。

到官方下载MySQL for Python
然后解压,打开README:
里面有安装过程:
$ tar xfz MySQL-python-1.2.1.tar.gz
$ cd MySQL-python-1.2.1
$ # edit site.cfg if necessary
$ python setup.py build
$ sudo python setup.py install # or su first

D. Python 操作 MySQL 的5种方式

1、MySQLdb

# 前置条件

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

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

# 安装

pip install MySQL-python

Windows 直接通过下载 exe 文件安装

#!/usr/bin/python

import MySQLdb

db = MySQLdb.connect(

host = "localhost", # 主机名

user = "root", # 用户名

passwd = "pythontab.com", # 密码

db = "testdb") # 数据库名称

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

cur = db.cursor()

# 执行的都是原生SQL语句

cur.execute("SELECT * FROM mytable")

for row in cur.fetchall():

print(row[0])

db.close()

2、mysqlclient

# Windows安装

pip install some-package.whl

# linux 前置条件

sudo apt-get install python3-dev # debian / Ubuntu

sudo yum install python3-devel # Red Hat / CentOS

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

pip install mysqlclient

3、PyMySQL

pip install PyMySQL

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

pymysql.install_as_MySQLdb()

import pymysql

conn = pymysql.connect(host = 飗.0.0.1', user = 'root', passwd = "pythontab.com", db = 'testdb')

cur = conn.cursor()

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

for r in cur:

print(r)

cur.close()

conn.close()

4、peewee

pip install peewee

import peewee

from peewee import *

db = MySQLDatabase('testdb', user = 'root', passwd = 'pythontab.com')

class Book(peewee.Model):

author = peewee.CharField()

title = peewee.TextField()

class Meta:

database = db

Book.create_table()

book = Book(author = "pythontab", title = 'pythontab is good website')

book.save()

for book in Book.filter(author = "pythontab"):

print(book.title)

5、SQLAlchemy

from sqlalchemy import create_engine

from sqlalchemy.orm import sessionmaker

from sqlalchemy_declarative import Address, Base, Person

class Address(Base):

__tablename__ = 'address'

id = Column(Integer, primary_key = True)

street_name = Column(String(250))

engine = create_engine('sqlite:///sqlalchemy_example.db')

Base.metadata.bind = engine

DBSession = sessionmaker(bind = engine)

session = DBSession()

# Insert a Person in the person table

new_person = Person(name = 'new person')

session.add(new_person)

session.commit()

E. 如何在virtualenv虚拟环境中安装mysql-python

接触过virtualenv后,想在这个虚拟环境中安装独立的开发环境。在安装MySQLdb时遇到错误
pc 09:09:30
File "/home/pc/work/VENV/py3/local/lib/python2.7/site-packages/setuptools/sandbox.py", line 50, in run_setup
lambda: execfile(
File "/home/pc/work/VENV/py3/local/lib/python2.7/site-packages/setuptools/sandbox.py", line 100, in run
return func()
File "/home/pc/work/VENV/py3/local/lib/python2.7/site-packages/setuptools/sandbox.py", line 52, in <lambda>
{'__file__':setup_script, '__name__':'__main__'}
File "setup.py", line 17, in <mole>
File "/tmp/easy_install-FtC77Z/MySQL-python-1.2.5/setup_posix.py", line 43, in get_config
File "/tmp/easy_install-FtC77Z/MySQL-python-1.2.5/setup_posix.py", line 25, in mysql_config
EnvironmentError: mysql_config not found

在国内的网上找了好长时间也没有找到办法,大多数是讲如何安装mysql-python的。先说一下解决过程吧
我是在ubuntu14上安装有virtualenv,在全局环境中安装了mysql-server,安装命令
sudo apt-get install mysql-server

后续过程都是在虚拟环境中进行的。我的是py3
开始找到要想使用mysql需要安装libmysqlclient-dev
安装过后在安装mysql-python还是出错
(py3)pc@pc-virtual-machine:~/work/VENV/py3/bin$ pip install mysql-python
Downloading/unpacking mysql-python
Downloading MySQL-python-1.2.5.zip (108kB): 108kB downloaded
Running setup.py (path:/home/pc/work/VENV/py3/build/mysql-python/setup.py) egg_info for package mysql-python

Installing collected packages: mysql-python
Running setup.py install for mysql-python
building '_mysql' extension
i686-linux-gnu-gcc -pthread -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fPIC -Dversion_info=(1,2,5,'final',1) -D__version__=1.2.5 -I/usr/include/mysql -I/usr/include/python2.7 -c _mysql.c -o build/temp.linux-i686-2.7/_mysql.o -DBIG_JOINS=1 -fno-strict-aliasing -DTAOCRYPT_DISABLE_X86ASM -g -DNDEBUG
_mysql.c:29:20: fatal error: Python.h: No such file or directory
#include "Python.h"
^
compilation terminated.
error: command 'i686-linux-gnu-gcc' failed with exit status 1
Complete output from command /home/pc/work/VENV/py3/bin/python -c "import setuptools, tokenize;__file__='/home/pc/work/VENV/py3/build/mysql-python/setup.py';exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" install --record /tmp/pip-V4wHKY-record/install-record.txt --single-version-externally-managed --compile --install-headers /home/pc/work/VENV/py3/include/site/python2.7:
running install
running build
running build_py
creating build
creating build/lib.linux-i686-2.7
ing _mysql_exceptions.py -> build/lib.linux-i686-2.7
creating build/lib.linux-i686-2.7/MySQLdb
ing MySQLdb/__init__.py -> build/lib.linux-i686-2.7/MySQLdb
ing MySQLdb/converters.py -> build/lib.linux-i686-2.7/MySQLdb
ing MySQLdb/connections.py -> build/lib.linux-i686-2.7/MySQLdb
ing MySQLdb/cursors.py -> build/lib.linux-i686-2.7/MySQLdb
ing MySQLdb/release.py -> build/lib.linux-i686-2.7/MySQLdb
ing MySQLdb/times.py -> build/lib.linux-i686-2.7/MySQLdb
creating build/lib.linux-i686-2.7/MySQLdb/constants
ing MySQLdb/constants/__init__.py -> build/lib.linux-i686-2.7/MySQLdb/constants
ing MySQLdb/constants/CR.py -> build/lib.linux-i686-2.7/MySQLdb/constants
ing MySQLdb/constants/FIELD_TYPE.py -> build/lib.linux-i686-2.7/MySQLdb/constants
ing MySQLdb/constants/ER.py -> build/lib.linux-i686-2.7/MySQLdb/constants
ing MySQLdb/constants/FLAG.py -> build/lib.linux-i686-2.7/MySQLdb/constants
ing MySQLdb/constants/REFRESH.py -> build/lib.linux-i686-2.7/MySQLdb/constants
ing MySQLdb/constants/CLIENT.py -> build/lib.linux-i686-2.7/MySQLdb/constants
running build_ext
building '_mysql' extension
creating build/temp.linux-i686-2.7
i686-linux-gnu-gcc -pthread -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fPIC -Dversion_info=(1,2,5,'final',1) -D__version__=1.2.5 -I/usr/include/mysql -I/usr/include/python2.7 -c _mysql.c -o build/temp.linux-i686-2.7/_mysql.o -DBIG_JOINS=1 -fno-strict-aliasing -DTAOCRYPT_DISABLE_X86ASM -g -DNDEBUG
_mysql.c:29:20: fatal error: Python.h: No such file or directory
#include "Python.h"
^
compilation terminated.
error: command 'i686-linux-gnu-gcc' failed with exit status 1
----------------------------------------
Cleaning up...
Command /home/pc/work/VENV/py3/bin/python -c "import setuptools, tokenize;__file__='/home/pc/work/VENV/py3/build/mysql-python/setup.py';exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" install --record /tmp/pip-V4wHKY-record/install-record.txt --single-version-externally-managed --compile --install-headers /home/pc/work/VENV/py3/include/site/python2.7 failed with error code 1 in /home/pc/work/VENV/py3/build/mysql-python
Storing debug log for failure in /home/pc/.pip/pip.log
看到如果没有安装python-dev,需要安装这个就开始安装
sudo apt-get install python-dev
此时在安装mysql-python就可以了,所以安装步骤是
1 安装python-dev
sudo apt-get install python-dev

2 安装 libmysqlclient-dev
sudo apt-get install libmysqlclient-dev

3 安装mysql-python
pip install mysql-python

最后进行验证
(py3)pc@pc-virtual-machine:~/work/VENV/py3/bin$ python
Python 2.7.6 (default, Jun 22 2015, 18:00:18)
[GCC 4.8.2] on linux2
Type "help", "right", "credits" or "license" for more information.
>>> import MySQLdb
>>>
如果导入没有问题就说明导入成功了。

F. 怎么做才能使mysql和python连接起来

什么是 PyMySQL?

PyMySQL 是在 Python3.x 版本中用于连接 MySQL 服务器的一个库,Python2中则使用mysqldb。

PyMySQL 遵循 Python 数据库 API v2.0 规范,并包含了 pure-Python MySQL 客户端库。

PyMySQL 安装

在使用 PyMySQL 之前,我们需要确保 PyMySQL 已安装。

PyMySQL 下载地址:https://github.com/PyMySQL/PyMySQL。

如果还未安装,我们可以使用以下命令安装最新版的 PyMySQL:

$ pip3 install PyMySQL

如果你的系统不支持 pip 命令,可以使用以下方式安装:

1、使用 git 命令下载安装包安装(你也可以手动下载):

$ git clone https://github.com/PyMySQL/PyMySQL$ cd PyMySQL/$ python3 setup.py install

2、如果需要制定版本号,可以使用 curl 命令来安装:

$ # X.X 为 PyMySQL 的版本号$ curl -L https://github.com/PyMySQL/PyMySQL/tarball/pymysql-X.X | tar xz$ cd PyMySQL*$ python3 setup.py install
$ # 现在你可以删除 PyMySQL* 目录

注意:请确保您有root权限来安装上述模块。

安装的过程中可能会出现"ImportError: No mole named setuptools"的错误提示,意思是你没有安装setuptools,你可以访问https://pypi.python.org/pypi/setuptools找到各个系统的安装方法。

Linux 系统安装实例:

$ wget https://bootstrap.pypa.io/ez_setup.py$ python3 ez_setup.py

数据库连接

连接数据库前,请先确认以下事项:

  • 您已经创建了数据库 TESTDB.

  • 在TESTDB数据库中您已经创建了表 EMPLOYEE

  • EMPLOYEE表字段为 FIRST_NAME, LAST_NAME, AGE, SEX 和 INCOME。

  • 连接数据库TESTDB使用的用户名为 "testuser" ,密码为 "test123",你可以可以自己设定或者直接使用root用户名及其密码,Mysql数据库用户授权请使用Grant命令。

  • 在你的机子上已经安装了 Python MySQLdb 模块。

  • 如果您对sql语句不熟悉,可以访问我们的SQL基础教程

  • 实例:

    以下实例链接 Mysql 的 TESTDB 数据库:

    实例(Python 3.0+)

    #!/usr/bin/python3
    import pymysql
    # 打开数据库连接db = pymysql.connect("localhost","testuser","test123","TESTDB" )
    # 使用 cursor() 方法创建一个游标对象 cursorcursor = db.cursor()
    # 使用 execute() 方法执行 SQL 查询 cursor.execute("SELECT VERSION()")
    # 使用 fetchone() 方法获取单条数据.data = cursor.fetchone()
    print ("Database version : %s " % data)
    # 关闭数据库连接db.close()

    执行以上脚本输出结果如下:

  • Database version : 5.5.20-log

  • 创建数据库表

    如果数据库连接存在我们可以使用execute()方法来为数据库创建表,如下所示创建表EMPLOYEE:

    实例(Python 3.0+)

    #!/usr/bin/python3
    import pymysql
    # 打开数据库连接db = pymysql.connect("localhost","testuser","test123","TESTDB" )
    # 使用 cursor() 方法创建一个游标对象 cursorcursor = db.cursor()
    # 使用 execute() 方法执行 SQL,如果表存在则删除cursor.execute("DROP TABLE IF EXISTS EMPLOYEE")
    # 使用预处理语句创建表sql = """CREATE TABLE EMPLOYEE (
    FIRST_NAME CHAR(20) NOT NULL,
    LAST_NAME CHAR(20),
    AGE INT,
    SEX CHAR(1),
    INCOME FLOAT )"""
    cursor.execute(sql)
    # 关闭数据库连接db.close()

    数据库插入操作

    以下实例使用执行 SQL INSERT 语句向表 EMPLOYEE 插入记录:

    实例(Python 3.0+)

    #!/usr/bin/python3
    import pymysql
    # 打开数据库连接db = pymysql.connect("localhost","testuser","test123","TESTDB" )
    # 使用cursor()方法获取操作游标 cursor = db.cursor()
    # SQL 插入语句sql = """INSERT INTO EMPLOYEE(FIRST_NAME,
    LAST_NAME, AGE, SEX, INCOME)
    VALUES ('Mac', 'Mohan', 20, 'M', 2000)"""try: # 执行sql语句
    cursor.execute(sql)
    # 提交到数据库执行
    db.commit()except: # 如果发生错误则回滚
    db.rollback()
    # 关闭数据库连接db.close()

    以上例子也可以写成如下形式:

    实例(Python 3.0+)

    #!/usr/bin/python3
    import pymysql
    # 打开数据库连接db = pymysql.connect("localhost","testuser","test123","TESTDB" )
    # 使用cursor()方法获取操作游标 cursor = db.cursor()
    # SQL 插入语句sql = "INSERT INTO EMPLOYEE(FIRST_NAME,
    LAST_NAME, AGE, SEX, INCOME)
    VALUES ('%s', '%s', %s, '%s', %s)" % ('Mac', 'Mohan', 20, 'M', 2000)try: # 执行sql语句
    cursor.execute(sql)
    # 执行sql语句
    db.commit()except: # 发生错误时回滚
    db.rollback()
    # 关闭数据库连接db.close()

    以下代码使用变量向SQL语句中传递参数:

  • ..................................user_id = "test123"password = "password"con.execute('insert into Login values( %s, %s)' % (user_id, password))..................................

  • 数据库查询操作

    Python查询Mysql使用 fetchone() 方法获取单条数据, 使用fetchall() 方法获取多条数据。

  • fetchone():该方法获取下一个查询结果集。结果集是一个对象

  • fetchall():接收全部的返回结果行.

  • rowcount:这是一个只读属性,并返回执行execute()方法后影响的行数。

  • 实例:

    查询EMPLOYEE表中salary(工资)字段大于1000的所有数据:

    实例(Python 3.0+)

    #!/usr/bin/python3
    import pymysql
    # 打开数据库连接db = pymysql.connect("localhost","testuser","test123","TESTDB" )
    # 使用cursor()方法获取操作游标 cursor = db.cursor()
    # SQL 查询语句sql = "SELECT * FROM EMPLOYEE
    WHERE INCOME > %s" % (1000)try: # 执行SQL语句
    cursor.execute(sql)
    # 获取所有记录列表
    results = cursor.fetchall()
    for row in results: fname = row[0]
    lname = row[1]
    age = row[2]
    sex = row[3]
    income = row[4]
    # 打印结果
    print ("fname=%s,lname=%s,age=%s,sex=%s,income=%s" % (fname, lname, age, sex, income ))except: print ("Error: unable to fetch data")
    # 关闭数据库连接db.close()

    以上脚本执行结果如下:

  • fname=Mac, lname=Mohan, age=20, sex=M, income=2000

  • 数据库更新操作

    更新操作用于更新数据表的的数据,以下实例将 TESTDB 表中 SEX 为 'M' 的 AGE 字段递增 1:

    实例(Python 3.0+)

    #!/usr/bin/python3
    import pymysql
    # 打开数据库连接db = pymysql.connect("localhost","testuser","test123","TESTDB" )
    # 使用cursor()方法获取操作游标 cursor = db.cursor()
    # SQL 更新语句sql = "UPDATE EMPLOYEE SET AGE = AGE + 1 WHERE SEX = '%c'" % ('M')try: # 执行SQL语句
    cursor.execute(sql)
    # 提交到数据库执行
    db.commit()except: # 发生错误时回滚
    db.rollback()
    # 关闭数据库连接db.close()

    删除操作

    删除操作用于删除数据表中的数据,以下实例演示了删除数据表 EMPLOYEE 中 AGE 大于 20 的所有数据:

    实例(Python 3.0+)

    #!/usr/bin/python3
    import pymysql
    # 打开数据库连接db = pymysql.connect("localhost","testuser","test123","TESTDB" )
    # 使用cursor()方法获取操作游标 cursor = db.cursor()
    # SQL 删除语句sql = "DELETE FROM EMPLOYEE WHERE AGE > %s" % (20)try: # 执行SQL语句
    cursor.execute(sql)
    # 提交修改
    db.commit()except: # 发生错误时回滚
    db.rollback()
    # 关闭连接db.close()

    执行事务

    事务机制可以确保数据一致性。

    事务应该具有4个属性:原子性、一致性、隔离性、持久性。这四个属性通常称为ACID特性。

  • 原子性(atomicity)。一个事务是一个不可分割的工作单位,事务中包括的诸操作要么都做,要么都不做。

  • 一致性(consistency)。事务必须是使数据库从一个一致性状态变到另一个一致性状态。一致性与原子性是密切相关的。

  • 隔离性(isolation)。一个事务的执行不能被其他事务干扰。即一个事务内部的操作及使用的数据对并发的其他事务是隔离的,并发执行的各个事务之间不能互相干扰。

  • 持久性(rability)。持续性也称永久性(permanence),指一个事务一旦提交,它对数据库中数据的改变就应该是永久性的。接下来的其他操作或故障不应该对其有任何影响。

  • Python DB API 2.0 的事务提供了两个方法 commit 或 rollback。

    实例

    实例(Python 3.0+)

    # SQL删除记录语句sql = "DELETE FROM EMPLOYEE WHERE AGE > %s" % (20)try: # 执行SQL语句
    cursor.execute(sql)
    # 向数据库提交
    db.commit()except: # 发生错误时回滚
    db.rollback()

    对于支持事务的数据库, 在Python数据库编程中,当游标建立之时,就自动开始了一个隐形的数据库事务。

    commit()方法游标的所有更新操作,rollback()方法回滚当前游标的所有操作。每一个方法都开始了一个新的事务。

    错误处理

    DB API中定义了一些数据库操作的错误及异常,下表列出了这些错误和异常:

    异常

    描述

    Warning 当有严重警告时触发,例如插入数据是被截断等等。必须是 StandardError 的子类。

    Error 警告以外所有其他错误类。必须是 StandardError 的子类。

    InterfaceError 当有数据库接口模块本身的错误(而不是数据库的错误)发生时触发。 必须是Error的子类。

    DatabaseError 和数据库有关的错误发生时触发。 必须是Error的子类。

    DataError 当有数据处理时的错误发生时触发,例如:除零错误,数据超范围等等。 必须是DatabaseError的子类。

    OperationalError 指非用户控制的,而是操作数据库时发生的错误。例如:连接意外断开、 数据库名未找到、事务处理失败、内存分配错误等等操作数据库是发生的错误。 必须是DatabaseError的子类。

    IntegrityError 完整性相关的错误,例如外键检查失败等。必须是DatabaseError子类。

    InternalError 数据库的内部错误,例如游标(cursor)失效了、事务同步失败等等。 必须是DatabaseError子类。

    ProgrammingError 程序错误,例如数据表(table)没找到或已存在、SQL语句语法错误、 参数数量错误等等。必须是DatabaseError的子类。

    NotSupportedError 不支持错误,指使用了数据库不支持的函数或API等。例如在连接对象上 使用.rollback()函数,然而数据库并不支持事务或者事务已关闭。 必须是DatabaseError的子类。

G. pymystem3使用

python3使用PyMysql连接mysql数据库
python语言的3 x完全不向前兼容,导致我们在python2 x中可以正常使用的库,到了python3就用不了了 比如说mysqldb目前MySQLdb并不支持python3python语言的3.x完全不向前兼容,导致我们在python2.x中可以正常使用的库,到了python3就用不了了.比如说mysqldb目前MySQLdb并不支持python3.x Python3.x连接MySQL的方案有:oursql, PyMySQL, myconnpy 等下面来说下python3如何安装和使用pymysql,另外两个方案我会在以后再讲。1.pymysql安装pymysql就是作为python3环境下mysqldb的替代物,进入命令行,使用pip安装pymysql
pip install pymysql3

热点内容
安卓在哪里找游戏 发布:2025-07-04 22:15:25 浏览:242
路由器访问光猫 发布:2025-07-04 22:07:47 浏览:897
数据库显示语句 发布:2025-07-04 22:04:30 浏览:740
编程课道具 发布:2025-07-04 22:04:02 浏览:844
华为手机不是安卓什么时候可以更新米加小镇 发布:2025-07-04 22:01:37 浏览:785
饥荒服务器搭建视频 发布:2025-07-04 21:48:38 浏览:523
github上传文件夹 发布:2025-07-04 21:29:22 浏览:1003
php课程学习中心 发布:2025-07-04 21:29:16 浏览:298
win7加密文件夹如何解密 发布:2025-07-04 21:25:24 浏览:555
为啥系统缓存的垃圾多呢 发布:2025-07-04 21:15:45 浏览:952