今天來寫訂閱服務,類似電子報這樣,可以每天定時根據訂閱內容定時寄天氣預報PDF。
先建table ,取一個叫 WeatherSubscribe,欄位有要寄送的email和所選的行政區list,因為是存list,查了一下,有ArrayField,就用這個吧。
main/models.py ,建資料庫表格都寫在這個檔案
from django.contrib.postgres.fields import ArrayField
class WeatherSubscribe(models.Model):
email = models.EmailField()
districts = ArrayField(models.CharField(max_length=200))
def __str__(self):
return self.email
寫完要執行makemigrations指令
(venv) $ python manage.py makemigrations
就會看到在main/migrations/ 底下,會看到多了00 開頭的檔案
再來執行 migrate,依據00開頭檔案,建立表格
(venv) $ python manage.py migrate
這樣就建立好了也加上admin.py,django 有預設的管理後台,可以更直覺的看資料有沒有建立成功,算是滿好用的,也可以客製化查詢界面等等。
main/admin.py
from main.models import WeatherSubscribe
admin.site.register(WeatherSubscribe)
還要建管理者帳號,要下指令
(venv) $ python manage.py createsuperuser
照著他給的打,先打帳號,Email,密碼,就建立好了
在網頁上輸入 http://localhost:8000/admin/
打上剛剛建立的管理者帳號,就可以登入後台。
管理後台
參考資料: