### 導航
- [索引](# "總目錄")
- [下一頁](# "安裝") |
- [上一頁](# "前言") |
- [Flask 0.10.1 文檔](#) ?
# 給有經驗程序員的前言
本章節是給有其它框架工作經驗的程序員,以及有具體或深刻涉及那些的典型用戶,
### Flask 中的線程局部變量
Flask 的設計抉擇之一就是,簡單的任務應該保持簡單;它們的實現不應是大量代碼的堆疊,并不應該限制到你。為此,我們選擇了一些可能讓某些人覺得驚訝或異端的設計。例如,Flask 內部使用線程局部的對象,這樣你不必在請求內的函數間傳遞對象來保證線程安全。這個方法很方便,但為依賴注入,或嘗試重用使用了與請求掛鉤的值的代碼,需要一個有效的請求上下文。
### Web 開發是危險的
請在構建 Web 應用時牢記安全。
如果你編寫了一個 Web 應用,你很可能允許用戶在你的服務器上注冊并留下數據。即使你是這唯一的用戶,也會在應用中留下數據。用戶們把數據托付給你,你當然更希望這些數據被妥善安全地保存。
不幸的是,有許多方式可以讓 web 應用的安全措施形同虛設。 Flask 保護你免受現代Web 應用最常見的一個安全問題的困擾:跨站腳本攻擊(XSS)。除非你蓄意把不安全的 HTML 標記為安全,Flask 和底層的 Jinja2 模板引擎已經為你嚴防死守。但許多安全問題依然存在。
本文檔會在 web 開發中那些需要注意安全的方面警示你。這些安全考慮中的某些遠比人們想象的復雜,我們有時候低估漏洞被利用的可能性——直到一個聰明的攻擊者找出利用我們程序的方法。并且,不要想著你的應用沒有重要到可以吸引攻擊者。取決于攻擊的類型,有時候是自動化的僵尸機器搜尋在你數據庫中填充垃圾、惡意程序鏈接或之類東西的方法。
開發者必須在為需求編寫代碼時留心安全隱患,在這點上,Flask 與其它框架沒有區別。
### Python 3 的狀態
Python 社區目前處于改善庫對 Python 編程語言中迭代支持的進程中。而當前大力改進中的處境仍有一些問題,使得我們難以遷移到 Python 3 。導致這些問題的原因一部分是語言中的變更長時間沒有復查,一部分也是因為我們沒有找出低層 API 應該如何做出修改來適應 Python 3 中 Unicode 的差異。
一旦應對變更的解決方案出現,Werkzeug 和 Flask 就會立刻遷移到 Python 3 ,并且我們會提供升級現有應用到 Python 3 的提示。在那之前,我們強烈建議在開發時使用 Python 2.6 和 2.7 ,并激活 Python 3 警告。如果你計劃在近期升級到 Python 3 ,我們強烈推薦你閱讀[如何編寫向后兼容的 Python 代碼](http://lucumr.pocoo.org/2011/1/22/forwards-compatible-python/) [http://lucumr.pocoo.org/2011/1/22/forwards-compatible-python/] 。
繼續閱讀 [*安裝*](#) 或 [*快速入門*](#) 。
? 版權所有 2013, Armin Ronacher.
- 歡迎使用 Flask
- 前言
- 給有經驗程序員的前言
- 安裝
- 快速入門
- 教程
- 介紹 Flaskr
- 步驟 0: 創建文件夾
- 步驟 1: 數據庫模式
- 步驟 2: 應用設置代碼
- 步驟 3: 創建數據庫
- 步驟 4: 請求數據庫連接
- 步驟 5: 視圖函數
- 步驟 6: 模板
- 步驟 7: 添加樣式
- 福利: 應用測試
- 模板
- 測試 Flask 應用
- 記錄應用錯誤
- 配置處理
- 信號
- 即插視圖
- 應用上下文
- 請求上下文
- 用藍圖實現模塊化的應用
- Flask 擴展
- 與 Shell 共舞
- Flask 代碼模式
- 大型應用
- 應用程序的工廠函數
- 應用調度
- 使用 URL 處理器
- 部署和分發
- 使用 Fabric 部署
- 在 Flask 中使用 SQLite 3
- 在 Flask 中使用 SQLAlchemy
- 上傳文件
- 緩存
- 視圖裝飾器
- 使用 WTForms 進行表單驗證
- 模板繼承
- 消息閃現
- 用 jQuery 實現 Ajax
- 自定義錯誤頁面
- 延遲加載視圖
- 在 Flask 中使用 MongoKit
- 添加 Favicon
- 數據流
- 延遲請求回調
- 添加 HTTP Method Overrides
- 請求內容校驗碼
- 基于 Celery 的后臺任務
- 部署選擇
- mod_wsgi (Apache)
- 獨立 WSGI 容器
- uWSGI
- FastCGI
- CGI
- 聚沙成塔
- API
- JSON 支持
- Flask 中的設計決策
- HTML/XHTML 常見問題
- 安全注意事項
- Flask 中的 Unicode
- Flask 擴展開發
- Pocoo 風格指引
- Python 3 支持
- 升級到最新版本
- Flask Changelog
- 許可證
- 術語表