<noframes id="r35z7"><menuitem id="r35z7"></menuitem>
<var id="r35z7"><strike id="r35z7"></strike></var>
<var id="r35z7"><video id="r35z7"></video></var>
<cite id="r35z7"></cite>
<var id="r35z7"><strike id="r35z7"><listing id="r35z7"></listing></strike></var>
<var id="r35z7"></var>
<cite id="r35z7"></cite>
<var id="r35z7"></var>
<var id="r35z7"></var>

如何在Heroku上部署Django應用程序?

添加時間:2020-10-20 16:22:24

來源:

瀏覽:

Django是用于構建Web應用程序的MVT Web框架。它健壯,簡單,可幫助Web開發人員編寫干凈,高效和強大的代碼。在本文中,我們將通過簡單的步驟學習如何在Heroku上部署Django項目。為此,應準備一個Django項目。


先決條件:  

Django的

已安裝Postgres

Requirements.txt文件:在manage.py所在的目錄中創建requirements.txt文件。在激活了虛擬環境的控制臺中運行以下命令: 


 (myvenv)$ pip install dj-database-url gunicorn whitenoise

 (myvenv)$點凍結> Requirements.txt

檢查您的requirements.txt。它將使用項目中當前安裝的軟件包進行更新。


Procfile:  在manage.py所在的目錄中創建一個名為Procfile的文件。您將看到Heroku徽標作為Procfile的圖標。向其添加以下行:


網址:gunicorn <項目名稱> .wsgi --log文件-

這里的項目名稱將是您的settings.py所在文件夾的名稱。Procfile明確聲明應執行什么命令來啟動您的應用程序。

Runtime.txt文件:在與manage.py相同的目錄中創建runtimetime.txt文件。添加您要用于網絡應用的python版本:


python-3.7.1 

Settings.py:按照以下說明修改settings.py:


1.將debug設置為False。


調試=假

2.修改允許的主機。


ALLOWED_HOSTS = ['127.0.0.1','.herokuapp.com']

3.要禁用Django的靜態文件處理并允許WhiteNoise接管,請將'nostatic'添加到'INSTALLED_APPS'列表的頂部。


INSTALLED_APPS = [

    'whitenoise.runserver_nostatic',

    'django.contrib.staticfiles',

    #...

]

4.將WhiteNoise添加到MIDDLEWARE列表。WhiteNoise中間件應直接放置在Django SecurityMiddleware之后(如果使用的話),然后放在所有其他中間件之前:


MIDDLEWARE = [

 'django.middleware.security.SecurityMiddleware',

 'whitenoise.middleware.WhiteNoiseMiddleware',

 #...

]

5.更新數據庫設置。


導入dj_database_url


數據庫= {

    '默認':{

        'ENGINE':'django.db.backends.postgresql_psycopg2',

        'NAME':'<數據庫名稱>',

        'USER':'<用戶名>',

        'PASSWORD':'<密碼>',

        'HOST':'localhost',

        '港口': '',

    }

}

db_from_env = dj_database_url.config(conn_max_age = 500)

DATABASES ['default']。update(db_from_env)

6.直接從原始位置(通常在STATICFILES_DIRS或應用程序靜態子目錄中)提供文件,而無需通過collectstatic命令將其收集到STATIC_ROOT中;將WHITENOISE_USE_FINDERS設置為True。

WHITENOISE_USE_FINDERS =真

7. WhiteNoise帶有一個存儲后端,該后端自動負責壓縮文件并為每個版本創建唯一的名稱,以便可以安全地對其進行永久緩存。要使用它,只需將其添加到您的settings.py中:

STATICFILES_STORAGE ='whitenoise.storage.CompressedManifestStaticFilesStorage'

最終修改后的settings.py內容:

導入dj_database_url

...

調試=假

ALLOWED_HOSTS = ['127.0.0.1','.herokuapp.com']


INSTALLED_APPS = [

    'whitenoise.runserver_nostatic',

    

    #...

    

]

MIDDLEWARE = [

    'django.middleware.security.SecurityMiddleware',

    'whitenoise.middleware.WhiteNoiseMiddleware',

    

    #...

]

...

數據庫= {

    '默認':{

        'ENGINE':'django.db.backends.postgresql_psycopg2',

        'NAME':'<數據庫名稱>',

        'USER':'<用戶名>',

        'PASSWORD':'<密碼>',

        'HOST':'localhost',

        '港口': '',

    }

}


WHITENOISE_USE_FINDERS =真

...

db_from_env = dj_database_url.config(conn_max_age = 500)

DATABASES ['default']。update(db_from_env)

STATICFILES_STORAGE ='whitenoise.storage.CompressedManifestStaticFilesStorage'

Heroku帳戶

1.安裝Heroku工具帶,您可以在這里找到:https ://toolbelt.heroku.com/

2.在cmd或gitbash中運行以下命令來驗證您的Heroku帳戶

$ heroku登錄

此處要部署的項目(簡歷)目錄處于活動狀態

有時,在某些命令下,cmd或git bash可能會凍結。只需使用CTRL + C就可以了。

3.在部署之前對git進行任何更改。

$ git狀態

$ git add -A。

$ git commit -m“ Heroku的其他文件和更改”

4.選擇將顯示在域名上的應用程序名稱- [您的應用程序名稱] .herokuapp.com,然后使用以下命令創建應用程序:

$ heroku創建<您的應用的名稱>

5.調試:如果在構建過程中collectstatic失敗,則提供回溯,這將有助于診斷問題。如果您需要有關運行收集靜態環境的其他信息,請使用DEBUG_COLLECTSTATIC配置。

$ heroku config:set DEBUG_COLLECTSTATIC = 1

6.禁用Collectstatic:有時,您可能不希望Heroku代表您運行collectstatic。您可以使用DISABLE_COLLECTSTATIC配置禁用collectstatic構建步驟:

$ heroku config:set DISABLE_COLLECTSTATIC = 1

7.最后,執行一個簡單的git push來部署我們的應用程序:

$ git push heroku master

8.部署到Heroku時,我們創建了一個新數據庫,該數據庫為空。我們需要運行migration和createsuperuser命令。

$ heroku運行python manage.py migration

$ heroku運行python manage.py createsuperuser

命令提示符將要求您再次選擇用戶名和密碼。這些將是您在實時網站的管理頁面上的登錄詳細信息。

9.要打開您的站點,請運行:

$ heroku打開

解決錯誤

如果您在網站運行中看到應用程序錯誤:

$ heroku日志--tail


用戶名 Name
評論 Comment

聯系我們

/ CONTACT US

地 址:四川省成都市航空路豐德國際廣場

郵政編碼:610000

電 話:18215660330

傳 真:18215660330

手機:18215660330

郵 箱:179001057@qq.com

投訴郵 箱:179001057@qq.com

姓名Name
標題Title
郵 箱Emali
聯系電話Tel
內容Content
凤凰彩票