今天的实作内容主要根据教学网站进行。
Heroku主要利用四个档案来设定环境:
接下来我将逐一设定这些档案。
用来标示使用的程序语言运行环境与版本。
新增方法:在专案根目录 (和manage.py同一层级)新增runtime.txt,其中内容如下:
python-3.9.7
要注意的是Heroku并不是所有版本都支援,故需要先去Heroku网站确认Python的支援版本,不然在推送到Heroku时会发生问题。
同样在根目录下新增Procfile档案,内容如下:
web: gunicorn bookhelper.wsgi --log-file -
gunicorn为Heroku推荐的web application server,此段宣告gunicorn使用bookhelper.wsgi作为组态设定。
用来宣告要安装的Python套件。
需要安装的Python套件可以使用以下指令,将开发环境有安装的套件列出:
pip freeze > requirements.txt
输出的档案一样放在根目录,Heroku会根据此档案进行安装,但要注意的是如果是自己私人开发未上传到PYPI的套件 (如Day17内容)就无法使用。
除了开发阶段已安装的套件外,因应正式环境的环境设置,还有一些额外的套件需要安装。
实际requirement.txt内容:
dj-database-url==0.5.0
Django==3.2.7
django-allauth==0.45.0
django-q==1.3.9
gunicorn==20.1.0
psycopg2==2.9.1
whitenoise==5.3.0
gunicorn
dj-database.url
在开发期间,django的settings.py中我们使用local资料库连线设定,当上传到正式环境时,Heroku以add-on透过URL的方式提供我们使用。
Heroku建议使用此套件以解析资料库使用的URL。
settings.py可以调整如下:
# Heroku: Update database configuration from $DATABASE_URL.
import dj_database_url
db_from_env = dj_database_url.config(conn_max_age=500)
DATABASES['default'].update(db_from_env)
psycopg2
Heroku的免费方案中提供的资料库为Postgres,故需要安装对应的套件。
WhiteNoise
用来提供Python web app的静态档案。(如果透过Django提供静态档案的话效能会较差)
settings.py要配合做以下设定:
MIDDLEWARE = [
'whitenoise.middleware.WhiteNoiseMiddleware',
]
STATICFILES_STORAGE = 'whitenoise.storage.CompressedManifestStaticFilesStorage'
因为时间因素,今天内容就先更新到这边,明天再接续後面的流程。
>>: [Day26] - Django-REST-Framework API 期末专案实作 (一)
题组回顾与观念统整 Stack 和 Queue 绝对是资料结构中不可以错过的一种容器,不只用於资料...
终於最後一天了!!~虽然没有写的很好,就是心得的小小整理,但是也坚持了三十天了,谢谢不小心进到这个网...
天亮了 昨晚是平安夜 关於迷雾森林故事 穿越 躺在草丛中的两只兔子似乎还有生命迹象 但却一动也不动的...
接着要示范如何用 Eloquent 建立多对多关联的查询,目标帮目前的 Todo 建立 Tag 标签...
游戏示意 swift - Point 与 胜负提示 新增一个Label Text输入: Point:...