Django1.6在sae上的部署

北城余情 提交于 2020-10-29 16:32:14
本人最近打算从python入手,进入开发领域,但是光学不练假把式,于是搞起了django,这是一个python的web框架,用起来倒也顺手,做好的网站别人看不到也胸闷,于是就玩NAT穿越,可恶的长宽让我失去了最后的稻草,于是乎找到了SAE,SAE对中级开发者以上才算是永久免费,但对于初学者的我来说,它还是可以小小的满足我一下,初步认证基本可以使博客免费一年吧,如果真有什么需要,也可以按需购买,个人小站一年也就20元钱就可以搞的定,更何况以后水平高了,还能享受免费,最最重要的是在SAE上部署django有很好的文档,其它的空间都是php的多,所以决心在SAE上进行部署。

1 到http://sae.sina.com.cn/注册一个账号

用微博账号进行登录并授权

授权后进入到注册页面

这边手机号绑定,也就意味着一个手机号只能用一次,图借用别人的

手机验证后,全部的认证过程就此结束,也就拥有了一个SAE的账号
2 管理APP
创建应用

一个应用一个二级域名,当然也可以绑定独立域名,需要在sae上进行备份再创建,否则流量会很大

创建一个python的应用,应用名为mysite,这个应用名好比 django-admin.py startproject mysite也就是说sae上的应用指的是django上的project

创建完成后,会有一个mysite的应用名,点击进入编辑



在应用管理-代码管理中创建一个版本



这边创建好后看到可以编辑代码,也可以上传代码包,sae支持svn上传因此要下载一个TortoiseSVN上传代码用进入到本地,找个空档右击则会出现 SVN-Checkout,输入用户名,密码进行下载sae上的版本到本地


进入到hding/1目录下会有 config.yamlindex.wsgi两个文件,因为版本并没有内容,所以只有这两个文件

vi config.yaml
name: terryding
version: 1

libraries:                        \\必需配的                                            
-   name: "django"               \\千万记得最前面有个’-’,冒号后面有空格,最好用vim有颜色标记
    version: "1.6"
    
handlers:                         \\静态文件
-   url: /static
static_path: /marry/static



修改index.wsgi
vi index.wsgi
#coding:utf-8
import os
import sys
                                \\部署1.6
root = os.path.dirname(__file__)

sys.path.insert(0,os.path.join(root,'.','site-packages/Django-1.6.11'))  //告知路径在1/site-packages/Django-1.6.11取相关文件和模块
os.environ.setdefault("DJANGO_SETTINGS_MODULE","mysite.settings") //your project name寻找settings.py

from django.core.wsgi import get_wsgi_application
application = get_wsgi_application()



把本地调试好的project移到hding/1/文件夹下,文件目录形式

└─hding
    └─1
        ├─mysite                       django-admin.py startproject mysite
	    ├─config.yaml
        ├─index.wsgi
        ├─managy.py

	 
        └─polls                         django-admin.py startapp polls
            ├─static
            │  
            └─templates



回到文件夹hding/1/ 右击SVN commit

不选ALL会有文件选不中,否则你可以先add再submit也行,代码上传上去以后还跑不起来,因为用的是Django1.6,因此部署1.6,也就是把Django1.6的安装包同时上载上去

由于sae只支持到1.5,所以需要部署django 1.6 https://www.djangoproject.com/download/在本地hding/1/文件夹下新建 site-packages, 再把下载下来的Django-1.6.11放到site-packages下面, 先对文件夹1执行下clean up 然后再上传,会执行有改动的部分上传,即site-packages上传



这样有了django1.6我们就已经可以运行程序,如果用到了数据库必需是mysql, 修改数据库

vi blog/settings.py

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME':'app_hding',                                //app_yourappname
        'PORT': '3307',                                     //port
        'USER': 'l1yw5z5zxl',                               //access_key
        'PASSWORD': '2x0kjmlmwlzml40hx433zk00zj51zhjz1w2zy5jx', //secret key
        'HOST': 'w.rdc.sae.sina.com.cn'                       //w.rdc.sae.sina.com.cn
    }
}



初始化数据库



MySQL数据库初始化后,需要建表,SQL命令来自于本地环境敲命令
[root@Alicia]# python manage.py sqlall polls
BEGIN;
CREATE TABLE `polls_poll` (
    `id` integer AUTO_INCREMENT NOT NULL PRIMARY KEY,
    `question` varchar(200) NOT NULL,
    `pub_date` datetime NOT NULL
)
;
CREATE TABLE `polls_choice` (
    `id` integer AUTO_INCREMENT NOT NULL PRIMARY KEY,
    `poll_id` integer NOT NULL,
    `choice_text` varchar(200) NOT NULL,
    `votes` integer NOT NULL
)
;
ALTER TABLE `polls_choice` ADD CONSTRAINT `poll_id_refs_id_3aa09835` FOREIGN KEY (`poll_id`) REFERENCES `polls_poll` (`id`);
CREATE INDEX `polls_choice_70f78e6b` ON `polls_choice` (`poll_id`);

COMMIT;



把begin~commit copy到SQL部分执行后,建表成功

测试

数据库建立之后,再次登录二级域名,访问成功,但是原本一些数据表仍然没有建立起来,只有models.py的表建起来了,是因为没有在sae真正做过python managy.py syncdb的关系,目前还没有完全弄明白,但不用系统的数据库就没有问题,以后再进一步研究

参考:
http://www.tuicool.com/articles/ZzAvUr




易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!