Django项目让本地和服务器环境数据库配置自动切换

本文介绍了在Django项目中如何实现本地和服务器环境数据库配置的自动切换,包括使用服务器特有模块判断、os模块变量判断以及创建独立配置文件的方法,确保在不同环境下无需手动修改数据库配置。
摘要由CSDN通过智能技术生成
Web开发中通常在本地进行开发,然后将代码部署到服务器上,这里就涉及本地环境和服务器环境数据库的配置。
我使用的服务器环境是新浪云(SAE),代码部署是通过git上传到指定的GIT仓库。
要切换两个数据库配置选项,最笨的办法是部署代码时设置为服务器数据库环境,本地测试时再把配置改回本地数据库环境。
这样就面临一个开发效率问题:如何在使用一套代码的情况下,让本地和服务器自动选择正确的数据库配置呢?

记得之前在浏览Django官网时有看到multi database配置,估计跟这有关系,上去找一下,果然看到有数据库路由设置。

一个Django项目可以设置多个数据库,比如设置数据库读写分离需要设置主从数据库,而究竟选择哪个数据库需要有负责路由的类来决定。
在settings.py中,DATABASES 设置数据库的配置表,而 DATABASE_ROUTERS 则设置路由数据库的类。
指定的Router类可以实现 db_for_read,db_for_write等方法
参考官网说明:https://docs.djangoproject.com/en/1.8/topics/db/multi-db/#topics-db-multi-db-routing

如何区分当前环境是本地还是服务器呢?

有几种方法:


1.使用导入服务器特有模块来判断,比如sae环境,如果导入sae模块成功说明是在服务器环境了。

@settings.py

# 数据库配置表
DATABASES = {
	# 默认使用本地数据库
    'default': { 
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'django_gallery',
        'USER': 'xxx',
        'PASSWORD': 'xxx',
        'HOST': '127.0.0.1',
        'PORT': '
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值