[关闭]
@Clay 2016-08-28T08:41:43.000000Z 字数 3624 阅读 863

【Flask/部署/Heroku】目前应该是相关方向上最详细的一篇总结

按照规矩,放网址: 林水溶的blog
本文首发于CoCode社区
写在前面

(http://pan.baidu.com/s/1qYVFeMw)
* 从开始部署到成功,花了我3、4天。期间尝试过SAE(不知去查),没成。
* 这几天里,我部署了有十几次。(这十几次的意思是,从17c开始,重来。


* 我把论坛里用关键词 “flask 部署” 搜出来的部署在heroku上的文章反复看了不知道几遍了。反正

烂熟了。所以发现了一些他们各自的问题。
* 所以,这次总结我不打算再像其他人一样从开始写了(你可以小声的说宝宝懒)。下面我以三篇论坛

里的帖子为例,说说如何部署在heroku上。



正文预备
宝宝心里苦啊,但是宝宝不说话。放一张漫画大家感受下:
点我看漫画
西乔说到我心里去了。

正文开始
来,我们看 @guog 的帖子。

1、2 我的坑是:

然后全部copy到你的app目录下

全部copy到自己的文件夹下(就是从自己github上clone下来后的那个myapp文件夹)。

copy时会出现:是否替换还是什么的。我选择的是全部替换。但错了。我要是都替换了。那 @guog 的这

么写的目的是啥。替换了还不如就在作者的文件夹(flasky)下操作呢。

问了:
详情点这里,《flask web 开发》的作者

回答了我的白痴问题(当然是现在这么觉得了,当时差点被搞死),觉得还是挺不好意思的。

试这解决我这个 linear sequence 问题,但是没成功。后来灵光一闪,突然就知道问题出在哪了。

件无所谓。

许**是因为一些模块版本原因导致的模块不兼容,在我成功 heroku run python manage.py deploy 并

成功访问网站后,出现不能成功确认用户(发送确认邮件后,点击邮件内URL,出来的页面仍然是你的账

户没有确认。用heroku logs 查看报错信息:typeerror 'nonetype' object has no attribute

'getitem' )

关代码并没有出现问题。(而且,本地测试一切正常)

帖子里的 文件内容copy到了我那个里面。ok,解决账户确认问题。


3 步我的坑:

sina, sina的是25。
* 邮件抬头我没有改,我曾想改成中文的,却出现编码问题(因为急着网站上线,暂时不想去解决额外

的问题。)
* 管理员邮箱这么改:
FLASKY_MAIL_SENDER = “xxxxxxxx@xxxx.com” #不要留着尖括号和前面的英文。不信你本地测试下这

两种。


下面第二步的
4 的坑:

里的psycopg2 先删掉,然后pip install -r requiremens.txt 然后,单独安装psycopy2 :pip install

psycopg2。最后再把psycopg2 加到requirements.txt文件里。


6 的坑:

下载去吧。需要科学上网。)[这个位置有两张图,点我看](http://cocode.cc/t/flasky-
heroku/6589)
第一张那个看看有内容没,没得话新建记录,改成我那样。第二张,属性role_id那里值是NULL的话加上

。懂什么意思吧?


下面第三步,我们看 @Rain 的帖子。

1 的说明:

这几个命令是通过 heroku apps --h (或者heroku --h)学会的。


4 的坑:

indentation error:unexpected indent. 我又重来了一遍,这次没有所有的地方都加

db.session.commit()。
* 现在我想想,大家讨论这个事情,大部分集中在15年12月份,说什么不是flask的问题,是heroku的坑

。我想,或许当时是这样吧。但是现在貌似已经不存在那个问题了。所以, **不要纠结论坛里那些人15

年12月份讨论的这个问题了**
* 忽略4的这个添加。


5 :
* 我是win7 64bit,没看这一步在说啥。


部署过程的:
1 的坑:

上提的这个问题,他喵的还是我自己回答的。
* 顺便一提,解决方法,我还是灵光一闪,想到的。(不骗人)
* 容我扯个淡:很久之前在知乎上看到这个问题,大概是:国内程序猿圈子有了stackoverflow,还有必
要存在像segmentfault这样的专注于中文的平台吗?
* 我觉得没有,因为对一个 程序猿 来说,能阅读英文的专业性文章(由词典,划词插件帮助也行

)应该像科学上网是 标配 一样 是标配。否则,走不了多远吧。
* heroku上的帮助文档关于buildpacks,我也看了,最后解决方法看上面segmentfault链接。


2 的坑:


4、5 步说明:


7 的说明:

仓库。
* PS:我说几个git 命令,你看你了解了吗。

git remote -v
git branch -v 
git log --oneline --decorate 
git add .
git commit -m "msg"
git log --pretty=format:"%h %s" --graph
git merge branch_name

[有一个不了解的就点我](https://git-scm.com/book/zh/v2/%E8%B5%B7%E6%AD%A5-%E5%85%B3%E4%BA
%8E%E7%89%88%E6%9C%AC%E6%8E%A7%E5%88%B6) 然后至少看到3.5再继续下面的。因为有好多问题就是

git 本地仓库管理方面的问题。
* 在进行下一步的 git push heroku master 时,会报错,其中的一些报错前面我已经说过了。但你还

是有可能遇到一些我没提到的报错。这时: **你要一行一行的认真看报错信息。提取关键信息,then

google it .**


后来这几步,我也遇到了 报错。


写在后面的

一样。当我点开一个又一个链接看到这情形,那叫一个难受啊。后来就受不了了,网上到处搜科学上网

方法。最终用上了google。那叫一个爽 谁用谁知道
* stackoverflow 对新手,小白挺友好的,但是你最好先善用google。

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注