iT邦幫忙

2021 iThome 鐵人賽

DAY 29
1
自我挑戰組

Python 30天自我挑戰系列 第 29

Day29 - 上線後疑難雜症紀錄

昨天將網站放上Heroku後,其實還有遇到一些問題,並加強了部分功能,故今天的內容主要將記錄這些問題的解決情況。

使用社群登入時會出現HTTP 500錯誤

這個錯誤整理整個處理流程,共修正了兩個問題:

  • 未設定Social application使用的client id和secret key
    根據Day23的內容,Social application的設定需要在網站啟動後,於Admin功能進行設定。

  • 在Google雲端的OAuth Client ID未授權
    完成client id設定後,在Google端的OAuth Client ID未授權 https:[APP名稱].herokuapp.com使用,故Google會拒絕正式環境的驗證。

使用社群登入時,出現Error: redirect_uri_mismatch的錯誤訊息

這個問題是在解決前一個問題的過程中發現的支線錯誤,經查原因是Google OAuth Client ID授權頁面中,Redirect URI沒有設定到https,加入「https:[APP名稱].herokuapp.com/accounts/google/login/callback/」就恢復正常的。

爬蟲功能的簡轉繁

考量未來使用的舒適度,今天加入了簡轉繁功能。

使用的是OpenCC這個套件。

安裝:

pip install OpenCC

使用方法:

from opencc import OpenCC

cc = OpenCC('s2tw')  #s2tw: 簡轉繁     s2twp:簡轉繁(包含慣用詞轉換)
title = cc.convert(title)

Django Q沒有作用

  • 未啟動Django Q
    在開發環境時,我們可以使用指令啟動Django Q
python manage.py qcluster

在Heroku環境要啟動,需在Procfile加入worker:

worker: python manage.py qcluster --settings=path.to.my.settings
  • 未安裝Redis
    Django Q需要使用Redis才能運行,但因為目前使用Heroku是用免費方案,只能選擇一個資料庫,但Django本身資料庫又不支援Redis,故只好先尋找別的解決方案了。
    • 解決方案:開發django custom command,使用command執行batch script,將此指令加入Procfile,並使用Heroku Scheduler排程執行。 (尚未實作完成)

上一篇
Day28 - 部屬到正式環境 (3)
下一篇
Day30 - 總結
系列文
Python 30天自我挑戰30

尚未有邦友留言

立即登入留言