SAE下创建一个django项目

来源:互联网 发布:知乎 phyton 编辑:程序博客网 时间:2024/06/05 20:27

最近准备使用SAE作为django的服务器,由于SAE目前不支持django1.6,因此记录下搭建django1.6的详细过程


1、在SAE中创建APP

2、将SVN空间克隆到本机上(使用SAE自带的上传发现总是会有问题,并且为了代码控制还是选择了直接使用SVN)

svn co <app_svn_url>

3、克隆完仓库后会有如下目录:

app_name-1(version)--index.wsgi--config.yaml

4、创建django项目

(1)创建django项目,在版本目录1下执行

django-admin.py startproject mysite

(2)修改版本目录1下的config.yaml(为了制定是django项目,以及django版本),修改后的config.yaml如下:

name: app_nameversion: 1libraries:- name: "django"  version: "1.6"

(3)修改版本目录1下的index.wsgi,默认的index.wsgi指向的是一个基本的python项目,要想要指向django项目还需要修改,修改后如下:

import osimport sysroot = os.path.dirname(__file__)sys.path.insert(0, os.path.join(root, 'site-packages'))import sys  import sae  sys.path.append("mysite/")  from mysite import wsgi    application = sae.create_wsgi_app(wsgi.application)  


注意:由于index.wsgi文件与要使用的django项目中的wsgi.py文件不在同一级目录中,因此使用相对路径定位wsgi.py文件,./mysite是进入django的主目录,目录下有manage.py文件和mysite文件夹,而wsgi.py文件在mysite文件夹中。

(4)修改mysite/mysite/wsgi.py,使packages中的django1.6得到引入

import osimport sysroot = os.path.dirname(__file__)sys.path.insert(0, os.path.join(root, '..', 'site-packages'))# We defer to a DJANGO_SETTINGS_MODULE already in the environment. This breaks# if running multiple sites in the same mod_wsgi process. To fix this, use# mod_wsgi daemon mode with each site in its own daemon process, or use# os.environ["DJANGO_SETTINGS_MODULE"] = "mysite.settings"os.environ.setdefault("DJANGO_SETTINGS_MODULE", "mysite.settings")# This application object is used by any WSGI server configured to use this# file. This includes Django's development server, if the WSGI_APPLICATION# setting points here.from django.core.wsgi import get_wsgi_applicationapplication = get_wsgi_application()# Apply WSGI middleware here.# from helloworld.wsgi import HelloWorldApplication# application = HelloWorldApplication(application)


(5)一切配置完毕,运行会发现错误,因为SAE目前并没有django1.6,因此需要开发者自己上传django1.6的依赖包,做法如下:

(a)在版本目录1下创建文件夹site-packages(用来存放django环境)

(b)找到系统中python目录下(/Library/Python)的library/site-packages,可以看见django文件夹,将文件夹整个复制到site-packages目录下

(c)执行svn同步命令

svn add 1/mysitesvn add 1/site-packagessvn commit -m "first time"



0 0
原创粉丝点击