天天看點

SAE python django 同步資料庫到線上

<span style="font-family: Arial, Helvetica, sans-serif; background-color: #ffffff;"> django資料庫建表不用寫MYSQL語句,直接在models.py中定義好model類,然後執行 python manage.py syncdb 就可以直接自動建立對應的表了。如下代碼所示</span>

class Publisher(models.Model):

name = models.CharField(max_length = 30)

address = models.CharField(max_length = 50)

city = models.CharField(max_length = 60)

state_province = models.CharField(max_length = 60)

country = models.CharField(max_length = 50)

website = models.URLField()

class Author(models.Model):

first_name = models.CharField(max_length = 30)

last_name = models.CharField(max_length = 40)

email = models.EmailField()

class Book(models.Model):

title = models.CharField(max_length = 50)

authors = models.ManyToManyField(Author)

publisher = models.ForeignKey(Publisher)

publish_date = models.DateField()

  就可以建立對應的四個MSQ表格,這種做法本地操作沒問題,可以DJANGO項目部署到SAE上面如何實作呢?

  1. 本地得安裝 SAE 環境

  2. settings.py 中加入以下代碼

if True:

from sae._restful_mysql import monkey

monkey.patch()

MYSQL_HOST_M = 'w.rdc.sae.sina.com.cn'

MYSQL_PORT = '3307'

MYSQL_USER = 'APP_ACCESS'

MYSQL_PASS = 'APP_SECRET'

MYSQL_DB   = 'app_APP_NAME'

DATABASES = {

'default': {

'ENGINE': 'django.db.backends.mysql',

'NAME': MYSQL_DB,

'USER': MYSQL_USER,

'PASSWORD': MYSQL_PASS,

'HOST': MYSQL_HOST_M,

'PORT': MYSQL_PORT,

}

  其中, APP_ACCESS, APP_SECRET, APP_NAME 都在sae的應用頁可以看到,換成你應用的相關代碼,然後執行 sync db 即可

  執行完之後, True 改成 False

最新内容請見作者的GitHub頁:http://qaseven.github.io/