← 返回文章

SAE上部署Django (Mac OSX)

转自:http://765i.cn/sae上部署django-mac-osx/ Deploying Django on SAE (Mac OSX) Sina App Engine(简称SAE)是新浪研发中心推出的国内首…

#Mac#Python#SAE
Python

转自:http://765i.cn/sae上部署django-mac-osx/

Deploying Django on SAE (Mac OSX)

Sina App Engine(简称SAE)是新浪研发中心推出的国内首个公有云计算平台,支持PHP,MySQL,Memcached,Mail,TaskQueue,RDC(关系型数据库集群), KVDB(非关系型数据库)等服务。我的博客就是假设在SAE上的,云平台的好处就是省去了自己搭建环境、维护服务的时间,而且根据你自己服务的使用公共资源的多少来收费。用户第一次注册的时候赠送一定量的资源,而且还可以通过认证来获得更多的免费资源。更多关于SAE 新浪云平台

最近SAE开放了了Python的测试,好不容易通过了申请,虽然已经很早了,但是还是很兴奋的。最近在学习Django,就赶快尝试着部署一个Django到SAE。

第一部分

现在就开始吧,先看看在本地环境需要做些什么 1.为SAE项目创建一个目录,把我们需要的一切都放在这里 mkdir sae-django cd sae-django

2.创建一个虚拟环境 我们要知道为什么需要创建一个虚拟环境

如果你和我一样,在做Django应用开发中喜欢使用一些Django第三方扩展来进行Django的快速开发,那么可能就会在自己的Linux系统中的Python目录中大量的安装过一些扩展库了,但A应用用到的扩展B应用又不一定需要用到。当然一个应用开发完成,可以需要写一些安装手册这类的,这时你可能会有些茫然,到底哪些扩展是自己这个应用所用到的?这样看来一个“干净”的开发环境还是很有必要的。

利用Virtualenv能快速的搞定这样一个开发环境,事实上不仅仅是Django需要,你在做任何Python开发的的时候,都可以考虑做这么一个“干净”的虚拟环境来进行开发,这样就不必担心搞乱自己的Python主目录时的库程序了。具体而言,做这么一个开发环境,可能会需要用到pip,virtualenv,easy_install。 来看看MacOSX下是怎么来安装我们需要的这些工具。我用的是Lion,Mac有一个默认的工具easy_install用来安装各种Package。

a. 安装virtualenv。 用管理员权限进行安装,命令: ** sudo easy_install virtualenv** 这步完成后,以后就可以进接使用virtualenv来进行Python开发环境的创建了。 b. 环境创建 virtualenv mysite 会得到下面的返回结果 New python executable in mysite/bin/python Installing setuptools…………done. Installing pip……………done. 这时会在mysite目录中生成三个Python所需的目录。

c.启用虚拟环境 进入mysite目录,执行: source bin/activate 这里你会发现原来的命令提示符发生了变化,多了一个括号,里面的字符即为你所创建的虚拟环境的名称。接下来的所有模块的安装,都只会直接安装到项目目录中去。

前期的准备工作就完成了,接下来就看看怎么安装django,并把django部署到SAE上吧

第二部分

4. 准备部署到SAE

a.我们首先是要在SAE上创建新的应用

http://sae.sina.com.cn/?m=myapp&a=create

b.在本地检出SVN代码(mydjangoapp),就在一开始创建的sae-django目录下 svn co https://svn.sinaapp.com/mydjango c.建立一个数字为目录名的版本目录 mkdir 1 cd 1 d.新建文件index.wsgi,内容如下

import os
import django.core.handlers.wsgi
import sae
os.environ['DJANGO_SETTINGS_MODULE'] = 'my_first_django.settings'
application = sae.create_wsgi_app(django.core.handlers.wsgi.WSGIHandler())

e.安装Django 使用PIP进行Django的安装,SAE当前仅支持1.2.7。 当前我们还是在虚拟环境下,执行命令: ** pip install django==1.2.7 ** 安装完成后即可进行项目的开发工作了。 PIP有一个很不错的功能,可使用该功能来自己生成项目安装的扩展,而其他用户在使用你的应用的时候,也可以方便的通过这种方式,完成扩展的再次安装。 a.扩展生成: pip freeze > prj.txt 会在当前目录中生成这样一个文本文件,包含扩展名及相应的版本号。 b.下次进行安装 pip install -r prj.txt 自动装所有模块一次些安装完成。 需要注意的是,你每次开始继续开发项目的时候,都需要使用source进入到虚拟环境后才可以正确的进行项目的开发。 f.初始化django应用: django-admin.py startproject my_first_django g. SAE需要从django安装目录复制admin的media目录到版本目录下, django的安装路径是 mysite/lib/python2.7/site-packages cp -rf django/contrib/admin/media/ .

最后的目录结构是在sae-django下 mydjango/ mysite/ ——————————- 1/ ——————————- index.wsgi media my_first_django

h. 提交代码 访问 http://$yourappname.sinaapp.com ,就可看到Django的欢迎页面了。