您的位置:首页 > 编程语言 > Python开发

Python Flask程序部署到腾讯云服务器(Ubuntu 18.04)作为微信小程序后台-(二)部署Flask到云服务器

2020-03-30 07:25 761 查看

【Python Flask程序部署到腾讯云服务器(Ubuntu 18.04)作为微信小程序后台】系列文章

最近因为课程学习需要尝试把Python Flask程序部署到腾讯云的服务器上作为微信小程序的后台服务器。折腾了好几天,重装了几次系统,从 Windows Server 到 CentOS 再到 Ubuntu 。最后在DigitalOcean的Community才找到了合适的教程,本文章用来记录从开始到部署成功作为小程序后台的过程,希望能给其他刚开始尝试的小白提供一些帮助。

开始前提

  1. 一台腾讯云服务器(现在是啥系统不重要,可以免费重装);
  2. 微信公众平台小程序账号;
  3. 一定的Python、JavaScript、HTML基础。

三、部署flask测试程序

在腾讯云-实例-控制台将云服务器重装系统为 Ubuntu Server 18.04.1 LTS 64位,登录服务器。

在上面的界面输入执行以下命令:

1.更新软件列表

sudo apt update

2.安装软件包

sudo apt install python3-pip python3-dev build-essential libssl-dev libffi-dev python3-setuptools


输入 y ,回车。一大串滚动过后回到命令行,表示安装成功。(60.5MB文件大小并不一定,与你当前已经安装的程序有关系)

3.安装python3-venv软件包

sudo apt install python3-venv

与我们在开发flask程序时在本地安装的虚拟环境类似。

4.创建程序父目录

mkdir ~/myproject
cd ~/myproject

创建并转到创建好的目录中,发现

$
前面的路径发生了变化:

5.创建虚拟环境

python3.6 -m venv myprojectenv

6.启用虚拟环境

source myprojectenv/bin/activate


你会发现命令行最前面增加了

(myprojectenv)
,表示我们已经进入了刚刚创建的虚拟环境。

7.在服务器上安装flask环境

pip install wheel
pip install uwsgi flask


8.上传flask测试程序到服务器

由于我是macOS的系统,所以用FileZilla远程连接服务器通过SFPT(sshFTP)上传文件。

(1)放通入站端口

由于腾讯云在没有安全规则的情况下是默认关闭所有端口访问的,所以我们需要新建安全规则放通我们使用SFTP需要的22号端口。
在服务器的控制台中选择 “安全组” :
“新建”-“放通22,80,443,3389端口和ICMP协议”-“确定”:

“修改规则”:

“关联实例”:

“新增关联”-“选择实例”-“确认”:

(2)建立SFTP连接

进入站点管理器:
建立新站点:

协议选择

SFTP
,主机填写服务器的
公网IP
,登录类型选择
正常
,用户名为
ubuntu
,然后输入之前设置的账户密码即可。

连接成功后就能够看到我们刚刚创建的目录:

(3)上传flask程序并测试

刚刚说得有点远,言归正传,我们要将一开始在本地写好的flask测试程序上传到云服务器。
将测试的flask程序的py文件放到myproject文件夹下:

使用以下命令可以在云服务器中看到我们刚刚上传的文件和虚拟环境的文件夹:

ls -a


使用以下命令放通5000端口:

sudo ufw allow 5000

结果如下:

使用以下命令运行flask程序:

python myproject.py

结果如下:

然后你可以使用本地浏览器访问

http://your_server_ip:5000
,结果如下:

如果无法进入
:5000
端口页面,有可能的原因是腾讯云服务器安全规则没有放通,在腾讯云的控制台选择服务器绑定的安全组添加规则即可:

前面的
0.0.0.0/0
::/0
表示准许所有ipv4和ipv6地址访问,后面放通的协议端口填写
TCP:5000
,然后点击完成,添加好之后就可以访问得到上面的结果了。

测试完成后,在运行界面按下

control+C
即可关闭服务器,回到命令行界面:

9.创建WSGI接入点

在本地创建

wsgi.py
文件,在文件中粘贴以下内容,其中第一行的
myproject
是之前flask测试程序的文件名,
app
是之前flask测试程序中定义的Flask程序变量名:

from myproject import app

if __name__ == "__main__":
app.run()

在本地创建好此py文件后,使用FileZilla将其发送到

/myproject
文件夹下,可以在服务器中看到:

10.测试WSGI接入点

运行命令:

uwsgi --socket 0.0.0.0:5000 --protocol=http -w wsgi:app

结果如下:

访问

ip:5000
,可以进入以下界面,表明uWSGI服务没有问题:

每一次访问都会在服务器端显示访问结果,
200
表示访问成功:

测试完成后,在运行界面按下
control+C
即可关闭服务器,回到命令行界面。

我们现在已经在虚拟环境中完成了flask程序在云服务器中的部署,使用

deactivate
命令关闭虚拟环境,继续配置增强服务器性能。

【Python Flask程序部署到腾讯云服务器(Ubuntu 18.04)作为微信小程序后台】系列文章

本文参考文章:How To Serve Flask Applications with uWSGI and Nginx on Ubuntu 18.04

  • 点赞
  • 收藏
  • 分享
  • 文章举报
Linyheart 发布了3 篇原创文章 · 获赞 0 · 访问量 499 私信 关注
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐