把VS上的flask应用部署到heroku

跟着教程制作并改编了简单的web应用,第一个想到的当然是部署到托管网站。通常来说部署有三种选择,第一种是自己找个机子搭一个服务器,不太现实哈,第二种和第三种其实都算云服务器的内容,一种是租个虚拟机,从头开始搭建环境,常用的azure,aws,还有国内的阿里云等都提供了这样的解决方案,通常被称为 IaaS: Infrastructure-as-a-Service(基础设施即服务)。另一种则是使用更加方便的PaaS: Platform-as-a-Service(平台即服务),网页应用管理,应用设计,应用虚拟主机,存储,安全以及应用开发协作工具都可以使用这种方案呈现,代表的有leancloud,heroku,pythonanywhere等。
其中heroku既是flask狗书上推荐的部署方式,又是老牌的PaaS服务平台,同时github for students也提供了关联heroku的优惠政策。种种原因,我们在这儿选择heroku作为试水部署的网站。

首先我曾经在申用过heroku的app,作为中转redirect我的主页,过程很简单,只需要在VS中上传到github,然后在heroku中使用github的连接,傻瓜式配置。不需要数据库,不需要静态文件,因此还是很快可以配置成功的,主要是需要在requirement文件中加入这两个东西:

gunicorn
psycopg2

同时还要新建一个Procfile文件,并写句话:

web: gunicorn app:app

需要注意的是,前面这个app意味着是你的程序或者程序包的名字,后面这个app即你在views视图中定义路径使用到的app:

@app.route('/', methods=['GET', 'POST'])

这两个名字需要做相关的修改方可使用。

按照同样的方法,我开始对这个项目进行配置,这里出现过几个微不足道的小错误,一笔带过了,比如“Procfile”写成了“Profile”,又或者“Procfile”带了后缀,这些都是大家需要注意的。
Biuld Log如下:

-----> Python app detected
-----> Installing requirements with pip
-----> Discovering process types
       Procfile declares types -> web
-----> Compressing...
       Done: 51.5M
-----> Launching...
       Released v14
       https://starinsun.herokuapp.com/ deployed to Heroku

可能配置的build log如图所示,但是web应用还是有错误,这时就要看“Procfile”文件的内容是不是正确的对应了你的web应用。

虽然最终弄好了,但是可能由于SQLite这种数据库文件的形式不被heroku所支持,因此网站的信息会缓存一段时间然后消失,可能以后需要配置redit或者其他数据库。
只是一个简单的部署尝试,但是部署是真的很麻烦呀。

你可能感兴趣的:(把VS上的flask应用部署到heroku)