3.1 在服务器上部署你的项目
3.1.1 初级部署
OK,假定你已经跟着教程学完了Flask的大概用法并且写好了自己的博客项目,现在我们要把它放到服务器上。为什么呢?我们注意到,我们的flask项目会运行在localhost:5000(也就是127.0.0.1:5000)这个网址上。但是这个网址顾名思义是local的网址,也就是我们本地可以上但别人的电脑却不行。
——大家好,这是我们新上线的网站:127.0.0.1:5000,请大家多多支持!
——什么?打不开?404?在我电脑上好好的,肯定是你们电脑有问题!
为了让大家都能访问我们的网站项目,我们需要一台接入互联网的服务器,在服务器上运行我们的项目。
至于服务器这东西呢,其实也不稀奇,和我们的电脑差不多,只是相比之下服务器所采用的CPU等更加稳定,毕竟要长时间开着;而且大多服务器都没有屏幕,因为桌面是不必要的。系统方面大多是Linux,但Windows Server也是常见的。不过呢,买台服务器比较贵,动不动几千的,所以我们租别人的服务器来用。
这里我们可以选择的系统有Windows Server和Ubantu,鉴于我们是初学者就选熟悉一点的windows。
需要注意的是这篇教程是写给java开发者的,也就是说什么jdk什么tomcat我们统统不用理,而是要配置python环境。和配置你自己的电脑一样的,python、mysql、pip包啥的该装装,要用的数据库该建建。
然后呢把你的flask项目文件copy到服务器上,在主py文件(就是一般是run.py的那个)的(一般是)最后一行app.run()加些东西:
app.run(host = '0.0.0.0', port = 8080)
意思是这个网站的host可以是啥都行,也就是可以运行在你的公网IP上;port就是端口,是冒号后面的那个(默认5000,8080也较常用),你也可以改成任何数字,不要太大就行(除了80端口,分给了IIS)。然后运行,理论上你就可以在任何一台联网的电脑浏览器上输入http://xxx.xxx.xxx.xxx(公网IP):8080/打开你的项目了。
然而,not yet。你会发现并不能打开这个网页。这是因为防火墙禁止了别的电脑访问8080端口。
这样就行啦,下面就可以把你的作品放到朋友圈炫耀了。
此外还要注意两个问题:
- config里那条关于数据库的配置(
SQLALCHEMY_DATABASE_URI)中,localhost和3306端口是是不用改的,什么'0.0.0.0'不关这个事。 - 记得把migrations文件夹删掉重新migrate一次。
3.1.2 进阶部署
那么,现在朋友圈的诸位吃瓜群众已经可以上我们的网站了。但是很快他们会发现一个问题,就是总是登不上去。这是因为我们python自带的web server只允许一台电脑访问,同时多台是不行的。这时,我们就需要装一个更加强大的web server了(忘记了web server是啥的请回看这个知乎答案)。
由于大部分服务器使用linux系统,web server在linux下操作会比较简便。不过我们还是可以找到windows下的方案:Flask + Apache on Windows。这里面说的mod_wsgi就是个把flask和apache连在一起的桥梁;WSGI则是一个规范,符和这个规范的框架(Web Framework)可以和web server连在一起。
搞定apache之后,我们就可以让朋友圈中诸位好友一起上线了。
本文介绍了如何将Flask项目部署到服务器,包括初级部署步骤,如设置Linux或Windows服务器,配置Python环境,修改host和端口,处理防火墙限制。接着讨论了进阶部署,解决并发访问问题,引入Apache和mod_wsgi以支持更多用户同时访问。
2225

被折叠的 条评论
为什么被折叠?



