Flask 的設計原則之一是簡單的任務不應當使用很多代碼,應當可以簡單地完成,但同時 又不應當把程序員限制得太死。因此,一些 Flask 的設計思路可能會讓某些人覺得吃驚, 或者不可思議。例如, Flask 內部使用本地線程對象,這樣就可以不用為了線程安全的 緣故在同一個請求中在函數(shù)之間傳遞對象。這種實現(xiàn)方法是非常便利的,但是當用于附屬 注入或者當嘗試重用使用與請求掛鉤的值的代碼時,需要一個合法的環(huán)境。 Flask 項目 對于本地線程是直言不諱的,沒有一點隱藏的意思,并且在使用本地線程時在代碼中進行 了標注和說明。
做網絡應用開發(fā)時,安全要永記在心。
如果你開發(fā)了一個網絡應用,那么可能會讓用戶注冊并把他們的數(shù)據(jù)保存在服務器上。 用戶把數(shù)據(jù)托付給了你。哪怕你的應用只是給自己用的,你也會希望數(shù)據(jù)完好無損。
不幸的是,網絡應用的安全性是千瘡百孔的,可以攻擊的方法太多了。 Flask 可以防御 現(xiàn)代 Web 應用最常見的安全攻擊:跨站代碼攻擊( XSS )。 Flask 和 下層的 Jinja2 模板引擎會保護你免受這種攻擊,除非故意把不安全的 HTML 代碼放進來。但是安全攻擊 的方法依然還有很多。
這里警示你:在 web 開發(fā)過程中要時刻注意安全問題。一些安全問題遠比想象的要復雜 得多。我們有時會低估程序的弱點,直到被一個聰明人利用這個弱點來攻擊我們的程序。 不要以為你的應用不重要,還不足以別人來攻擊。沒準是自動化機器人用垃圾郵件或惡意 軟件鏈接等東西來填滿你寶貴的數(shù)據(jù)庫。
Flask 與其他框架相同,你在開發(fā)時必須小心謹慎。
目前, Python 社區(qū)正處在改進庫的過程中,以便于加強對 Python 語言的新迭代的 支持。雖然現(xiàn)在情況已經有很大改善,但是還是存在一些問題使用戶難以下決心現(xiàn)在就 轉向 Python 3 。部分原因是 Python 語言中的變動長時間未經審核,還有部分原因是 我們還沒有想好底層 API 針對 Python 3 中 unicode 處理方式的變化應該如何改動。
我們強烈建議你在開發(fā)過程中使用 Python 2.6 或者 Python 2.7 ,同時打開 Python 3 警告。如果你計劃在近期升級到 Python 3 ,那么強烈推薦閱讀如何編寫向前兼容的 Python 代碼 。
如果你一定要使用 Python 3 ,那么請先閱讀 Python 3 支持 。
? Copyright 2013, Armin Ronacher. Created using Sphinx.