Giả sử bạn đã setup Python 3.6, Pipenv và heroku CLI local, đã login Heroku từ CLI theo bước tại: https://devcenter.heroku.com/articles/getting-started-with-python#set-up.
App cần git repository để deploy lên Heroku. cd vào thư mục root của git repo code. Tạo Heroku app:
$ heroku create Creating lit-bastion-5032 in organization heroku... done, stack is cedar-14 https://lit-bastion-5032.herokuapp.com/ | https://git.heroku.com/lit-bastion-5032.git Git remote heroku added
Khi tạo app, git remote (gọi là heroku) cũng được tạo và gán với local git repo. Heroku sinh tên ngẫu nhiên (ví dụ lit-bastion-5032), hoặc bạn truyền tham số để đặt tên app riêng.
Push code lên Heroku:
$ git push heroku master Counting objects: 232, done. Delta compression using up to 4 threads. Compressing objects: 100% (217/217), done. Writing objects: 100% (232/232), 29.64 KiB | 0 bytes/s, done. Total 232 (delta 118), reused 0 (delta 0) remote: Compressing source files... done. remote: Building source: remote: remote: -----> Python app detected remote: -----> Installing python-3.6.0 remote: -----> Installing requirements with latest pipenv... remote: Installing dependencies from Pipfile.lock... remote: $ python manage.py collectstatic --noinput remote: 58 static files copied to '/app/gettingstarted/staticfiles', 58 post-processed. remote: remote: -----> Discovering process types remote: Procfile declares types -> web remote: remote: -----> Compressing... remote: Done: 39.3M remote: -----> Launching... remote: Released v4 remote: https://lit-bastion-5032.herokuapp.com/ deployed to Heroku remote: remote: Verifying deploy... done. To git@heroku.com:lit-bastion-5032.git * [new branch] master -> master
Lưu ý: cần chỉ định requirement (third-party module import) kèm version trong requirements.txt. Ví dụ:
Flask==0.8 Jinja2==2.6 Werkzeug==0.8.3 certifi==0.0.8 chardet==1.0.1
Đọc thêm tại Heroku Python docs: https://devcenter.heroku.com/articles/python-pip