• 将 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

  • 相关阅读:
    小涛涛的计算器
    Sort排序浅聊
    程序员PC选购
    冒泡排序
    Django之模板
    Django中model的Meta选项
    Django之路由系统
    Django之视图系统
    踏上Flask的不归路(二)
    踏上Flask的不归路(一)
  • 原文地址:https://www.cnblogs.com/polar-lights/p/9130572.html
Copyright © 2020-2023  润新知