使用MySQL作为Django数据库
Django作为WEB开发框架,默认使用SQLite作为开发数据库。生产环境,则通常需要使用MySQL或者PostgreSQL。这里介绍在CentOS上部署完MySQL和Python+Django环境之后,如何转换到MySQL后端。
Django使用mysql后端需要通过
pip
安装mysqlclient
模块,这个编译安装过程依赖系统安装mysql-devel
软件包。对于早期的CentOS 5,建议采用MySQL官方软件仓库在CentOS 5安装MySQL 5.7,这样可以方便完成mysqlclient
编译(官方MySQL安装路径的库文件和头文件可以直接被编译程序识别,其他非标准路径需要设置)
安装MySQL
CentOS
通过MySQL官方仓库安装 https://dev.mysql.com/downloads/repo/yum/
对于CentOS/RHEL 5建议使用MySQL官方仓库安装安装;CentOS/RHEL 6及以上版本,建议使用发行版自带的MiraDB。这样可以确保
mysql-devel
库及头文件都在标准目录下,方便后续编译安装Python的mysqlclient
。(高版本6/7也可直接使用发行版提供的MySQL-python
)
执行初始化安全设置:
macOS
在macOS上,要安装mysqlclient for django,需要首先通过brew
安装mysql软件,设置环境后才能够使用pip install mysqlclient
。否则会出现报错EnvironmentError: mysql_config not found
:
在macOS平台使用Jetbrains的PyCharm来开发Django,需要安装对应的
mysqlclient
。安装方法参考Install mysqlclient for Django Python on Mac OS X Sierra
这里执行
source venv2/bin/activate
是为了激活Python virtualenv环境
准备数据库
参考 创建MySQL数据库和授权 生成一个用于Django应用的简单数据库
参考
Django支持MySQL 5.5或更高版本
安装MySQL Django adapter,mysqlclient
准备python虚拟环境(注意:系统安装Python 2.7和pip)
创建django项目
这里初始花一个django项目(
startproject myapp .
),然后在这个项目下创建一个名为first_app
的应用,这样后续就可以通过访问first_app
来实现,并且不同功能模块可以划分到不同的应用下面。
配置
settings.py
数据库配置,参考django databases - 默认是sqlite3,需要修改成MySQL配置
注意
:这里将数据库密码明文存储在配置文件中是存在安全隐患的。解决的方法是采用环境变量替换。参考MySQL password in Django设置用户环境变量配置文件~/.bash_profile
将上述配置修改成
Install and Configure MySQL for Django提供了另外一种基于django环境的设置方法(不依赖Linux/Unix shell环境)。
执行检查和同步迁移数据库
运行django服务
参考
Last updated