複習Python的第四十五天
習題50:你的第一個網站
在創建第一個網頁應用程序之前,我們需要安裝一個“Web 框架”,它的名字
叫lpthw.web
。儘管好的web框架很多,如Django等,但是在這裏我們根據作者所說的去做就行了。
所謂的“框架”通常是指“讓某件事情做起來更容易的軟件包”。
在網頁應用的世界裏,人們創建了各種各樣的“網頁框架”,用來解決他們在創建網站時碰到的問題,然後把這些解決方案用軟件包的方式發佈出來,這樣你就可以利用它們引導創建你自己的項目了。
直接在cmd命令行中輸入pip install lpthw.web
就行了。
寫一個簡單的Hello World
項目。
import web
urls = (
'/', 'index'
)
app = web.application(urls, globals())
class index:
def GET(self):
greeting = "Hello World"
return greeting
if __name__ == "__main__":
app.run()
使用python app.py
運行結果:
http://0.0.0.0:8080/
然後python交互界面顯示:http://0.0.0.0:8080/
,使用瀏覽器打開URL
:http://localhost:8080/,瀏覽器則會顯示"Hello World"
。
這些是lpthw.web
打印出的log
信息,從這些信息你可以看出服務器有在運行,而且能瞭解到程序在瀏覽器背後做了些什麼事情。這些信息還有助於你發現程序的問題。
發生了什麼事情
在瀏覽器訪問到你的網頁應用程序時,發生了下面一些事情:
1. 瀏覽器通過網絡連接到你自己的電腦,它的名字叫做 localhost ,這是一個標準稱謂,表示的就是網絡中你自己的這臺計算機,不管它實際名字是什麼,你都可以使用localhost
來訪問。它使用到的網絡端口是5000
。
2. 連接成功以後,瀏覽器對bin/app.py
這個應用程序發出了HTTP請求(request),要求訪問URL/
,這通常是一個網站的第一個URL
。
3. 在bin/app.py
裏,我們有一個列表,裏邊包含了URL 和類的匹配關係
。我們這裏只定義了一組匹配,那就是'/', 'index'
的匹配。
4. 它的含義是:如果有人使用瀏覽器訪問/
這一級目錄,lpthw.web將找到並加載class index
,從而用它處理這個瀏覽器請求。
5. 現在lpthw.web找到了class index
,然後針對這個類的一個實例調用了index.GET
這個方法函數。該函數運行後返回了一個字符串,以供lpthw.web
將其傳遞給瀏覽器。
6. 最後lpthw.web
完成了對於瀏覽器請求的處理,將響應(response)回傳給瀏覽器,於是你就看到了現在的頁面。
修正錯誤
如同作者說的,我刪去了greeting變量賦值,刷新結果如下:
lpthw.web
的會把一些錯誤信息和堆棧跟蹤(stack trace)信息顯示在命令行終端,所以別忘了檢查命令行終端的信息輸出。
lpthw.web
給我們的錯誤界面如下,檢查每一段Local vars
輸出(用鼠標點擊它們),追蹤裏邊提到的變量名稱以及它們是在哪些代碼文件中用到的:
創建基本的模板文件
暫時不做了。