→ carylorrk: 不知道你的程度很難說明耶...你知道什麼叫 HTML/CSS 嗎 11/09 10:23
→ carylorrk: HTTP request/response 呢? 11/09 10:23
→ carylorrk: 如果都不知道的話,建議你去看 web_design 置地文 11/09 10:24
→ carylorrk: 或是跑一遍 w3schools tutorial(雖然很爛) 11/09 10:25
推 jimmytzeng: 可以跟著Django的tutorial做一次 11/09 16:59
→ fishlinghu: 我知道HTML 我也有寫過PHP網頁 我有資料庫的概念 11/09 18:03
→ fishlinghu: CSS我也用過 那篇置底文我大致都懂 也用過大部分 11/09 18:05
→ fishlinghu: 現在是不知道Python跟做網頁有何干 11/09 18:06
→ fishlinghu: 還有那些工具(framework?)在整個架構負責哪部分 11/09 18:07
→ mars90226: 有寫過PHP就很好懂了,Python負責server端 11/09 18:38
→ mars90226: 就像你在寫PHP一樣,會有server執行你寫的PHP 11/09 18:38
→ mars90226: server遇到request就產生對應的html回去給client 11/09 18:39
→ mars90226: 所以Python要負責的就是根據request做對應的處理後 11/09 18:40
→ mars90226: 產生對應的html回傳,例如要對資料庫處理,或進行運算 11/09 18:40
→ mars90226: 的部分都是由Python完成的 11/09 18:41
推 MacPerson: 跟著django走吧,你會覺得其實跟你寫過的PHP差不多 11/10 00:00
→ MacPerson: 重點是你寫過的PHP是MVC架構的 11/10 00:00
→ qoorocker: 如果只是小型應用 選cherrypy吧 django 太肥 XD 11/10 00:03
→ carylorrk: PHP大多只是讓 HTTP server (ex:Apache/Nginx)先處理過 11/10 02:27
→ carylorrk: HTTP request 再呼叫 PHP code,然後 PHP 內部 lib 又 11/10 02:29
→ carylorrk: 處理了一些事,你纔可以直接寫 PHP handler function 11/10 02:31
→ carylorrk: 然後取得 request 的一些資料(像是用 $_GET取得 query 11/10 02:32
→ carylorrk: parameter),並且回傳 HTML,這些 HTML 又由 PHP Lib 11/10 02:36
→ carylorrk: 和 HTTP server 包裝成 response 傳回 client 端。 11/10 02:36
→ carylorrk: Python 看你是要自己處理 TCP connection 還是用內建的 11/10 02:37
→ carylorrk: http.serve 都是很底層的方式。再來就是用 HTTP server 11/10 02:38
→ carylorrk: 或是 cherrypy 這種來做比較強大的 HTTP 處理。 11/10 02:40
→ carylorrk: 注意這裡不是說兩者等價 XD 11/10 02:42
→ carylorrk: 前面都是在處理 HTTP protocol 的抽象化,Django 則更 11/10 02:44
→ carylorrk: 多琢磨在網站程式架構的軟工上面。最大的部分就是MVC, 11/10 02:46
→ carylorrk: 像是 URL routing、HTML template、 database model 等 11/10 02:47
→ carylorrk: 軟體架構方便你撰寫大型網站。不過當你寫遊戲的時候這 11/10 02:47
→ carylorrk: 些東西可能並不是很適合。你可以看看 Django 的 tute 11/10 02:50
→ carylorrk: 會更有感覺,再來自行判斷需不需要 Django 的幫助。 11/10 02:51
→ carylorrk: 再來就是你 Client 端到底熟悉嗎?知道如何使用 JS 操 11/10 02:53
→ carylorrk: 作 DOM 做一些效果或 check 嗎?如果會的話我想 JQuery 11/10 02:54
→ carylorrk: 概念上應該不會太難。 11/10 02:55
→ carylorrk: 如果不熟悉就到 tute 的網站仔細看一遍,等學完基本的 11/10 02:59
→ carylorrk: 程式語法及DOM操作後,一定會提到 AJAX。其實這個名字 11/10 03:00
→ carylorrk: 已經跟原本不太符合了,不過現在簡單來說就是由你的JS 11/10 03:00
→ carylorrk: 程式向 server 發起 request(而非由browser)。這樣的好 11/10 03:01
→ carylorrk: 處是當你取得 response 後可以由 js 來處理並 update 11/10 03:02
→ carylorrk: 部分的網頁內容,可以避免整頁重整的閃爍問題。 11/10 03:03
→ carylorrk: 前面一直提到 response,通常 response 都是 HTML 頁面 11/10 03:04
→ carylorrk: 但是當用了 ajax,你的 response 可以只回傳一些資料, 11/10 03:04
→ carylorrk: 再由 js 處理並加入 html 當中。這裡就要講到資料的 11/10 03:05
→ carylorrk: serialization。一般資料在不同程式語言的記憶體layout 11/10 03:06
→ carylorrk: 一定會不同。像是 Python 的 Object 和 JS 的 object 11/10 03:07
→ carylorrk: 顯然差很多。serialization 就是把資料的表達方式規格 11/10 03:07
→ carylorrk: 化。這種規格化可以是 binary (前32bit放 first field 11/10 03:09
→ carylorrk: 等),或是人類理解的 text。XML 和 JSON 就是屬於後者 11/10 03:09
→ carylorrk: 他們規範了一些常見的資料形態(integer,string,array) 11/10 03:10
→ carylorrk: 的文字表達方式,讓不同程式、儲存媒介都可以瞭解。這 11/10 03:11
→ carylorrk: 樣你就可以在 python 把資料 serialize 後放入 respons 11/10 03:12
→ carylorrk: 再由 JS deserialize 得到資料來處理。 11/10 03:15
→ carylorrk: 前端現在很流行的還有像是 backbone、angular等架構, 11/10 03:16
→ carylorrk: 等你瞭解這些基本概念後再去看會覺得很舒服(?)XD 11/10 03:17
→ carylorrk: 現在基本上你提到的幾個 component 都串聯起來了,最後 11/10 03:17
→ carylorrk: 一個是 GAE。 GAE 基本上你可以想象他是一個幫你架好 11/10 03:18
→ carylorrk: HTTP server,灌好環境(python、library、database)的 11/10 03:19
→ carylorrk: 一臺 server。所以你只要上傳程式就可以直接變成網站。 11/10 03:20
→ carylorrk: 不過比較特別的是你要注意他『灌』的那些環境可能跟一 11/10 03:20
→ carylorrk: 般不太一樣,所以你需要好好看一遍他有哪些東西可以用 11/10 03:21
→ carylorrk: 我這輩子第一次寫網站(國中用 frontpage 拉的除外)就 11/10 03:22
→ carylorrk: 是 Django + GAE + Google map 和 FB 的 js api。瞭解 11/10 03:23
→ carylorrk: 第一次寫要串聯一定很痛苦XD 遇到問題先寫看看試看看就 11/10 03:25
→ carylorrk: 對了。有的時候遠比看一堆資料還來得有用! 11/10 03:25
→ carylorrk: PS. 我對遊戲部分不熟,所以可能要看其他版友的經驗了 11/10 03:26
推 carylorrk: 還有,等你實際寫過後會發現我講的很多是簡化甚至錯誤 11/10 03:30
→ carylorrk: 的,這裡只是用比較易懂的方式講解。也有可能是我本來 11/10 03:31
→ carylorrk: 概念就不好啦,畢竟一輩子也沒寫過幾次網頁 XD 11/10 03:31
→ fishlinghu: 非常謝謝你願意花時間回了這麼詳細QQ 11/10 06:53
→ fishlinghu: 我今天看了很多資料 在看你說的東西有比較懂了! 11/10 06:54
→ fishlinghu: 被你一說我才發現我好像寫過client端的Javascript 11/10 06:54
→ fishlinghu: 當時應該就是Server端的部分有人用Python寫好了所以 11/10 06:55
→ fishlinghu: 我才沒有知覺XD 現在我要來認真檢視一下哪個framework 11/10 06:56
→ fishlinghu: 比較適合我想做的東西了 超感謝你的解惑!! 11/10 06:56
→ carylorrk: 事實上 server 端用什麼語言,包括 PHP,都可以啦! 11/13 15:43
→ carylorrk: 只是想說一開始寫 PHP 普遍過於依賴嵌入功能。並沒有說 11/13 15:45
→ carylorrk: PHP 沒辦法達到什麼功能或多不好之類的XD 11/13 15:45