天天看點

笨辦法學 Python · 續 練習 46:`blog`練習 46:blog

練習 46:

blog

原文: Exercise 46: blog 譯者: 飛龍 協定: CC BY-NC-SA 4.0 自豪地采用 谷歌翻譯

你應該按照本節開頭的描述編寫流程主題,你應該将流程列出并做好準備。為了起步,我們将為本節的其餘部分提供一個名為

blog

的全新工具作為熱身。

你應該慢慢參與這個項目,盡量不要趕時間。你的目标不是成為快速的程式員。通過系統地緩慢起步,你最好緩慢、流暢地建立速度,直到你的工作方式成為第二本能。如果你總是趕時間,那麼你會粗心。

確定将你的筆記放在手邊,并跟蹤你的工作的實際情況和名額。你正在試圖看看是否有一個适合你的流程,作為稍後的工作方式。并不是所有的方法一直有用,這就是為什麼我試圖教你各種工作政策,不同的程式員使用它們。如果你做這個項目,你發現你做的事情沒有起作用,那麼你的筆記将幫助你找出原因。在下一個項目中更改它,看看其它的東西是否效果更好。

挑戰練習

我讓你編寫一個名為

blog

的簡單的指令行部落格工具。這是一個非常有創意的項目名稱,用于一個有創意的項目。部落格是一些早期程式員編寫的第一個項目,但是你的項目将在本地生成部落格,然後使用另一個名為

rsync

的工具将其發送到伺服器。以下是此練習的要求:

  • 如果你不知道什麼是部落格,那麼你應該去建立一個,然後嘗試一下。有很多平台,但你可能會喜歡 Wordpress 或 Tumblr。隻需使用它一會兒,并記下你可能想要複制的功能。不要太瘋狂了。
  • 你将要學習如何使用模闆系統來設計 HTML 頁面。我建議你使用 mako jinja 模闆系統。這些系統允許你制作模闆 HTML 檔案,然後你可以根據使用者放置在目錄中的文本檔案,将真實内容放入。
  • 你将要使用 Markdown 作為你的部落格格式,是以請為你的項目安裝 markdown 庫。
  • 你的部落格将是一個靜态檔案部落格,是以你将需要使用

    python -m SimpleHTTPServer 8000

    ,就像

    SimpleHTTPServer

    指南中示範的那樣。這會把轉儲目錄中的檔案提供給浏覽器。
  • 你需要一個名為

    blog

    的指令行工具,來處理他人的部落格。
  • 在你起步之前,請考慮你的部落格工具所做的所有事情,然後設計所需的所有指令及其參數。然後檢視

    docopt

    項目,來實作這些指令。
  • 你應該使用 mock 來模拟你需要測試的東西,特别是錯誤情況。參考我在第三部分和第五部分中,我如何使用

    mock

  • 除此之外,你可以按照自己的意願,随意開發這個

    blog

    工具。變得有創造力。所有要做的事情是,部落格是以某種方式建立的,然後我可以放在要檢視的伺服器上。

最後,我會使用

rsync

将這樣的部落格放到網上,使用下列指令:

rsync -azv dist/* myserver.com:/var/www/myblog/           

這可能更進階,但這可能是一個好時機,來學習如何部署靜态檔案。這裡有一個研究性學習,也談到如何使用亞馬遜 S3 來實作它。

研究性學習

  • 将靜态檔案部署到你自己的伺服器是所有的事情,也很有趣,但如果

    blog

    工具适用于 Amazon S3 不是更好嗎?有一個名為

    boto3

    的項目,将為你提供你所需的一切,使

    blog

    實作它。
  • 編寫一個

    blog serve

    指令,它使用

    SimpleHTTPServer

    類來簡單部署部落格,而不是單獨生成部落格。