星期三, 6月 08, 2011

django-nonrel

Google AppEngine(之後簡稱GAE)原本就有把django包進去,只是資料庫的使用上,需要自己處理,原本只支援relational database。後來就有人去補這一塊,名字就改稱django-nonrel。GAE官方的文件介紹django時,就直接介紹了這個project:Running Pure Django Projects on Google App Engine

django-nonrel 的官方網頁在:Django-nonrel - NoSQL support for Django,坦白說,從官方網頁我沒找到很清楚的Installation說明,後來才在這一篇Native Django on App Engine裡看到。一般django建立網站的方法是使用django-admin.py startproject your_project來建立,接著再進入專案目錄,使用python manage.py 去做管理。但django-norel建立網站的方法稍微不一樣,是直接checkout一份空的專案骨架來用,而不是使用django-admin.py來建立。步驟如下:
  1. 使用mercurial(hg)去clone以下源碼,我統一都clone到~/hg 下:
    • hg clone https://bitbucket.org/wkornewald/djangoappengine
    • hg clone https://bitbucket.org/wkornewald/django-nonrel
    • hg clone https://bitbucket.org/wkornewald/django-testapp
    • hg clone https://bitbucket.org/wkornewald/djangotoolbox
    • hg clone https://bitbucket.org/wkornewald/django-dbindexer
    • hg clone https://bitbucket.org/twanschik/django-autoload
    • hg clone https://bitbucket.org/wkornewald/django-mediagenerator
    ,依序說明:djangoappengine、django-nonrel、djangotoolbox主要是針對GAE作補完,django-testapp是專案的骨架,dbindexer是實作資料庫處理的底層,autoload負責自動載入library,django-mediagenerator則是可以對css/js做壓縮、加速的library,可有可無。
  2. 複製django-testapp並更名,假設為mysite
  3. 進入mysite目錄下,然後去做symbolic link:
    • ln -s ~/hg/django-nonrel/django
    • ln -s ~/hg/djangoappengine
    • ln -s ~/hg/djangotoolbox/djangotoolbox
    • ln -s ~/hg/django-nonrel/django
    • ln -s ~/hg/django-dbindexer/dbindexer
    • ln -s ~/hg/django-autoload/autoload/
    • ln -s ~/hg/django-mediagenerator/mediagenerator
  4. 大功告成,輸入python manage.py runserver 就可以啟動web server,試著瀏覽 http://localhost:8000 看看吧。如果你想要改用別的 port,跟原來的django不太一樣的,你需要用 python manage.py runserver 0.0.0.0:10080 才可以,原來的 django 可以用 python manage.py runserver 10080 就搞定。

會想試試這個,主要還是因為GAEO後來的開發整個停掉,想說之後也想玩玩django,就乾脆用django-nonrel,以後也對django比較容易上手。

沒有留言: