將 django部署到 heroku上


為什么要這樣做,因為我並沒有弄懂,使用傳統和推薦的方法來部署django。剛好我手里有這么一份教程我就按照這么做了。

1.

訪問
http://heroku.com/

完成一個注冊,注冊需要一個國外的email,好像是這樣,反正我用了gmail

2.安裝 heroku toolbelt

這里應該有一種一鍵安裝的辦法,但是我忘掉了,雖然我是這么做的,你可以在沒安裝的情況下,使用pycharm在虛擬環境下(自身的命令行),運行 heroku login 會提示你安裝命令,但是運行命令后告訴你他是不靠譜的,不安全的,你需要加上一個后綴。。。

使用傳統方案,在官網下載,安裝(在任何時候在pycharm下使用alt+f12可以調用出工程目錄下命令輸入,我想這是大多數人使用它的原因之一,確實非常人性化,linux的門檻太高,對新手來說確實有很多不方便,不得不說ununtu 18版本做了巨大的優化,因為我一度安裝到ubuntu16任然出現了一些莫名其妙的錯誤,ubuntu18我順利通過,這是我堅持通過這個項目的主要原因)

3.安裝必要的包

一下命令皆是在虛擬環境命令行
pip install dj-database-url
pip install dj-static
pip install static3
pip install gunicorn

4.

pip freeze > requirements.txt

使用該命令生成一個文件,再該文件末尾加上 

psycopg2>=2.6.1

5.新建立一個 runtime.txt的文件,里面就一個版本

python-3.x.x
x x為你自己版本

6.在項目 settings.py結尾加入下面代碼 settings 里面有很多關於 靜態,主機過濾、debug等,注意不要重復 特別是debug在最上面有一個記着要注釋掉

#heroku 設置
if os.getcwd()=='/app':  #獲取當前目錄
    import dj_database_url
    DATABASES = {
        'default':dj_database_url.config(default='postgres://localhost')
    }

#讓 request.is_secure()承認X-Forearded-Proto頭
SECURE_PROXY_SSL_HEADER = ('HTTP_X_FORWARDED_PROTO','https')


#ALLOWED_HOSTS = ['localhost']

#靜態資源配置
# BASE_DIR = os.path.dirname(os.path.abspath(__file__))

STATIC_ROOT = 'staticfiles'

STATICFILES_DIRS = (
    os.path.join(BASE_DIR,'static'),
)

7.創建啟動進程文件(似乎所有的都要這樣干,這個配置適合於yuning?con?我也不清楚)

新建立一個Procfile的文件,改文件並沒有后綴,只有一句話

web:gunicorn learning_log.wsgi  __log-file -

其中 learning是你的網站名字,或者工程名字

8.修改wsgi.py文件

from dj_static import Cling


application = Cling(get_wsgi_application())

加入這兩行

9.創建一個靜態臨時文件,其實是一個站位器,就是要站着這個位。這一步特別重要,書本描述和實際有偏差,可能是書本老了。我們要在工程根目錄建立一個 “static”文件夾,靜態文件夾(路徑錯誤將導致非常麻煩的問題,各種錯誤),其實就是放網站logo和背景圖片,js,flash等等,在這個文件夾里面建立一個“placeholder.txt”文件里面隨便寫一些東西,畢竟就是占位用的。

10.加入你已經成功安裝了 heroku,加入你是os或者linux系統,嘗試運行下面,建立本地測試服務

heroku local

會建立一系列文件,當你輸入 localhost:5000會打開網站,但是我並沒有成功,我的local居然被定位到了“0”,莫名其妙。此步驟可以跳過

11.這個 heroku依托於git我們先部署 git,這個在linux上非常方便(我不清楚下面的git賬號什么意思,我們往網上推送代碼是不是需要這個呢)

git --version

git config --global user.name "ehmatthes"

git config --global user.email "eric@example.com"

項目根目錄建立 .gitignore文件,用來過濾

ll_env/
__pycache__/
*.sqlite3

12.提交項目

git init
#此項用於在目前的目錄新建一個倉庫
git add .
#添加新更改的數據,准備提交git
git commit -am "xxxxxxxxxxz標注"
#提交變化
git status
#只要顯示空,說明全部更改已經被提交

13.推送到heroku

heroku login
#登錄

heroku create
#創建空項目(app)

git push heroku master
#將項目打包提交到目標服務器,此項有可能出現大量問題,如果沒有錯誤皆大歡喜

14.查驗服務是否部署成功

heroku ps

正常情況,他會返回你還有多少小時,現在一般都是有500h/月(免費)。

15.打開進程

heroku open

有可能這里也出錯,主要是提示找不到 “static”,就是前面的靜態路徑配置。此步驟成功,就可以打開主頁了

16.安裝數據庫

heroku run python manage.py migrate

17.改進配置

heroku run bash
#像操作主機那樣操作服務器 ,但是只限制到自己的路徑

ls

python manage.py createsuperuser
#創建超級用戶

ll_admin


exit
#退出

heroku apps:rename yourname
#將網址二級域名改為自己想要的域名,前提是不沖突

 https://see-sea.herokuapp.com/   歡迎登陸我的 python網頁

end the book 2018-6-3

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM