Django数据库配置(一)

通常在生产部署中使用mysql,sqlite,postgresql数据库,当然Django也支持oracle,sqlServer等数据库。常用的链接mysql数据的包有mysqlclient和pymysql。

mysqlclient 是一个 Python 扩展模块,用于连接 MySQL 数据库服务器。它提供了数据库连接和操作的功能,允许 Python 程序与 MySQL 数据库进行交互。mysqlclient 是 MySQLdb 的一个分支,它兼容 Python 2 和 Python 3,并且是 MySQL 数据库在 Python 中的一个常见连接方式。

PyMySQL 是一个 Python 的第三方库,用于连接 MySQL 数据库服务器。它是一个纯 Python 编写的 MySQL 客户端库,实现了 MySQL 协议,允许 Python 程序与 MySQL 数据库进行交互。PyMySQL 是一个替代 mysqlclient(或 MySQLdb)的选项,尤其是在需要避免编译 C 扩展的情况下,因为 PyMySQL 是纯 Python 实现的,安装起来通常更简单。

至于两个包的效率如何,目前差别不是很大,也没有什么明显区别。

数据库配置是项目选择的数据类型,不同的数据库需要设置不同的数据库引擎,常用的数据库引擎如下,sqlserver下周单独讲解,需要安装第三方包:

'django.db.backends.sqlite3',
'django.db.backends.oracle',
'django.db.backends.mysql',
'django.db.backends.postgresql_psycopg2',

项目创建时,默认创建了sqlite3数据库,小型项目常用数据库,嵌入式系统常用,占用资源很少,sqlite3数据库的配置如下:

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.sqlite3',  
        'NAME': BASE_DIR / 'db.sqlite3',
    }
}

如果使用mysql作为数据库,需要安装连接mysql的第三方包,mysqldb是django最开始常用的包,但是由于mysqldb不在支持python3,所以django2.0以后,就不再使用mysqldb作为链接模块了,而是选择mysqlclient作为默认的链接模块(可以更换)。

在配置mysql之前,先安装好mysqlclient,在安装过程中会遇到一些问题,但是很简单就解决了,这里就不介绍如何安装mysqlclient了。网上有很多讲解。

DATABASES = {
    'default': {
        #'ENGINE': 'django.db.backends.sqlite3',
        #'NAME': BASE_DIR / 'db.sqlite3',
        'ENGINE':'django.db.backends.mysql',
        'NAME':'django_db',
        'USER':'root',
        'PASSWORD':'123456',
        'HOST':'127.0.0.1',
        'PORT':3306, 
    }
}

注意配置PORT一定是数字,不能是字符串。

pymysql链接mysql

除了使用mysqlclient以外,还可以使用pymysql模块链接mysql数据库。

pymysql安装成功后(pip install pymysql),只需要在Django项目的django_standard的__init__.py文件

加入以下代码即可,settings.py文件中的数据库配置信息无需修改:

import pymysql
pymysql.install_as_MySQLdb()

​如果为了验证是否更换成功了默认的mysql链接库,可以先卸载mysqlclient,这样可以排除干扰。

注意在使用Mysql8.0以上版本,有可能报错,因为数据库的用户名加密的方式改变了,如何解决网上有很多教程,就不在这里介绍,postgresql,oracle,sqlite3的settings.py配置除了驱动不一样,其他几个配置都一样,后面专门写一篇关于链接sqlserver和MongoDB数据的。

  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值