python

Python 连接数据库

2019-01-03  本文已影响15人  hiekay

用Python来编写网站,必须要能够通过python操作数据库,所谓操作数据库,就是通过python实现对数据的连接,以及对记录、字段的各种操作。

安装python-MySQLdb

要想通过python来操作数据库,还需要在已经安装了mysql的基础上安装一个称之为mysqldb的库,它是一个接口程序,python通过它对mysql数据实现各种操作。

在编程中,会遇到很多类似的接口程序,通过接口程序对另外一个对象进行操作,比较简单。

这里下载python-mysqldb:https://pypi.python.org/pypi/MySQL-python/

下载之后就可以安装了。

我这里只能演示ubuntu下安装的过程。

sudo apt-get install  python-mysqldb

在shell中输入上面的命令行,就安装了。
不管什么系统,安装不是难题。安装之后,怎么知道安装的结果呢?

>>> import MySQLdb 

在python的交互模式中,输入上面的指令,如果不报错,恭喜你,已经安装好了。如果报错,恭喜你,可以借着错误信息提高自己的计算机水平了,请求助于google大神。

交互模式下操作数据库之连接数据库

操作数据库的前提是先有数据库。

先建立一个数据库。

$ mysql -u root -p
Enter password:                             

打开数据库,正确输入密码之后,呈现下面的结果

Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 10
Server version: 5.7.24-0ubuntu0.18.04.1 (Ubuntu)

Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql>

在这个状态下,输入如下命令,建立一个数据库:

mysql> create database mytest character set utf8;
Query OK, 1 row affected (0.00 sec)

注意上面的指令,如果仅仅输入:create database mytest,也可以,但是,我在后面增加了character set utf8,意思是所建立的数据库mytest,编码是utf-8的,这样存入汉字就不是乱码了。

看到那一行提示:Query OK, 1 row affected (0.00 sec),就说明这个数据库已经建立好了,名字叫做:mytest

数据库建立之后,就可以用python通过已经安装的mysqldb来连接这个名字叫做mytest的库了。进入到python交互模式。

>>> import MySQLdb
>>> conn = MySQLdb.connect(host="localhost",user="root",passwd="123123",db="mytest",port=3306,charset="utf8")

逐个解释上述命令的含义:

注:connect中的host、user、passwd等可以不写,只有在写的时候按照host、user、passwd、db(可以不写)、port顺序写就可以,注意端口号port=3306还是不要省略的为好,如果没有db在port前面,直接写3306会报错.

其实,关于connect的参数还不少,下面摘抄来自mysqldb官方文档的内容,把所有的参数都列出来,还有相关说明,请看官认真阅读。不过,上面几个是常用的,其它的看情况使用。

connect(parameters...)

Constructor for creating a connection to the database. Returns a Connection Object. Parameters are the same as for the MySQL C API. In addition, there are a few additional keywords that correspond to what you would pass mysql_options() before connecting. Note that some parameters must be specified as keyword arguments! The default value for each parameter is NULL or zero, as appropriate. Consult the MySQL documentation for more details. The important parameters are:

If False, text-like columns are returned as normal strings, but you can always write Unicode strings.

This must be a keyword parameter.

If not present, the default character set is used.

This must be a keyword parameter.

If not present, the session SQL mode will be unchanged.

This must be a keyword parameter.

我已经完成了数据库的连接,虽然是在交互模式下。

上一篇下一篇

猜你喜欢

热点阅读