如何把本地flask项目(框架)上传到服务器(Linux),并后台持续运行(包括requirements文件生成,python项目与域名绑定,保姆级教程)
创始人
2025-01-17 01:36:17
0次

 2023年中旬,参加了一个比赛,需要搭建一个网站。在不断探索琢磨之后,搭建了一个基于flask的web。直接上干货:

一、首先,在本地准备好自己的flask项目。包括最基本的三个文件:

然后准备生成requirements.txt文件,这个文本文件会告诉服务器你的项目运行所需要的环境,即需要安装哪些包以及库,创造依赖环境。

那么如何生成requirements.txt文件呢?

1、把项目文件用pycharm打开,来到pycharm终端,

然后在终端项目路径下输入命令,安装pipreqs工具。

pip install pipreqs  

由于我本地安装了anaconda,所以终端显示不同,但殊途同归。

注意:这里最好不要输入命令:

pip freeze > requirements.txt  #这段代码会生成当前电脑环境下的所有安装包,然后上传到服务器上安装的时候会全部安装很多没有用的包(当前项目用不到),这样是十分耗时不可取的。

安装好pipreqsg工具之后,继续在项目的路径下,输入命令生成requirements。txt

pipreqs ./ --encoding=utf8

显示如下便成功生成了

回到目录下,会看到多了一个requirements.txt文件:

生成的文件就1KB,项目不大,还算正常。双击打开看看,显示就两个包:

接下来把文件一并压缩:

二、上传到服务器

事先要准备好一台服务器,如果有域名更好,没有也没关系,可以通过服务器外网IP地址访问,不过不安全。

打开宝塔面板,我是把项目放下/www/wwwroot路径下。也可以放到/home路径下,这两个路径后续改配置更少,而且也容易避免一些bug。

把压缩包上传到服务器,然后解压,记住自己的项目所在的路径,后续会用到。

三、在服务器端运行

我用的是腾讯云,登录之后使用conda创建一个虚拟环境(一个独立干净的环境,能够让你的项目独立运行,运行项目首选!)。

如果服务器上没有安装conda,可以访问以下链接进行安装:

conda安装与使用 - 知乎 (zhihu.com)

安装完之后,登录服务器,输入命令:

conda --version

查看所安装的conda版本,表示安装成功。

 之后切换到项目所在的路径:cd /www/wwwroot/mcfskin  (选择你实际的路径,此处以我的为例)

切换路径之后,使用conda命令创建一个虚拟环境,记住env_name你命名的虚拟环境,phthon版本根据需要选择:

 conda create -n env_name python=3.8

之后输入命令,激活所创建的虚拟环境,例如我创建的虚拟环境名为mcfskin 

现在就在该路径下安装你所需要的包,这时候便需用到requirements.txt文件了。在新环境下输入命令:

pip install -r requirements.txt

运行如下:

新环境所需要的包安装完之后,便可以运行项目了,输入命令:

python app.py

 可以看到flask框架在服务器上正常运行,就可以根据给出的地址进行访问了。按住ctrl+C,可以中断运行,跳出程序。

如果你有域名的话,在host处填入你的内网IP,如果你有SSL证书的话,可以在ssl_context()的参数里面填入.pem .key文件名称。(不过两个文件在服务器上要和app.py,即项目文件在一个目录下),选择的端口不要被其他程序占用。

可以输入以下命令查看哪些端口在运行:

netstat -nultp

显示如下:

 把不想被占用的端口删掉,可以输入以下命令(PID填写上方的数字)

kill -9 PID

之后去腾讯云添加域名解析

 之后可以利用公网IP地址加端口号访问flask项目啦

如果想让项目一直在服务器后台运行,不想断开服务器连接就需要输入命令:(也是在app.py相同的文件目录下)

nohup python app.py > log.txt 2>&1 &

输入后会返回一个[1] 9906     此处的数字不唯一。成功之后中断服务器连接,也可以通过公网IP远程访问项目了。

(ps:本人目前本科在读,以上分享都是我自己亲身探索踩雷试出来的经验,可能有些地方讲的不到位,有疑问的朋友欢迎留言,很乐意一起交流学习。如果能帮到大家,我会很高兴,谢谢!)

相关内容

热门资讯

实测交流透视挂!宝玛大厅ai智... 实测交流透视挂!宝玛大厅ai智能透视挂教程,宝玛大厅破解软件经验(本来有挂辅助)1、每一步都需要思考...
总算了解辅助器!朱雀吴江三缺一... 总算了解辅助器!朱雀吴江三缺一ai智能透视辅助挂技巧,朱雀吴江三缺一好像是有挂(有辅助挂细节)朱雀吴...
今日公布透视!九五至尊大厅ai... 今日公布透视!九五至尊大厅ai智能透视插件,九五至尊大厅有没有透视挂窍门(切实有挂技术)1、在九五至...
玩家必看科普开挂!聚闲麻将ai... 玩家必看科普开挂!聚闲麻将ai智能透视辅助挂软件,聚闲麻将总是真的有挂(有辅助挂方式)聚闲麻将能透视...
据报道开挂!旅游娱乐ai智能开... 据报道开挂!旅游娱乐ai智能开挂工具,旅游娱乐辅助工具演示(一直有挂教学)1、全新机制【旅游娱乐ai...
一分钟揭秘开挂!决胜朋来麻将a... 一分钟揭秘开挂!决胜朋来麻将ai智能透视辅助挂教程,决胜朋来麻将真是真的是有挂(有辅助挂总结)1、首...
如何分辨真伪透视!红牛ai智能... 如何分辨真伪透视!红牛ai智能透视攻略,红牛是不是有挂经验(真是有挂技术)1、操作简单,无需红牛手机...
2分钟细说辅助器!江湖大庆麻将... 2分钟细说辅助器!江湖大庆麻将ai智能透视辅助挂攻略,江湖大庆麻将竟然是真的有挂(有辅助挂头条)1、...
总算清楚透视挂!老夫子厅ai智... 总算清楚透视挂!老夫子厅ai智能透视挂技巧,老夫子厅怎么开挂课程(好像发现有挂)老夫子厅破解侠是真的...
解密关于辅助!菜鸟麻将ai智能... 解密关于辅助!菜鸟麻将ai智能透视辅助挂脚本,菜鸟麻将总是存在有挂(有辅助挂存在)1、用户打开应用后...