部署

checkout

现在 checkout 到本地 SAE 上的代码

新建一个文件夹,随便你方便的地方,我的叫 myapp,和我应用的名称一样

右击选择 SVN Checkout…

好,这样就将代码 checkout 到本地了,接下来你看到的文件树应该是这样的:

1
2
3
4
5
--myapp
|--.svn\
|--1\
|--config.yaml
|--index.wsgi

创建工程

正式开始自己的代码,像往常一样创建 django project

1
django-admin startproject myapp #myapp就是你的 SAE 上应用名称

接下来,你要把 project 中的文件放到文件夹 1\ 中,像这样:

1
2
3
4
5
6
7
8
9
10
11
--myapp
|--.svn\
|--1\
|--config.yaml
|--index.wsgi
|--manage.py
|--myapp\
|--__init__.py
|--settings.py
|--urls.py
|--wsgi.py

修改配置文件

修改 config.yamlindex.wsgi 文件修改 config.yamlindex.wsgi 文件如下:

–config.yaml:

1
2
3
4
5
6
7
8
9
name: foolself
version: 1
libraries:
- name:"django"
version:"1.8.4"
handlers:
- url: /static
static_dir: static

–index.wsgi:

1
2
3
4
import sae
from foolself import wsgi
application = sae.create_wsgi_app(wsgi.application)

接着修改 myapp 文件夹下的 wsgi.py 文件如下:

1
2
3
4
5
6
7
8
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", "myapp.settings")
from django.core.wsgi import get_wsgi_application
application = get_wsgi_application()

修改 myapp 文件下 setting.py 文件,添加下面内容:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
import os
BASE_DIR = os.path.dirname(os.path.dirname(__file__))
#BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
import os.path
from os import environ
debug = not environ.get("APP_NAME", "")
if debug:
#LOCAL 本地调试用,便于导出数据库,根据本地MYSQL数据库填写下面参数<----------------如果文件中出现中文,一定要在开始添加 #coding:utf-8
MYSQL_DB = 'foolself'
MYSQL_USER = 'root'
MYSQL_PASS = '1234'
MYSQL_HOST_M = ''
MYSQL_HOST_S = ''
MYSQL_PORT = ''
else:
#SAE
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

要用MySQL数据库,修改 DATABASES 部分如下:

1
2
3
4
5
6
7
8
9
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': MYSQL_DB,
'USER': MYSQL_USER,
'PASSWORD': MYSQL_PASS,
'HOST': MYSQL_HOST_M,
'PORT': MYSQL_PORT,
}

呵,这样整个配置就完成了,够费劲的。

好,现在把更高版本的 django 传到自己的应用中

在文件夹 1/ 下创建文件夹 site-packages/,将自己本地的 django 库复制到新建的文件夹下

像这样:

1
2
3
4
--1\
|--site-packages\
|--django\
|--..

commit

最后,右击,选择svn commit,选择 ALL,OK,这样就将刚才添加、修改的代码同步到SAE上了

好,至此,你的 django 应用就部署完毕了,打开自己的网址 myapp.sinaapp.com\

你应该看到这个熟悉的网页了:


第一次在互联网上访问自己的网站还有点小激动呢 ↖(^ω^)↗