zoukankan      html  css  js  c++  java
  • 42.MySQL数据库安装,及驱动程序选择

    MySQL驱动程序安装:

    我们使用Django来操作Mysql,实际上底层还是通过Python来操作的,因此我们想要使用Django来操作mysql,首先还是需要安装一个驱动程序,在Python3中,驱动程序有多种选择。比如有pymysql以及mysqlclient等。这里我们就是用pymysql来操作。pymysql安排非常简单,只需要通过pip install pymysql即可安装。
    常见Mysql驱动程序介绍:
    1. MySQL-python:也就是MySQLdb,是对C语言操作MySQL数据库的一个简单封装。遵循了Python DB API v2.但是只支持Python2,目前还不支持Python3.
    2. mysqlclient:是mysql-python的另一个分支。支持Python3并且修复了一个bug。
    3. pymysql:纯Python实现的一个驱动,因为是纯Python实现的,因此执行效率不如MySQL-python。并且也因为是纯Python编写的,因此可以和Python代码无缝连接。
    4. MySQL Connectot/Python:MySQL官方推出的使用纯Python连接MySQL的驱动,因为是纯Python开发的,效率不高。
    在Django中操作数据库有两种方式,第一种方式就是使用原生sql语句操作,第二种就是使用ORM模型来操作。
    在Django中使用原生sql语句操作其实就是使用python db api 的接口来操作,如果你的mysql驱动程序使用的是pymysql,那么你就是使用pymysql来操作的,只不过Django将数据库连接部分封装好了,我们只要找settings.py中配置好了数据库连接信息后直接使用Django封装好的接口就可以进行操作了,示例代码如下:

    以上的execute以及fetchall方法就是Python DB API规范中定义好的,任何使用Python来操作mysql的驱动程序都应该遵循这个规范。所以不管是使用pymysql或者是mysqlclient 或者是mysqldb,他们的接口都是一样的。

    Python DB API规范下cursor对象常用的接口:

    1. description:如果cursor执行了查询的sql代码,那么读取cursor.description属性的时候,将返回一个列表,这个列表中封装的是元组,元组中封装的分别是(name,type_code,display_size,internal_size,precision,scale,null_ok),其中name参数代表的是查出来的数据字段名称,其他参数暂时用处不大。
    2. rowcount:代表的是在执行了sql语句后受影响的行数。
    3. close:关闭游标。关闭游标以后就再也不能使用了,否者会抛出异常。
    4. execute(sql[,parameters]):执行某个sql语句,如果在执行sql语句的时候还需要传递参数,那么可以传给parameters参数,示例代码如下:
    5. fetchone:在执行查询操作之后获取第一条数据。
    6. fetchmany(size):再执行查询操作之后,获取多条数据,具体的个数根据size的大小,如果不传入size参数,那么默认获取第一条数据。
    7. fetchall:获取所有满足sql语句的数据。
    始于才华,忠于颜值;每件事情在成功之前,看起来都是天方夜谭。一无所有,就是无所不能。
  • 相关阅读:
    递归算法的时间复杂度
    5分钟了解lucene全文索引
    Codeforces Round #234A
    快速排序法
    构造方法、类的初始化块以及类字段的初始化顺序
    Java之方法重载篇(我重载了,你要如何来调用我。。)
    突如其来的"中断异常",我(Java)该如何处理?
    一个简单的wed服务器SHTTPD(4)————SHTTPD支持CGI的实现
    一个简单的wed服务器SHTTPD(3)————SHTTPD多客户端支持的实现
    一个简单的wed服务器SHTTPD(2)———— 客户端请求分析
  • 原文地址:https://www.cnblogs.com/guyan-2020/p/12210960.html
Copyright © 2011-2022 走看看