zoukankan      html  css  js  c++  java
  • 将 django部署到 heroku上

    为什么要这样做,因为我并没有弄懂,使用传统和推荐的方法来部署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

  • 相关阅读:
    LeetCode Flatten Binary Tree to Linked List
    LeetCode Longest Common Prefix
    LeetCode Trapping Rain Water
    LeetCode Add Binary
    LeetCode Subsets
    LeetCode Palindrome Number
    LeetCode Count and Say
    LeetCode Valid Parentheses
    LeetCode Length of Last Word
    LeetCode Minimum Depth of Binary Tree
  • 原文地址:https://www.cnblogs.com/polar-lights/p/9130572.html
Copyright © 2011-2022 走看看