2019年11月24日 星期日

把django網頁送上heroku這個免費的伺服器

ps本篇是接續  django 在本機上執行

--前提,
  • heroku註冊一個帳號,不必登入也沒關係,因為操作不在網頁上,而是透過下面的CLI。
(上方藍字是安裝git,右下方是安裝windows版的heroku CLI)

--先進到虛擬環境(請看上一篇)
先前的範例已經可以在本機上執行了,

先來準備額外的檔案
根目錄中要有3個檔案,requirements.txt,runtime.txt,Procfile
  • runtime.txt內容就是python的版本,根據你自己的版本,3.7以上
  • Procfile不可以有副檔名,內容如下
web: gunicorn herokuproj.wsgi --log-file -
(gunicorn套件本機不必安裝,但伺服器端要安裝。hefokuproj.wsgi在上一篇中有順便看過)
  • requirements.txt的產生方式如下,
先用pip 指令打包已經安裝的所有套件,再用文字編輯器將gunicorn加入


開始傳送工作
--用heroku CLI登入,按任意鍵,開啟網頁登入。(登入後,網頁就可關閉,如果你已經在網頁登入了,按login就會自動完成登入。)
--在heroku建立app,名稱自取,這裡用uptoheroku1122。(盡量雜亂組合才會通過,不取名就自動給一個雜亂的名字)
上一篇提到,取好的名字,組合網站名稱,填入settings.py中
ALLOWED_HOSTS = ['uptoheroku1122.herokuapp.com',]

--建立本機app和heroku網站app之間的連結
--用git發布,app送上網站的三步驟(以後修改之後,也都是這三個步驟要做一次)
步驟1:git add .
步驟2:git commit -m "寫下這次修正的描述"(確認了本機上所有的改變)
步驟3:git push heroku master(將改變的結果推上網路的主編輯檔)
---會出一個錯,但也提供了解決方法,(collectstatic實在是很複雜,但是不用它好像也沒關係)
複製 heroku config:set DISABLE_COLLECTSTATIC=1,在命令列執行就好了。
然後重作步驟3
--打開瀏覽器看結果
還是出錯,因為在url.py中,並沒有指定對應的程式
因為網址不對,自己加上/post就可以了。

---------------------------------------------------------------------------------------------------------

#當你了解以上步驟之後,你可以考慮參考下面簡要的步驟。加快你的布建速度。

到heroku註冊一個帳號  https://www.heroku.com/

python -m venv myenv
acitvate

requirements.txt
runtime.txt
Procfile

heroku login

heroku create herokuapp
git init
heroku git:remote -a herokuapp(這個名字一定不會過)
heroku buildpacks:set heroku/python
heroku config:set DISABLE_COLLECTSTATIC=1

在settings.py中
ALLOWED_HOSTS = ['herokuapp.herokuapp.com']


git add .
git commit -m "abc"   
git push heroku master
heroku open

在網址後加一下  herokuapp.herokuapp.com/post/



沒有留言:

張貼留言