為什么要這樣做,因為我並沒有弄懂,使用傳統和推薦的方法來部署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