sae mysql django_SAE部署Django应用

最近研究了下Django,写了个小应用,部署到SAE的过程中发现有不少坑,网上的介绍要么已经过时,要么不够精炼,这里简单做下记录。

按照正常步骤在SAE建立一个新的Python应用,通过SVN导出到本地。

创建配置文件config.yaml

name: reading

version: 1

libraries:

- name: "django"

version: "1.8.3"

创建文件index.wsgi

import sae

from app_name import wsgi

application = sae.create_wsgi_app(wsgi.application)

将以上两个文件通过SVN提交以后,就能在SAE应用的首页看到Django的欢迎页了,万里长征成功迈出第一步。

接下来将本地调试好的程序拷贝到config文件同级目录,并上传至SVN。为了让本地的Django应用在SAE上完美运行,还需要再做两件事情。

设置后台静态目录

在SAE打开admin后台时,样式完全乱掉,那是因为没有找到静态文件。只需简单两步就能解决这个问题:

第一步:修改settings.py,设置STATIC_ROOT='static/'

第二步: 运行python manage.py collectstatic,把后台的静态文件同步到工程目录下的static文件夹,然后再通过SVN上传到SAE。

同步MySQL

SAE的MySQL服务器不支持远程连接的,同时也不能在SAE上执行syncdb命令,因此需要在本地搭建一个数据库,再通过SQL来进行同步。MySQL的搭建比较简单,参见http://www.jianshu.com/p/52f18a37f1e9。

为了保证同一套代码在本地及SAE上都能正常运行,需要修改settings.py里的数据库设置。

if 'SERVER_SOFTWARE' in os.environ:

print "from sae"

from sae.const import (

MYSQL_HOST, MYSQL_PORT, MYSQL_USER, MYSQL_PASS, MYSQL_DB

)

else:

print "from locale"

MYSQL_HOST = ''

MYSQL_PORT = ''

MYSQL_USER = 'root'

MYSQL_PASS = 'password'

MYSQL_DB = 'db_name'

DATABASES = {

'default': {

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

'NAME': MYSQL_DB,

'USER': MYSQL_USER,

'PASSWORD': MYSQL_PASS,

'HOST': MYSQL_HOST,

'PORT': MYSQL_PORT,

}

}

最后,我们可以通过phpMyAdmin来进行数据的导入导出,这里要特别注意,不能使用WorkBench,WorkBench的dump文件在SAE里不能正常执行。

本地搭建SAE环境

为了减少后期部署调试的工作量,应尽量保持本地开发环境与SAE的一致性。SAE提供了相关的工具来帮助我们搭建本地开发环境。

$ git clone https://github.com/sinacloud/sae-python-dev-guide.git

$ cd sae-python-dev-guide/dev_server

$ python setup.py install

安装完成后,通过以下命令启动SAE版Django服务:

$ dev_server.py

浏览器里输入http://localhost:8080 ,就可以访问到Django应用的首页。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值