将文件部署到heroku服务器上

需要的文件

  1. requirements.txt
    示例:
Django==1.8.4
dj-database-url==0.3.0
dj-static==0.0.6
django-bootstrap3==6.2.2
gunicorn==19.3.0
static3==0.6.1
psycopg2>=2.6.1

快捷方法:终端输入

pip install dj-database-url
pip install dj-static
pip install django-bootstrap3
pip install gunicorn
pip install static3
pip freeze > requirements.txt
然后输入未安装成功的包

  1. runtime.txt
    查看此处并选择与你的Python版本相近的runtime
    格式如python-3.6.9(Python3.6.9)

  1. Procfile
    这个文件没有扩展名
    内容为web: gunicorn _________.wsgi --log-file
    画横线的地方是项目名称

  1. placeholder.txt
    内容没有特别之处,内容如下:
This file ensures that learning_log/static/ will be added to the project.
Django will collect static files and place them in learning_log/static/.

  1. .gitignore
    注意这个文件的名称是以句点开头
    这会帮助提交git时忽略一些无必要的文件
venv/
__pycache__/
*.sqlite3

venv改成你使用的虚拟环境的名称

如果你用的是Python2.x,请将__pycache__/改为*.pyc


修改的文件

  1. settings.py
    在这个文件末尾添加这样一个片段:
if os.getcwd() == '/app' or os.getcwd()[:4] == '/tmp':    
    import dj_database_url
    DATABASES = {
        'default': dj_database_url.config(default='postgres://localhost')
    }
    # 让request.is_secure()承认X-Forwarded-Proto头
    SECURE_PROXY_SSL_HEADER = ('HTTP_X_FORWARDED_PROTO', 'https')
    # 支持所有的主机头(host header)
    ALLOWED_HOSTS = ['*']
    DEBUG=False
    # 静态资产配置
    BASE_DIR = os.path.dirname(os.path.abspath(__file__))
    STATIC_ROOT = 'staticfiles'
    STATICFILES_DIRS = (
        os.path.join(BASE_DIR, 'static'),
    )

  1. wsgi.py
import os
 
from django.core.wsgi import get_wsgi_application
from dj_static import Cling
 
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'learning_log.settings')
application = Cling(get_wsgi_application())



执行的操作

先安装Heroku toolbelt 传送门

heroku version

如果没有错误消息,就可以使用heroku了

heroku login
git init
git add .
git commit -am "Ready for deployment to heroku"
git push heroku master
heroku ps
heroku open

然后就使用吧

你可能感兴趣的:(将文件部署到heroku服务器上)