2009-06-26 83 views
1

對於一些快速背景,我是一個具有一些基本PHP知識的XHTML/CSS人。我正努力將自己的雙腳放入Python池中,並且到目前爲止瞭解如何啓動simple_server並在同一個.py文件中訪問簡單的Hello World返回。這是我理解的程度,但是,嘿。啓動simple_server後該怎麼辦?

如何整合simple_server和基本的XHTML/CSS文件?我想啓動服務器並自動調用,例如index.py(是否需要.py?)。很明顯,在索引文件中,我會有我的標記和樣式表,並且我會像在普通網站那樣操作它。

我最終的目標是獲得一個基本的留言板(發佈,編輯,刪除,用戶會話)。我意識到我需要訪問一個數據庫,並且我知道我的MySQL方式足以不必擔心這些部分。

感謝您的幫助。

編輯:允許我澄清我的目標,因爲我被告知Python比PHP執行得多。我的目標是開始將簡單的Web應用程序構建到我的預先存在的靜態XHTML頁面中。顯然,使用PHP,您只需確保將其安裝在您的服務器上,然後開始編寫代碼。我想知道Python在這方面有多不同,以及我需要做些什麼,比如說用Python寫一個基本的留言板。

+0

Python與PHP沒什麼區別,所以你必須在你的問題中更加明確。如果你試圖編寫一個Web應用程序,你必須真的說出來。 Python比LOT做得更多,所以如果你陳述你的目標,它可以幫助我們。 – 2009-06-26 10:54:58

回答

1

「很顯然,使用PHP,你只需確保其安裝在服務器上,你開始寫代碼。」

不適用於Python。 Python只是一種語言,而不是像PHP這樣的Apache插件。

通常,您可以使用類似mod_wsgi的東西爲Apache創建一個Python插件。你發現網頁處理涉及很多步驟,其中沒有一個是Python 語言的一部分。

您必須使用擴展庫或框架來在Python中處理Web請求。 [在這一點上,一些PHP人士問爲什麼Python如此受歡迎。原因是因爲你有選擇使用哪個庫或框架。]

PHP解析請求並允許你在結果頁面中嵌入代碼。

Python框架 - 通常 - 不會這樣工作。大多數Python框架將操作分解爲幾個步驟。

  1. 解析URL並找到一段合適的代碼。

  2. 運行代碼以獲取結果數據對象。

  3. 將生成的數據對象插值到HTML模板中。

「我的目標是開始構建簡單的Web應用程序到我的預先存在的靜態XHTML頁面。」

讓我們來看看如何在Django中執行此操作。

  1. 創建一個Django項目。

  2. 創建一個Django應用程序。

  3. 將您的XTHML頁面轉換爲Django模板。拉出動態內容並放入{{ somevariable }}標記。根據動態內容的不同,這可能很簡單,也可能相當複雜。

  4. 定義URL以查看urls.py文件中的函數映射。

  5. 在您的views.py文件中定義查看功能。這些視圖函數創建模板中的動態內容以及要呈現的模板。

在這一點上,您應該能夠啓動服務器,啓動瀏覽器,選擇一個URL並查看您的模板呈現。

「用Python寫一個基本的留言板」。

讓我們來看看如何在Django中執行此操作。

  1. 創建一個Django項目。

  2. 創建一個Django應用程序。

  3. 定義你的數據模型models.py

  4. 編寫單元測試中tests.py。測試你的模型的方法,以確保它們都正常工作。

  5. 使用內置的管理頁面進行播放。

  6. 創建Django模板。

  7. 定義URL以查看urls.py文件中的函數映射。

  8. 在您的views.py文件中定義查看功能。這些視圖函數創建模板中的動態內容以及要呈現的模板。

1

看看CherryPy。這是一個很好的http框架。

+0

我會看看CherryPy以及Django。謝謝! – Whellow 2009-06-26 15:09:36

+0

CherryPy能否在Google App Engine上運行良好? DrBloodmoney博士,我們怎麼學會在炸彈之後相處? – Nosredna 2009-06-28 17:13:15

0

這取決於你想要達到什麼目的,

一)做你想做的只是寫一個Web應用程序,而無需擔心太多生根粉在後臺發生的事情,如何申請正在辦理中,或模板被渲染比去一個goo webframework,有很多選擇簡單的http服務器不是其中之一。例如使用Django,TurboGears中,webpy,cheerpy,掛架等等等等 看到http://wiki.python.org/moin/WebFrameworks的,如果你想使你瞭解內部和改善你的python的知識下發展從開始的簡單的web框架完整列表

B),那麼我會建議使用簡單的HTTP服務器 看到

  1. 你怎麼能創建一個URL方案,讓網址分派到正確的python功能,
  2. 看你怎麼可以呈現HTML 模板如使用含有 string.Template

B座 持有人變量$標題等,這 可以轉換成字符串)將是困難的,但有趣的運動做,一個)將讓你開始,你可能會編寫Web應用程序在幾天內

3

其他答案可以爲你的「最終目標」想要做什麼提供很好的建議,但是,如果你首先想堅持wsgiref.simple_server這個有啓發性的時間,你也可以這樣做。 WSGI是Web服務器之間至關重要的「粘合劑」(當然不僅僅是wsgiref中的簡單的一種 - 也是真實的,例如Apache或Nginx [各自的模塊都被稱爲mod_wsgi]以及例如Google App Engine - 也提供WSGI作爲它的基本API)和Web應用程序(以及使這些應用程序更容易編寫的框架)。每個人都會向你推薦各種框架,但理解WSGI不會受到傷害(因爲它將成爲你最終選擇的任何框架的基礎)。如果您願意,爲了達到這種理解,wsgiref.simple_server將爲您提供更長的時間。

本質上,你想要做的是寫一個WSGI app-一個函數或類,它需要兩個參數(一個「環境」字典和一個「開始響應」可調用,它必須在返回之前使用狀態和標題進行回調響應的正文)。您的「WSGI應用程序」可以打開您的index.py或其他任何想要準備狀態,標題和正文返回。

WSGI還有很多內容(中間件概念特別強大),當然你不必非常深刻地理解它 - 只要你關心的深入! c。參見wsgi.org教程& c。加德納的兩部分article,我認爲,特別有趣。

有一次(如果這是你的選擇)你理解WSGI,你可以更好地決定是否希望它全部隱藏在更高層的框架中,比如Django(所以你可以專注於應用程序級別的問題)或者使用非常光的WSGI實用程序,如Werkzeug模塊化工具箱 - 或任何在兩者之間 - !)

+0

這也是非常好的信息...我非常感謝您的建議! – Whellow 2009-06-26 15:09:02