使用 conda env 部署 Django

沒幾天前剛部署一次 Django,記錄在《使用 uWSGI、nginx、systemd 部署 Django》。今天又部署了另一個專案。部署的設定跟上次一樣:

nginx -- unix socket -- uWSGI -- Django

一樣寫一個 PROJ.service 的 systemd unit 來管理網站的啟動 (uWSGI)。之後提到 PROJ 時就換成自己的專案名稱;USER 就換成執行網站的帳號。

conda

conda 是一個 Python 套件的管理系統,他的好處是,遇到要使用外部 library 時,會這些套件相依的 library 都一併安裝管理 …

使用 uWSGI、nginx、systemd 部署 Django

上一次很認真的 Django 部署記錄在《設定 Python 官方文件中文化自動更新 Server》一文。很巧地自己畢業的題目也要架個 Django 網站,所以就再跑了一次部署設定。舊文還提了有的沒的,這篇僅針對 Django 的部署。

這邊的部署設定都儘量不使用 root 權限,整個連線的流程圖如下:

nginx -- unix socket -- uWSGI -- Django

寫一個名為 PROJ.service 的 systemd unit 來管理這網站的啟動與否。之後 PROJ 就換成自己的專案名稱;USER 就換成執行網站的帳號。

作業系統

使用 …

設定 Python 官方文件中文化自動更新 Server

設定一個自動更新 Python 說明文件中文翻譯並且 host 中文化網頁版文件的 server。使用 Django 作 web server、Django-Q 做為 task queue,deploy stack 用 nginx、uWSGI,host 於 Amazon EC2 (Debian Jessie),資料庫用 PostgreSQL,並用 systemd 管理相關的 process。

Customize Django User Model

Django 帳號的欄位定義在 django.contrib.authUser 中,對使用者而言包含了:username*、first_name、last_name、email、password*。同時對開發者來說,還有:

  • 指定 Group 和 Permission
  • 是否為 staff、superuser
  • 帳號開通、最後一次登入時間

內建的帳號功能應該很實用,安全性也很好。所以一般來說都不會去改它。

如果只是想要幫 User 加個 profile,例如生日、來自哪個星球等欄位,也不需要改寫 User。參考官網 Extending the existing User model,只需要建一個 one-to-one relationship 指到 User 就好了:

from django …

用 Django 與 SQLite 架抽籤網站

把之前用 Flask 架的抽籤網站改用 Django 實作,也藉這個機會比較一下兩個 Framework 設計概念的不同。