Skip to main content

97 posts tagged with "python"

View All Tags

· 2 min read

I decide to start a new track of TurboGears Tutorial (In English), which is light weight enough so it will be easy to follow.

Why not start this tutorial on TurboGears Documentation Site ?

It just because I feel more comfortable with blogger's editor, and I'll feel less guilty if I mess these tutorial up :-D

Oops, 5 seconds passed, let's go back to the topic.

Start a new project

To start a new project (new site) with TurboGears, you'd use "tg-admin quickstart" command for it. The syntax is:

$ tg-admin quickstart [projectname] Let's create a "TurboHello" (sound's powerful, isn't it? :-D) project for example:

$ tg-admin quickstart TurboHello The console will prompt some choices. Feel free to press "enter" button (let defaults) and proceed to the next step.

Start the web server

The 'TurboHello' folder was created by your console. After the project was created, enter the 'TurboHello' folder, and you could start the TurboGears development web server with following command:

$ ./start-TurboHello.py

The web server is running, browse http://localhost:8080/ to see the project welcome page:

Pretty and easy, right?

The project structure

While entering the 'TurboHello' folder, you'll see the project skeleton laid there. Those files can be categorized for 4 purposes:

The document was merged to http://docs.turbogears.org/1.0/GettingStarted/BigPicture

TurboGears followed MVC design pattern (search if you don't know that), which seperate the web application design into three different roles, to build the default quickstart project. TurboGears also offer you the flexibility to 'not use the MVC' as well (will be shown in next minutes).

We'd always focus on part 4: "the Development part" in TurboGears.

· 3 min read

我想沒什麼人會想學新語言,即使這門語言很美很有用,尤其是當對人們來說這語言用不太到的情況下 (例如有個傢伙跟你說一旦你學會了優美的拉丁文,以後你就可以讀懂中古歐洲的文獻。這傢伙大概會被你罵神經病 :-D).

我認為要說服人學新東西,要遵循:對他有用,讓他感興趣,使他容易學習 三個步驟.

分享一下我最近讓公司同仁對 python 開始感興趣的方法,

對他有用

第一階段是我們團隊的部份原始碼庫從 MS 的系統改到 svn 上.
工作久了,會有個錯覺是世界會這麼一直運行下去,日常使用的工具是世界運行的一環因此不太會思考要改變它.

當自己花些時間讓大家看到新工具 svn/trac 的好用時,趁機跟大家灌輸新一代的工具優點,再若有似無地提到 trac 這強悍的程式整個是 python 寫的。可以勾起大家有點求變的動能.

讓他感興趣

第二階段是最近工作中引入自己用 scapy 做的封包產生器,有的同事發現我用的工具可以跨平台使用,不用花時間架設特別的機器和環境,可以讓測試變得不那麼麻煩,可能就有了想學習的動力.

使他容易學習

第三階段是在適當時機展示一下 python 的簡潔, 讚揚一下 python 程式中非常直觀的列表,字典等內建型態. 程式縮排等寫作原則提都不用提,python 程式的美觀展示時即自然呈現. 如果真的要強調,則是花時間下去學習 python 語法時的事情了.

你的工作裡也有地方用的上 python 嗎?

· One min read

終於收到 TurboGears 官方文件網站的管理權限,可以修改首頁了. 這幾天重新整理了 TurboGears 的官方文件,讓整個學習流程變得更清楚了.

TurboGears 安裝早已變得很簡單, 裝好 python 後,只要抓下 tgsetup.py 後執行就會自動安裝. 不用管是否已安裝了 setuptools 模組或 easy_install 命令.

新使用者可以關注 "教程 (Tutorials)", "使用導覽 (Getting Started Guide)", "安裝 (Installation)" 三個部份.

一些特別的主題如 cookie, session, 傳送 Email, 註冊新使用者等等都被歸類在 "Solving specific problems" 中.

· 2 min read

原本使用 TurboGears 都是拿來做些網站應用程式的原型,享受它帶來的樂趣。現在終於等到一個可以製作實際網站的機會.

我打算使用 TurboGears 的 1.1 (在 SVN Trunk 開發中) 版本開始做一個中文的應用網站. 使用 genshi 做網頁樣板系統和 SQLAlchemy 做 ORM, 並使用 pydev (python) + Aptana (web) eclipse 環境開發.

剛開始玩得很順利:P 直到我發現在預覽網頁時發生了錯誤. 錯誤訊息看起來是有中文的地方會報錯,因此我以為是網頁樣板預設編碼不是 'utf-8' 的問題.

找了半天,到後來直接用瀏覽器預覽時,才發現整個中文部份都變成了亂碼,改編碼為 big5 時才顯示正常。原來罪魁禍首是作業系統和編輯器!

作業系統預設編碼是 big5, 因此照一般輸入方式在編輯器中編輯儲存中文字的結果,當然不是我所期望的 utf-8 囉. 當我改使用 Dreamweaver 來編輯樣版後,一切顯示就回歸正常了. 應該是編輯時 Dreamweaver 會自動幫忙轉碼吧:-D

Anyway, 還是希望能找到個 OpenSource 的網頁編輯器可以做到國際化支援呀.

· One min read

繼 Ruby On Rails 後,最新期的 o3 雜誌專刊介紹 TurboGears

) 中發表了一篇文章 推薦 TurboEntity 這個項目,看起來他蠻推崇這個大量借鑒他的 ActiveMapper 功能的專案的.

TurboEntity 最酷的能耐應該是'self reference', 能參考同個物件的資料 (不知道 Django 的怎樣,SQLObject 不行直接參考,要加一些特別的代碼)

網站上的範例裡拿了辛普森家庭 (The Simpsons) 做例子:

定義四個角色

grampa = Person(name="Abe")

homer = Person(name="Homer") bart = Person(name="Bart") lisa = Person(name="Lisa")

定義人物間的關係:

祖父 - 河馬 - 霸子

                               - 麗莎

grampa.children.append(homer)

homer.children.append(bart) lisa.father = homer

不講的話還真的看不出來這些是存取資料庫中資料的函式.

ManyToOne / ManyToMany 這些函式也是直接呼叫 sqlalchemy 的功能.