基於SAE的Python+Django的入門實踐

來源:互聯網
上載者:User
基於SAE的Python+Django的入門實踐

新浪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.wsgi

import 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.6/site-packages/django/contrib/admin/templates/admin',如下:

TEMPLATE_DIRS = ( 

    '/usr/local/sae/python/lib/python2.6/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吧

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.