设置Django连接到Google Cloud SQL(MYSQL)

设置Django连接到Google Cloud SQL(MYSQL)

环境:

python2.7
GAE
Django1.5

目的:

将开发的Table反映到Google的数据库上。
然后上传到GAE生产环境时,可以正常使用数据库。

官方教程

https://cloud.google.com/appengine/docs/python/cloud-sql/django

设置数据库连接

Setting.py

import os
if os.getenv('SERVER_SOFTWARE', '').startswith('Google App Engine'):
    # Running on production App Engine, so use a Google Cloud SQL database.
    DATABASES = {
        'default': {
            'ENGINE': 'django.db.backends.mysql',
            'HOST': '/cloudsql/your-project-id:your-instance-name',
            'NAME': 'django_test',
            'USER': 'root',
        }
    }
elif os.getenv('SETTINGS_MODE') == 'prod':
    # Running in development, but want to access the Google Cloud SQL instance
    # in production.
    DATABASES = {
        'default': {
            'ENGINE': 'django.db.backends.mysql',
            'INSTANCE': 'your-instance-ip-address',
            'NAME': 'django_test',
            'USER': 'root',
            'PASSWORD': 'password',
        }
    }
else:
    # Running in development, so use a local MySQL database.
    DATABASES = {
        'default': {
            'ENGINE': 'django.db.backends.mysql',
            'NAME': 'django_test',
            'USER': 'root',
            'PASSWORD': 'password',
        }
    }

其中第一段为在GAE服务器端的连接GAE数据库的执行代码。
第二段为本地直接连接到GAE数据库的代码。
第三段为本地连接本地数据库的代码。
下面具体设置第二段

elif os.getenv('SETTINGS_MODE') == 'prod':
    # Running in development, but want to access the Google Cloud SQL instance
    # in production.
    DATABASES = {
        'default': {
            'ENGINE': 'django.db.backends.mysql',
            'HOST': 'your-instance-ip-address', <- 关键字为HOST,设为数据库所在的IP地址
            'NAME': 'django_test',  <- 数据库名,需要在GAE上添加完毕
            'USER': 'root', <- 在GAE上设置完毕可以从本地访问的用户
            'PASSWORD': 'password', <- 密码
        }
    }

同步Table的步骤

  • 在GAE上添加数据库,添加本地IP,设置可以从本地的访问
  • 在GAE上设置可以从本地访问的用户,密码
  • 本地设置环境变量 SETTINGS_MODE=prod
  • 执行同步数据库 ./manage.py syncdb

执行完毕后,显示产生各个Table,将Django的Model反映到GAE的数据库上,
即可以现在使用GAE的数据库了。
上传到GAE服务器后,第一种方式也是可以正常使用了。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值