将 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
将 django部署到 heroku上的更多相关文章
- django部署到apache上(非常重要的,3者版本要一致,是32位就都要是32位的)
网上把django部署到apache的文章挺多的,但是按照大家的操作,并没有一次就成功,还是遇到了一些问题,这里主要有以下几个情况. 1.网上找到的mod_wsgi的版本问题,导致动态库加载不上. 2 ...
- 三步将Node应用部署到Heroku上
Heroku是一个提供快速部署服务的云平台.支持Node,Ruby,Java,PHP,Python,Go多种语言,今天体验了下,简直不要太爽.下面简单的介绍一下. 首先还是要注册一个账号:https: ...
- 三步将Node应用部署到Heroku上 --转载
Heroku是一个提供快速部署服务的云平台.支持Node,Ruby,Java,PHP,Python,Go多种语言,今天体验了下,简直不要太爽.下面简单的介绍一下. 首先还是要注册一个账号:https: ...
- django部署到linux上不显示.svg图标处理方法
在setting文件的最开始添加如下内容: import mimetypes mimetypes.add_type("image/svg+xml", ".svg" ...
- 在Heroku上部署Node.js应用
最近在学习Node.js,想找一个可以免费部署Node的平台,于是便找到了Heroku 直接进入主题,接下来我们一步一步部署自己的Node应用. 步骤1: 注册一个免费的Heroku账号. 步骤2: ...
- ruby cloud9部署到heroku
Cloud9网址:https://c9.io/ 使用github账号登陆,如果没有,现在github(https://github.com/)上注册一个用户,在进行登陆.
- Flask 教程 第十八章:Heroku上的部署
本文翻译自The Flask Mega-Tutorial Part XVIII: Deployment on Heroku 这是Flask Mega-Tutorial系列的第十八部分,我将在其中部署M ...
- Linux环境下Django App部署到XAMPP上
Django App部署到XAMPP上 准备工作 首先一定要保证自己的代码在本地可以运行! 同时在服务器上把需要的库,什么数据库之类的都装好! 源码安装mod_wsgi 从mod_wsgi的gitgu ...
- 通过Mono 在 Heroku 上运行 .NET 应用
英文原文:Running .NET on Heroku 中文原文:在 Heroku 上运行 .NET 应用 自从加入了Heroku之后,我就想在这个平台上运行.NET程序.现在我很高兴向大家宣布,我们 ...
随机推荐
- 【RS】Factorization Meets the Neighborhood: a Multifaceted Collaborative Filtering Model - 当因式分解遇上邻域:多层面协同过滤模型
[论文标题]Factorization Meets the Neighborhood: a Multifaceted Collaborative Filtering Model (35th-ICM ...
- Web前端,HTML5开发,前端资源,前端网址,前端博客,前端框架整理 - 转改
Web前端/H5开发,前端资源,前端网址,前端博客,前端框架整理 综合类 前端知识体系 前端知识结构 Web前端开发大系概览 Web前端开发大系概览-中文版 Web Front-end Stack v ...
- 适合初学者的python实际例子
最近在github上发现了一个有意思的项目,很适合初学者学习python代码. 学习一门语言刚开始的时候是很枯燥的,各种概念语法以及无聊的打印都会让人失去更进一步学习的动力. 很多同学在学习了一段时间 ...
- PySpark 的背后原理
文章正文 Spark主要是由Scala语言开发,为了方便和其他系统集成而不引入scala相关依赖,部分实现使用Java语言开发,例如External Shuffle Service等.总体来说,Spa ...
- C#读取CSV
public class CSVFileHelper { /// <summary> /// 将DataTable中数据写入到CSV文件中 /// </summary> /// ...
- linux每日命令(34):ps命令和pstree命令
Linux中的ps命令是Process Status的缩写.ps命令用来列出系统中当前运行的那些进程.ps命令列出的是当前那些进程的快照,就是执行ps命令的那个时刻的那些进程,如果想要动态的显示进程信 ...
- oracle函数详解-转
1.SQL 语句基础 下面给出SQL语句的基本介绍. 1.1.SQL语句所用符号 操作符 用途 例子 + - 表示正数或负数,正数可省去 + -1234.56 + 将两个数或表达式进行相加 A=c+b ...
- 基于【CentOS-7+ Ambari 2.7.0 + HDP 3.0】搭建HAWQ数据仓库 —— MariaDB 安装配置
一.安装并使用MariaDB作为Ambari.Hive.Hue的存储数据库. yum install mariadb-server mariadb 启动.查看状态,检查mariadb是否成功安装 sy ...
- JS =>处理单击事件与拖动事件并存
使用click事件,很难确定在拖动开始和结束的时候触发,所以使用了onmouseup(释放鼠标的时候),释放鼠标的时候,即在拖动还未结束,但是准备处理的阶段,此时mouseButtonFlag按照逻辑 ...
- Linux驱动技术(三) _DMA编程
DMA即Direct Memory Access,是一种允许外设直接存取内存数据而没有CPU参与的技术,当外设对于该块内存的读写完成之后,DMAC通过中断通知CPU,这种技术多用于对数据量和数据传输速 ...