Django 的第三方包

Django 項目中的 Requirements 文件中的依賴包一定要指定特定的版本號,如:

Django==1.8
coverage==3.7.1
django-extensions==1.5.2
django-braces==1.4

而你發佈的第三方包中,依賴包不能指定特定的版本,版本號要越寬泛越好。例如,當你的依賴指定爲 Django==1.72, 但當你的包在 Django 1.8 的項目中使用時,就會出現衝突。

有用的包資源:

核心

Django : Web 框架。

django-debug-toolbar : 顯示面板用於調試 Django HTML 視圖。

django-model-utils : 很有用的數據模型工具,包含一個時間戳數據模型。

ipdb : IPython pdb。

Pillow : PIL 替代品。

pip : 包安裝工具。在 Python 3.4 及以上版本中已內置。

Sphinx : Python 項目的文檔工具。

virtualenv : Python 虛擬環境。

virtualenvwrapper : 使得 virtualenv 在 Mac OS X 和 Linux 上更加好用。

virtualenvwrapper-win : 使得 virtualenv 在 Windows 上更加好用。

異步

celery : 分佈式任務隊列。

flower : 監測和管理 Celery 任務的工具。

rq : RQ 是一個簡單輕量級的庫,用於創建和處理後臺任務。

django-rq : 用於在 Django 中集成 RQ (Redis Queue) 的一個簡單應用。

django-background-tasks : 數據庫異步任務隊列。

數據庫

django-db-tools : 對於將網站往返切換到只讀模式很有用。

psycopg2 : PostgreSQL 數據庫適配器。

部署

circus : 能使你運行和監測多進程和多 Socket 的一個程序。用於 Mozilla,非常複雜,不適合小項目。

dj-database-url : 這個簡單的 Django 工具能使你輕鬆地使用 Heroku 訪問數據庫。

django-heroku-memcacheify : 爲 Heroku 提供簡單的 Memcached 配置。

Fabric : 用於遠程執行和部署的簡單工具。

Invoke : 類似 Fabric, 但它兼容 Python 3。

Paver : 一個創建、發佈和部署的腳本工具。

Supervisor : Supervisord 是一個 C/S 系統,它用於監測和控制類 UNIX 系統上的鑫個進程。

表單

django-crispy-forms : 爲 Django 表單呈現控件。默認使用 Twitter Bootstrap 組件,但是可替換。

django-floppyforms : 表單項、組件和佈局,可與 django-crispy-forms 一起使用。

django-forms-bootstrap : 一個簡單的表單過濾器,使用 Twitter Bootstrap 型的 Django 表單中。

django-forms-builders : 一個可重用的 Django 應用,爲管理員用戶提供在 admin 界面中創建自定義表單的功能。

前端

JSCS : JavaScript 代碼風格檢查器。

CSScomb : CSS 代碼風格格式化工具。

日誌

logutils : 爲 logging 提供了很有用的 handlers。

Sentry : 開源的異常錯誤聚合器。

App Enlight : 跟蹤項目中的項目和性能問題。

Newrelic : 實時日誌和聚合平臺。

項目模板

cookiecutter-django

Cookiecutter : 不只針對 Django。是一個用於創建項目和應用模板的命令行工具。它專注、測試充分、文檔充實。

django-kevin : 特別針對 Heroku 部署優化的 Django 項目模板。

django-herokuapp : 提供一組工具和項目模板,使 Django 網站易於在 Heroku 上運行。

REST APIs

django-rest-framework : Django REST 包的事實標準。能將數據模型和非數據模型資源導出爲 RESTful API。

django-jsonview : 提供一個簡單的裝飾器,能將 Python 對象轉成 JSON 並確保已裝飾的視圖總能返回 JSON。

django-tastypie : 能將數據模型和非數據模型資源導出爲 RESTful API。

安全

bleach : 一個簡單基於白名單的 HTML 安全審查工具。

defusedxml : 當需要從外部接收 XML 數據時必須要用的 Python 庫。

django-autoadmin : 爲 Django 項目的管理員用戶自動生成密碼。

django-admin-honeypot : 一個假的 Django 管理登錄界面,用於通知管理員有關未授權訪問的情況。

django-axes : 爲 Django 站點記錄失敗的登錄嘗試。

django-ratelimit-backend : 在 auth backend 層進行登錄速率限定。

django-passwords : 一個可重用的 Django 應用,爲驗證密碼強度提供了驗證器和一個表單項。

django-secure : 有助於你採用安全專家推薦的實踐對站點進行安全加固。它的大部分功能已包含在 Django 的 SecurityMiddleware 類中。

django-two-factor-auth : 針對 Django 的完整雙因子認證。

django-user-sessions : 含一個 user 的 Django 會話。

peep : 只使用已驗證的 TLS 來上傳至 PYPI,能保護你的信息不被竊取。其它的一些功能也值得一看。

Twine : 只使用已驗證的 TLS 來上傳至 PYPI,能保護你的信息不被竊取。其它的一些功能也值得一看。

測試

coverage : 檢查你的代碼有多少已經測試過了。

factory boy : 一個能創建數據模型測試數據的包。

model mommy : 另一個創建數據模型測試數據的包。

mock : 不只針對 Django, 它能使你將系統中的部分組件替換爲 mock 對象。該項目將會內置到 Python 3.4 中。

pytest : 一個成熟的全功能 Python 測試工具,在 Python 和 Django 項目中都很有用。

pytest-django : pytest-django 是針對 py.test 的一個插件,它提供的一組工具對 Django 應用和項目的測試很有用。

tox : 一個通用的 virtualenv 管理和命令行測試工具,能在命令行中用一個命令針對多個 Python 版本對項目進行測試。

用戶註冊

django-allauth : 通用的註冊和認證功能。包括電子郵件、Twitter、 Facebook、 GitHub、 Google 等。

python-social-auth : 針對 Twitter、 Facebook、 GitHub、 Google 等進行社交認證和註冊。

視圖

django-braces : 爲 Django CBV 提供了大量的 Mixin。

django-extra-views : 提供大量的額外通用 CBV 以對 Django 進行補充。

django-vanilla-views : 通過簡化繼承鏈來簡化 Django 的通用 CBV。

時間

python-dateutil : 爲 Python datetime 模塊提供了強大的擴展功能。

pytz : 將 Olson tz 數據庫融入 Python。它允許精確及跨平臺的時區計算。它還解決了夏令時的時間問題。

其它

awesome-slugify : 一個靈活的 slugify 函數。

dj-stripe : 使 Django + Stripe 更加容易。

django-compressor : 將鏈接和內連的 JavaScript 和 CSS 壓縮成單個的緩存文件。

django-extensions : 提供 shell plus 管理命令及其它許多工具。

django-haystack : 能與 SOLR、 Elasticsearch 等一起使用的全文檢索工具。

django-pipeline : CSS 和 JS 的壓縮工具,和 cssmin 與 jsmin 包一起使用。

django-htmlmin : Django 的 HTML minifier。

django-reversion : Django 框架的一個擴展,提供了完整的版本控制功能。

django-watson : 爲使用 SQL 數據庫的 Django 項目提供全文多表的探索功能的應用。

envdir : Python 版的 aemontools envdir。

flake8 : 使用 PyFlakes, pep8 等其它工具進行代碼質量檢查。

pathlib : 面向對象的文件系統路徑工具,已合併到 Python 3.4。

pip-tools : 一些能使你的 Python 依賴保持更新的工具。

pyyaml : Python 的 YAML 解析器和觸發器。

requests : 一個易用的 HTTP 庫,用於替換 Python 的 urllib2 庫。

silk : Silk 是一個針對 Django 框架的 實時性能分析和檢查工具。它在將數據呈現給用戶界面之前將 HTTP 請求和數據庫查詢進行攔截,以便進一步進行分析。

unicode-slugify : Mozilla 支持的一個 slugify,能使用 unicode 字符。

Unipath : os/os.path/shutil 的面向對象的替代器。

參考文獻: Two Scoops of Django: Best Practices for Django 1.8

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章