新浪SAE已經開始了對python的支持,支持django框架。
詳情可以點這:http://appstack.sinaapp.com/
豆瓣小組:http://www.douban.com/group/373262/
下面進入正題。
首先,我使用的是django + mysql組合,所以本文暫不涉及其他框架。
其次,本人菜鳥,如有可以改進的地方,請不吝賜教,萬分感激。
第一步 申請
首先你要有個SAE賬號,用新浪微博就可以注冊。注冊、登陸、然后直奔這里http://appstack.sinaapp.com/queue 去排隊申請SAE Python。如果你已經擁有邀請碼並可以添加python應用,請自覺忽略此段。排隊,怎么查看是否開通?,等……
好了,現在,你已經開通了SAE Python,你已經可以創建應用,並且可以創建Python應用。
第二步 創建
1、來到你的SAE首頁http://sae.sina.com.cn/?m=myapp,創建新應用,開發語言選擇python:
2、回到應用列表,點擊你的應用名,進入應用管理頁面:
3、找到左側欄->服務管理->MySQL:頁面出現
初始化mysql即可。
4、類似的做法,你可以將服務管理里列出的的服務都開啟。
5、我們可以開始創建自己的第一個應用的第一個版本了:
(依然是左側欄)-應用管理-代碼管理,點擊“通過這里創建一個版本”,版本號為1,創建。
創建成功就可以看到類似的信息:
接下來要做的就是使用SVN部署你的代碼了。
第三步 部署
1、現在假定你已經將SVN安裝妥當,如果對SVN不了解,點這里:http://sae.sina.com.cn/?m=devcenter&content_id=215&catId=212
注意!svn檢出時的用戶名是你的微博賬號,但密碼是安全密碼!
2、檢出代碼文件夾至本地,會看到以版本號命名的文件夾,此處應該是1。
進入文件夾1,可以找到config.yaml、index.wsgi這個兩個文件,用文本編輯器打開index.wsgi,刪除所有內容,用下面的代碼替代。
import os
import django.core.handlers.wsgiimport sae
os.environ['DJANGO_SETTINGS_MODULE'] = 'mysite.settings' # mysite替換為你的應用名
application = sae.create_wsgi_app(django.core.handlers.wsgi.WSGIHandler())
注意!別忘了將os.environ['DJANGO_SETTINGS_MODULE'] = 'mysite.settings' 這一行中的mysite替換為你剛剛在SAE上建立的應用名!
並且,下文出現的所有mysite都要替換成你在SAE上的應用名!
3、如果你准備使用django提供的admin模塊,需從django安裝目錄復制admin 的media目錄到文件夾1內。
4、如果你已經建好了一個django項目,直接將文件夾(項目的文件夾名必須同SAE上建立的應用名相同)放到文件夾1下面。
如果尚未建立django項目,進入文件夾1,執行python django-admin.py startpreject mysite 命令(同樣用SAE上建立的應用名代替mysite,下文不再提示)
到了這一步,無論如何都要確認,文件夾1下有你的django項目,即mysite文件夾。也就是確保文件夾1內可以看到:
index.wsgi config.yaml mysite(項目文件夾)
5、進入目錄mysite,修改settings.py:
A、將下面的代碼添加到頭部
import os.path
from os import environ
debug = not environ.get("APP_NAME", "")
if debug:#LOCAL 本地調試用,便於導出數據庫,根據本地MYSQL數據庫填寫下面參數
MYSQL_DB = 'mysite'
MYSQL_USER = 'root'
MYSQL_PASS = ''
MYSQL_HOST_M = '127.0.0.1'
MYSQL_HOST_S = '127.0.0.1'
MYSQL_PORT = '3306'
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
B、修改DATABASES 字段為:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': MYSQL_DB,
'USER': MYSQL_USER,
'PASSWORD': MYSQL_PASS,
'HOST': MYSQL_HOST_M,
'PORT': MYSQL_PORT,
}
}
C、如果已經設置了自己的templates目錄,在TEMPLATE_DIRS中添加字段
'/usr/local/sae/python/lib/python2.7/site-packages/django/contrib/admin/templates/admin',如下:
TEMPLATE_DIRS = (
'/usr/local/sae/python/lib/python2.7/site-packages/django/contrib/admin/templates/admin',
os.path.join(os.path.dirname(__file__), 'templates').replace('\\','/'), # 已經將mysite目錄下的tempalets目錄設置為模板目錄
)
第四步 導入數據庫
1、本地進行mysql操作需要MySQL-python模塊,
win系統可以舒服放心地到這里下載安裝文件:(for python2.6http://www.codegood.com/archives/4,for python2.7http://www.codegood.com/archives/129),
linux直接來這里:http://pypi.python.org/pypi/MySQL-python#downloads
2、如果本地已經安裝有mysql服務,或者又可以連接的mysql數據庫,可以直接看下一條。
如果你本地沒有mysql數據庫,可以安裝WampServer:http://www.onlinedown.net/soft/82112.htm
安裝之后別忘了重啟一下機器,雙擊桌面上的
快捷方式,點擊托盤上的小圖標,點 起動所有服務,啟動成功,圖標變綠。
再次單擊托盤圖標,點phpMyAdmin,就從瀏覽器打開了數據庫管理器。然后點擊頁面頂部的 “數據庫”
新建數據庫
創建完成后,左側欄看到mysite已經被添加
點擊mysite就打開了本地mysite數據庫的管理頁面。
3、修改mysite目錄內的settings.py中的
debug = not environ.get("APP_NAME", "")
if debug:
#LOCAL 本地調試用,便於導出數據庫,根據本地MYSQL數據庫填寫下面參數
MYSQL_DB = 'mysite'
MYSQL_USER = 'root'
MYSQL_PASS = ''
MYSQL_HOST_M = '127.0.0.1'
MYSQL_HOST_S = '127.0.0.1'
MYSQL_PORT = '3306'
如果是按照2、中的步驟,此段無需修改。
如果你是使用已有數據庫的人,應該很容易就能看出該怎么改。
4、進入mysite目錄執行 python manage.py syncdb,完成之后我們將本地數據庫導出:
進入本地mysite數據庫的管理頁面,點擊頂部的導出-執行,輸出sql文件。
將導出的數據庫導入SAE中所建應用的遠程MYSQL數據庫:
進入SAE的應用管理頁面->服務管理->MySQL->管理MySQL,進入SAE的mysql管理頁面。點擊頂部的導入->選擇文件(剛才輸出的sql文件)->執行
第五步 上傳
把目錄1內的所有文件都通過svn提交到sae上,mysite終於可以工作了!
我想你也不會忘了把settings.py中的DEBUG = True改為DEBUG = False吧
好吧,本文告一段落。
等深入學習之后再來豐富內容。