【转】新浪SAE部署django博客

转自:https://www.cnblogs.com/smdm/p/5258744.html

新浪SAE部署django博客

步骤:

  第一步:注册新浪SAE账号(即新浪微博),下载TortoiseSVN

  第二步:部署代码

      使用SAE来部署代码,SAE提供的是PAAS层的云服务,即不是给你一个虚拟主机而是直接上传应用。进入SAE的控制台,下图所示:

      

      1. 创建新应用:

      

      2. 选择python2.7后,创建新项目成功后,回到控制台,点击项目就可以进入对项目进行管理。这里可以用git和svn来上传代码,这里推荐用svn。

      3. 创建一个版本,版本号为1。创建成功后,可以看到如下信息。

      

      4. 使用svn部署代码

       首先在合适的位置创建一个svn文件夹,比如 E:\svn。

       然后,在svn下面再创建一个文件夹,名字是在创建应用时填在二级域名里的名字,如lcnet。

       鼠标右击文件夹pylabsite,选择SVN  Checkout,填写URL,其他默认,点击OK,之后填写注册邮箱和密码,填写时选上save authentication。

      

      完成之后在lcnet文件夹里会多出2个文件夹,1和.svn,.svn里的东西不用管,重点看1,刚检出来的时候 1 目录下只有config.yaml

      和index.wsgi两个文件,然后将本地项目lcnet复制到1文件夹里,由于SAE最多支持Django1.4版本,这里要把python安装位置(例

      如C:\Python27\Lib\site-packages)的Django包拷贝过来,新建一个site-packages文件夹,记得将site-packages\django

      \contrib\admin下的static放在1文件夹下,文件目录结构如下:

      

  三、修改文件信息:

      修改config.yaml和index.wsgi这两个文件。

      

1

2

3

4

5

6

7

8

9

10

11

#--config.yaml--#

name: lcnet2

version: 2

 

libraries:

- name:"django"

  version:"1.8.3"

 

handlers:

- url: /foo

  static_dir: foo

      

1

2

3

4

5

6

7

8

9

10

#--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" "lcnet_blog.settings")

 

from django.core.wsgi import get_wsgi_application 

application = get_wsgi_application()

      1/lcnet_blog/wsgi.py修改如下:

      

1

2

3

4

5

6

7

8

import os

import sys

from django.core.wsgi import get_wsgi_application

root = os.path.dirname(__file__)

sys.path.insert(0, os.path.join(root,'.','site-packages'))

os.environ.setdefault("DJANGO_SETTINGS_MODULE""lcnet_blog.settings")

 

application = get_wsgi_application()

      1/lcnet_blog/urls.py修改如下:

1

2

3

4

5

6

7

8

9

10

11

12

#--urls--#

from django.conf.urls import include, url

from django.contrib import admin

urlpatterns = [

 

    url(r'^admin/', include(admin.site.urls)),

 

    url(r'',include('blog.urls'))

]

admin.autodiscover()

from django.contrib.staticfiles.urls import staticfiles_urlpatterns

urlpatterns += staticfiles_urlpatterns()

      1/lcnet_blog/settings.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

25

26

27

28

29

30

31

32

EBUG = True

TEMPLATE_DEBUG = False

ALLOWED_HOSTS = ['.sinaapp.com',]

 

debug = not environ.get("APP_NAME","")

 

if debug:

    MYSQL_DB = 'lcnet'

    MYSQL_USER = 'root'

    MYSQL_PASS = 'root'

    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

 

DATABASES = {

    'default': {

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

        'NAME': MYSQL_DB,    ## 数据库名称

        'USER': MYSQL_USER,

        'PASSWORD': MYSQL_PASS, ## 安装 mysql 数据库时,输入的 root 用户的密码

        'HOST': MYSQL_HOST_M,

        'PORT': MYSQL_PORT,

    }

}

  第四步、上传代码:

      

    将所有要修改的东西修改完,就可以通过svn上传到SAE了,操作方法,右键1,选择SVN Commit…

              Django包有个十几M,不过上传速度很慢,这个过程可以休息会(sae偶尔会抽,多尝试上传几次)。

 第五步、配置Mysql:

    以上配置完成了,现在数据库还是空的,有一种方法是在本地部署SAE环境然后 python manage.py migrate

      同步到服务器,不过这样搞很折腾。

 

             第二种方法是在本地执行 python manage.py migrate,然后从本地Mysql导出SQL语句文件,然后在SAE的Mysql

      运行SQL语句,我这里是用 Navicat for MySQL 导出的SQL语句文件,很方便。

 

    

    然后就可以访问 yourAppName.sinaapp.com 来看我们的劳动成果了。

 

    参考:

       1.  http://www.sinacloud.com/doc/sae/python/tutorial.html

         2.  http://www.mamicode.com/info-detail-471552.html

         3.  http://my.oschina.net/u/877170/blog/314459?fromerr=nY9nBubm

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值