訂閱的資料弄好了,要用排程去跑,如果伺服器是架設在自己主機上,可以用linux 的crontab跑,或是用套件 django-crontab 等等。
或是選雲端主機,目前有很多雲端主機可以選,我選 Heroku,因為他有免費方案,只是這個方案,沒有請求的時候(request),會睡覺,下一個request 會比較久,還有一些限制,每個月只能使用550小時,加上信用卡會有額外450小時。還算夠用,假設流量一大,升級就可以了。詳請:heroku Free Dyno Hours
先去heorku 網站建立一個app
再來安裝heroku cli
$ sudo snap install --classic heroku
venv 安裝需要的套件
(venv) $ pip install gunicorn dj-database-url whitenoise
settings.py 把debug 改成 False
...python
DEBUG = False
MIDDLEWARE = [
...
'whitenoise.middleware.WhiteNoiseMiddleware',
]
...
import os
if not DEBUG:
import dj_database_url
db_from_env = dj_database_url.config()
DATABASES['default'].update(db_from_env)
STATIC_ROOT = os.path.join(BASE_DIR, 'staticfiles')
STATICFILES_STORAGE = 'whitenoise.storage.CompressedManifestStaticFilesStorage'
建立 Procfile 檔案 pdfProject是專案名稱
web: gunicorn pdfProject.wsgi --log-file -
產生 requirements.txt,會顯示這個環境下所有安裝的套件名稱及版本。
(venv)$ pip3 freeze > requirements.txt
.gitignore
*.pyc
media/*
CLI登入Heroku,會跳,瀏覽器登入就可以了
$ heroku login
這裡 我新建立的 app名稱是 demo-pdf-weather
$ git init
$ heroku git:remote -a demo-pdf-weather
$ git add .
$ git commit -m "first push"
$ git push heroku master
就會開啟瀏覽器,就看到頁面了
heroku open
因為是新建立的,所以要建立表格要下 manage.py migrate的指令
$ heorku run python manage.py migrate
也順便建立管理者帳號密碼
$ heroku run python manage.py createsuperuser
demo 主機: https://demo-pdf-weather.herokuapp.com/
參考資料: