天天看點

開始使用 Python 開發 Web 應用

Python是一個通用程式設計語言,并很快成為每個自重程式員寶庫中的一個必需品。

Python中有數不清的Web架構,從基本的微小架構到完整的架構,它們自有各自的優點。那麼你準備使用它來做一些web開發,但在探讨細節之前,讓我們從頭開始。

學習Python的基礎

截至目前,Python有兩個版本,2.7.5和3.3是目前Python的穩定版本。你選擇哪個學習并不重要,因為差別非常小——尤其對于初學者而言。但你應該知道,雖然Python 2有非常非常多的第三方支援,Python 3是設計語言的開發者關注的重點,很多第三方支援還沒有移植到Python 3。這個選擇需要你做出決定。然而,學習任何新的語言都會是一件令人卻步的任務,找到合适的地方和人并從中學習是成功的一半。這是這篇指南的用處。讓Python簡單、有趣并易于學習是你的藍圖。

對于初學者,Python 2和Python 3最大的不同很可能就是Python 2使用print不需要加括号,而Python 3需要,但就這麼多。

1. Codecademy python課程

Codecademy做了一項偉大的工作,将python的課程放在了一起,這對于初學者快速入門Python非常有用。

2. ScreenCasts

對于絕對的初學者,有一些非常棒的截屏視訊。

我學習python時參考的一些截屏視訊是:

兩個教程非常優秀,你甚至可以在學習完這兩個系列後開始編寫腳本。非常建議觀看下那些教程,它們是免費的,同時也是你将來參考時的非常好的資源。

3. Python的官方網站

當然,沒有比官方python.org的文檔更加好的資源了。但并不推薦給初學者,因為涉及的概念更加深入和進階,但它仍然是最好的資源。

有了這個,你将擁有一些python知識,知道在python中怎麼樣處理東西。

讀一些書

有過剩的免費高品質的電子書可供選擇。下面的快捷清單列出了一些最好的書。你可以免費下載下傳它們的電子版,或者如果你想支援作者的話,你也可以選擇購買紙質書籍(或者捐贈),我相信他們将非常感激這種方式。

Think Python: How to Think Like a Computer Scientist Think Python涉及理論方面的知識稍微多些。這可能會讓初學者有些沮喪,但這本書在算法原理和進階概念上的相關知識非常值得一讀。 Invent With Python 如果“邊學邊做”是你的方式,那麼建構自己的遊戲将會是一個非常值得的經曆!在這本書中,AI Sweigart假設沒有Python的知識,并全程帶領你建構自己的遊戲。

熟悉StackOverFlow

StackOverFlow不僅僅全是“新手”錯誤和問題,有一些非常聰明并樂于助人的人也在使用這個網站——從他們身上學習!

在這裡我們強烈無恥地推薦本站 SegmentFault

—— 中文開發者的優質問答社群。

傳送門:

Python标簽問答

你這裡看到的很多提示和技巧可能很多正式的教程不會涉及,但它們對于中進階Python使用者非常有用。

進入Web開發

現在你完成了Python忍者訓練,準備深入Ptyhon的Web開發,但現在的問題是有很多的架構,從中選擇最好的架構非常困難,但從初學者的角度出發,

Flask

基本Web架構将非常适合Web開發入門,因為你僅僅需要知道Python就可以開始,而你已經學了很多知識了。

在你學習完Flask架構後,你将會知道建立靜态頁面非常簡單,這是下一個問題出來了,使用它建立下一個web2.0的大應用合适麼?答案是Yes,你可以用Flask建立任何你想的應用,但在通過很多步的努力之後,你會發現,你已經成功的重建立造了一個已經有的輪子,但它給予你巨大的靈活性和力量,一開始你可能會感覺勢不可擋,而這也是很多初學者選擇Django,然後在六個月左右換了其他的架構。

你可以讀一下這個,知道哪些網站是由Flask驅動的

The largest site built with Flask

盡管Django和Pyramid也擅長Web開發,但他們是專為進階使用者設計,而不是僅僅學習編寫了幾行python的初學者。但如果你想認真學習Web開發,學習Flask是個很好的入門架構,因為它不抽象任何事物,也沒有任何魔法。

常用的庫和工具

PyPy

如果你要做的工作是計算密集型的,那麼你會發現Python的性能是一個瓶頸,這時候你就需要PyPy。PyPy是Python解釋器的一個替代品,可以有效加快處理速度。

NumPy + SciPy

這兩個庫通常是一起使用的(SciPy依賴于NumPy)。如果你需要做一些複雜的數值計算或科學研究工作,那麼這兩個庫将是你的案頭好友。NumPy和SciPy擴充了Python的數學函數功能,可以大大提高你的工作效率。

BeautifulSoup

正如其名,BeautifulSoup确實是非常優雅的。如果你需要解析一個HTML頁面來擷取一些資訊,你應該知道這是非常煩人的事情。BeautifulSoup的作用就是為你做這些事情,并為你節省時間。強烈推薦使用。

Python Image Library

The Python Image Library (PIL)是一個用來處理幾乎所有圖像操作的擴充庫。如果你需要處理一個圖像,PIL可以為你做很多。

了解了這些之後,你可以走上你自己的Python之路。

一些Web開發庫

SQLAlchemy

SQLAlchemy是Python的一個SQL和對象關系映射(ORM)工具集。它功能強大,并且很靈活,使得應用程式開發者可以友善地進行SQL操作。

Alembic

Alembic是一個輕量級的資料庫內建工具,主要和

協同使用。

結論

今天就到此為止,歡迎随時分享你的想法。