7.4.1 ORM介绍和pymysql安装及驱动的加载
1. 对象关系映射ROM
Python具有操作数据库的能力,它可以把SQL语句嵌入到python代码中来完成对数据库的连接、查询、断开等一系列的数据库访问操作。它是可行的,但太多的数据库操作会造成代码的繁琐与低效;同时对于开发者来说,SQL和数据库成为必备技能,但这根本体现不出Django的框架特点和使用它的好处。
Django采用所谓的ORM(对象关系映射)作为中间工具将一个Python的对象映射为数据库中的一张关系表并对SQL进行封装。这样,开发者不再需要关心数据库的具体操作,只需要专注于工程本身业务逻辑代码的实现。于是,整体的实现过程就是:Python代码通过ORM转换成SQL语句,再通过数据库驱动模块(pymysql)去实际操作数据库,如图7-14:
图7-14 ROM工作原理
很明显,只要在项目工程中安装ROM系统和pymysql驱动模块就能绕开SQL。Django自带ORM系统,不需要额外安装。
2. pymysql的安装与设置
在Python3.0以上版本支持MySQL数据库驱动模块的是pymysql,其安装方式如下:进入到工程的“Settings”对话框如图7-10,选择“project interpreter”,点击“+”按钮,进入到如图7-15的对话框,在搜索栏输入pymysql:
图7-15 安装pymysql对话框
在左侧列表中选择“pyMySQL”,点击“install Package”按钮进行安装。提示安装完毕后回到“Settings”对话框如图7-16,你会看到project interpreter的Package列表中多了PyMySQL选项,说明工程的独立编译环境已安装好pymysql模块了。
图7-16 显示已安装pymysql的settings对话框
安装pymysql之后并不意味着马上就可以访问数据库,只有在项目工程运行启动之后加载该驱动模块才能连接到数据库,这需要两步设置:
(1)把pymysql模板导入到工程中。在工程根目录下有一个与工程同名的目录,其下的文件__init__.py(可以用这样的书写方式来引用它:/kawasaki/__init__.py,后同)即是工程初始化文件,打开后文件后添加两行代码:
import pymysqlpymysql.install_as_MySQLdb()
(2)把数据库连接信息参数写入到工程的参数配置文件/kawasaki/settings.py的“DATABASES”部分中:
DATABASES = { default: { ENGINE:django.db.backends.mysql, NAME:kawasaki_database, HOST:127.0.0.1, PORT:3306, USER:root, PASSWORD:root, }}
至此,MySQL数据库的驱动模块pymysql安装并设置加载成功。