怎么把django部署到sae
发布网友
发布时间:2022-04-07 17:27
我来回答
共1个回答
热心网友
时间:2022-04-07 18:57
第一步:注册新浪SAE账号,下载TortoiseSVN。
第二步:创建新应用。
注册应用名称,注册二级域名,开发语言选择Python2.7版本,然后进入应用管理界面,第一件事先初始化Mysql。
然后点击代码管理,创建一个版本,版本号为1,创建成功之后可以看到类似的信息。
第三步:使用SVN部署代码。
首先在合适的位置创建一个svn文件夹,比如 E:\svn\。
然后,在svn下面再创建一个文件夹,名字是在创建应用时填在二级域名里的名字,如pylabsite。
鼠标右击文件夹pylabsite,选择SVN Checkout,填写URL,其他默认,点击OK,之后填写注册邮箱和密码,填写时选上save authentication,没悬念。
完
成之后在pylabsite文件夹里会多出2个文件夹,1和.svn,.svn里的东西不用管,重点看1,刚检出来的时候 1
目录下只有config.yaml和index.wsgi两个文件,然后将本地项目pylabsite复制到1文件夹里,由于SAE最多支持
Django1.4版本,这里要把python安装位置(例如C:\Python27\Lib\site-packages)的Django包拷贝过来,
新建一个site-packages文件夹,放在里面,文件目录结构如下:
本地文件是这样的:
version: 1
然后修改config.yaml和index.wsgi这两个文件。
#-- config.yaml -- #
name: pylabsite
version: 1
libraries:
- name:"django"
version:"1.6"
handlers:
- url: /static
#-- index.wsgi --#
import os
import sys
root = os.path.dirname(__file__)
sys.path.insert(0, os.path.join(root, ‘.‘, ‘site-packages‘))
os.environ.setdefault("DJANGO_SETTINGS_MODULE" , "pylabsite.settings")
from django.core.wsgi import get_wsgi_application
application = get_wsgi_application()
这里的格式很重要,比如- name之间有空格,没留空格就会出错,”pylabsite.settings”是我自己的项目名,灵活改动。
1/pylabsite/wsgi.py修改如下:
import os
import sys
root = os.path.dirname(__file__)
sys.path.insert(0, os.path.join(root,‘..‘,‘site-packages‘))
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "pylabsite.settings")
from django.core.wsgi import get_wsgi_application
application = get_wsgi_application()
然后1/pylabsite/settings.py修改:
import os
import os.path
from os import environ
debug = not environ.get("APP_NAME","")
if debug:
MYSQL_DB = ‘pylabsite‘
MYSQL_USER = ‘admin‘
MYSQL_PASS = ‘111‘
MYSQL_HOST_M = ‘127.0.0.1‘
MYSQL_HOST_S = ‘127.0.0.1‘
MYSQL_PORT = ‘3306‘
else:
import sae.const
MYSQL_DB = sae.const.MYSQL_DB
MYSQL_USER = sae.const.MYSQL_USER
MYSQL_PASS = sae.const.MYSQL_PASS
MYSQL_HOST_M = sae.const.MYSQL_HOST
MYSQL_HOST_S = sae.const.MYSQL_HOST_S
MYSQL_PORT = sae.const.MYSQL_PORT
DEBUG = False
TEMPLATE_DEBUG = False
DATABASES = {
‘default‘: {
‘ENGINE‘: ‘django.db.backends.mysql‘,
‘NAME‘: MYSQL_DB,
‘USER‘: MYSQL_USER,
‘PASSWORD‘: MYSQL_PASS,
‘HOST‘: MYSQL_HOST_M,
‘PORT‘: MYSQL_PORT,
}
}
DEFAULT_CHARSET=‘utf-8‘
ALLOWED_HOSTS = [
‘.sinaapp.com‘,
]
第四步:上传
将所有要修改的东西修改完,就可以通过svn上传到SAE了,操作方法,右键pylabsite,选择SVN Commit…
Django包有个十几M,不过上传速度很慢,这个过程可以休息会。
第五步:配置Mysql
以上配置完成了,现在数据库还是空的,有一种方法是在本地部署SAE环境然后 python manage.py syncdb 同步到服务器,不过这样搞很折腾。
第二种方法是在本地执行 python manage.py syncdb 然后从本地Mysql导出SQL语句文件,然后在SAE的Mysql运行SQL语句,我这里是用 Navicat for MySQL 导出的SQL语句文件,很方便。
这里选择执行SQL语句,也可以直接导入SQL文本,整体来说,配置数据库没悬念。