跟老齐学Python之通过Python连接数据库

用python来编写网站,必须要能够通过python操作数据库,所谓操作数据库,就是通过python实现对数据的连接,以及对记录、字段的各种操作。上一讲提到的那种操作方式,是看官直接通过交互模式来操作数据库。

安装python-MySQLdb

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

在编程中,会遇到很多类似的接口程序,通过接口程序对另外一个对象进行操作,比较简单。接口程序就好比钥匙,如果要开锁,人直接用手指去捅,肯定是不行的,那么必须借助工具,插入到锁孔中,把所打开,打开所之后,门开了,就可以操作门里面的东西了。那么打开所的工具就是接口程序。而打开所的工具会有便利与否之分,如果用这锁的钥匙,就便利,如果用别的工具,或许不便利(其实还分人,也就是人开锁的水平,如果是江洋大盗或者小毛贼什么的,擅长开锁,用别的工具也便利了),也就是接口程序不同,编码水平不同,都是考虑因素。

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

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

下载之后就可以安装了。

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

复制代码 代码如下:
sudo apt-get install python-MySQLdb

在shell中输入上面的命令行,就安装了。看看,多么简洁的安装,请快快用ubuntu吧。我愿意做ubuntu的免费代言。哈哈。

不管什么系统,安装不是难题。安装之后,怎么知道安装的结果呢?

复制代码 代码如下:
>>> import MySQLdb

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

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

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

先建立一个数据库。

复制代码 代码如下:
qw@qw-Latitude-E4300:~$ mysql -u root -p
Enter password:  

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

复制代码 代码如下:
Welcome to the MySQL monitor.  Commands end with ; or g.
Your MySQL connection id is 373
Server version: 5.5.38-0ubuntu0.14.04.1 (Ubuntu)

Copyright (c) 2000, 2014, 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 qiwsirtest character set utf8;
Query OK, 1 row affected (0.00 sec)

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

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

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

复制代码 代码如下:
>>> import MySQLdb
>>> conn = MySQLdb.connect(host=”localhost”,user=”root”,passwd=”123123″,db=”qiwsirtest”,port=3306,charset=”utf8″)

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

host:等号的后面应该填写mysql数据库的地址,因为就数据库就在本机上(也称作本地),所以使用localhost,注意引号。如果在其它的服务器上,这里应该填写ip地址。一般中小型的网站,数据库和程序都是在同一台服务器(计算机)上,就使用localhost了。

user:登录数据库的用户名,这里一般填写”root”,还是要注意引号。当然,如果是比较大型的服务,数据库会提供不同的用户,那时候可以更改为相应用户。但是,不同用户的权限可能不同,所以,在程序中,如果要操作数据库,还要注意所拥有的权限。在这里用root,就放心了,什么权限都有啦。不过,这样做,在大型系统中是应该避免的。

passwd:上述user账户对应的登录mysql的密码。我在上面的例子中用的密码是”123123″。不要忘记引号。

db:就是刚刚通create命令建立的数据库,我建立的数据库名字是”qiwsirtest”,还是要注意引号。看官如果建立的数据库名字不是这个,就写自己所建数据库名字。

port:一般情况,mysql的默认端口是3306,当mysql被安装到服务器之后,为了能够允许网络访问,服务器(计算机)要提供一个访问端口给它。

charset:这个设置,在很多教程中都不写,结果在真正进行数据存储的时候,发现有乱码。这里我将qiwsirtest这个数据库的编码设置为utf-8格式,这样就允许存入汉字而无乱码了。注意,在mysql设置中,utf-8写成utf8,没有中间的横线。但是在python文件开头和其它地方设置编码格式的时候,要写成utf-8。切记!

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

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

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

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2291727.html

(0)
上一篇 2025年2月28日 01:14:41
下一篇 2025年2月25日 00:57:54

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • Python中使用scapy模拟数据包实现arp攻击、dns放大攻击例子

    scapy是python写的一个功能强大的交互式数据包处理程序,可用来发送、嗅探、解析和伪造网络数据包,常常被用到网络攻击和测试中。 这里就直接用python的scapy搞。 这里是arp的攻击方式,你可以做成arp攻击。 复制代码 代码如…

    编程技术 2025年2月28日
    200
  • Python性能优化的20条建议

    优化算法时间复杂度 算法的时间复杂度对程序的执行效率影响最大,在python中可以通过选择合适的数据结构来优化时间复杂度,如list和set查找某一个元素的时间复杂度分别是o(n)和o(1)。不同的场景有不同的优化方式,总得来说,一般有分治…

    编程技术 2025年2月28日
    200
  • Python入门篇之条件、循环

    1.if语句 Python 中的if子句看起来十分熟悉. 它由三部分组成: 关键字本身, 用于判断结果真假的条件表达式, 以及当表达式为真或者非零时执行的代码块. if 语句的语法如下: if expression:   expr_true…

    编程技术 2025年2月28日
    200
  • Python入门篇之字符串

    所有标准的序列操作对字符串都适用,但字符串是不可变的 字符串常量: 单引号:‘spa”m’ 双引号:”spa’m” 三引号:”’…spam&#8…

    编程技术 2025年2月28日
    200
  • Python入门篇之列表和元组

    列表和元组的主要区别在于,列表可以修改,元组则不能。一般情况下,在几乎所有的情况下列表都可以代替元组 例如:使用序列可以表示数据库中一个人的信息(姓名,年龄) 复制代码 代码如下: 立即学习“Python免费学习笔记(深入)”; >&…

    编程技术 2025年2月28日
    200
  • python和shell实现的校验IP地址合法性脚本分享

    一、python校验ip地址合法性 执行效果: python代码: 复制代码 代码如下: 立即学习“Python免费学习笔记(深入)”;  [root@yang python]# vi check_ip.py#!/usr/bin/pytho…

    2025年2月28日
    200
  • Python入门篇之编程习惯与特点

    1.代码风格 在python中,每行程序以换行符代表结束,如果一行程序太长的话,可以用“”符号扩展到下一行。在python中以三引号(“””)括起来的字符串,列表,元组和字典都能跨行使用。并且以小括号(&…

    编程技术 2025年2月28日
    200
  • Python之PyUnit单元测试实例

    本文实例讲述了python之pyunit单元测试,与erlang eunit单元测试很像,分享给大家供大家参考。具体方法如下: 1.widget.py文件如下: 复制代码 代码如下: 立即学习“Python免费学习笔记(深入)”; #!/u…

    编程技术 2025年2月28日
    200
  • 基于python编写的微博应用

    本文实例讲述了基于python编写的微博应用,分享给大家供大家参考。具体如下: 在编写自己的微博应用之前,先要到weibo开放平台申请应用的公钥和私钥。下载python版的SDK,打开example目录,仿照oauthSetTokenUpd…

    编程技术 2025年2月28日
    200
  • python中元类用法实例

    本文实例讲述了python中元类用法,分享给大家供大家参考。具体方法分析如下: 1.元类(metaclass)是用来创建类的类 2.type(object):返回一个对象的类型,与object.__class__的值相同,type(name…

    编程技术 2025年2月28日
    200

发表回复

登录后才能评论