前期准备
一个服务器、一个域名、域名的SSL证书、确保服务器有Python3环境
案例源码
test.py文件,一个简单的PythonFlask案例
from flask import Flask, request, jsonify
from flask_cors import CORS
app = Flask(__name__)
app.config['JSON_AS_ASCII'] = False # 确保中文正常显示
# 启用跨域支持
CORS(app)
@app.route('/api', methods=['GET'])
def test_api():
# 获取参数 click
click_param = request.args.get('click')
# 这里可以添加对 click 参数的处理逻辑(如果需要的话)
if click_param:
print(f"接收到 click 参数: {click_param}")
# 返回固定的 JSON 格式
response = {
"status": 1,
"message": "成功"
}
return jsonify(response)
if __name__ == '__main__':
# 运行在 5555 端口
app.run(debug=False, host='0.0.0.0', port=5555)
start.sh文件,启动脚本文件
#!/bin/bash
cd /A03FlaskHttp
source venv/bin/activate
gunicorn -w 4 -b 127.0.0.1:5555 -D test:app
echo "Flask app started on 127.0.0.1:5555"
stop.sh文件,停止脚本
#!/bin/bash
cd /A03FlaskHttp
if [ -f gunicorn.pid ]; then
PID=$(cat gunicorn.pid)
kill $PID
rm -f gunicorn.pid
echo "Flask app (PID: $PID) stopped."
else
echo "No gunicorn.pid file found."
PIDS=$(pgrep -f "gunicorn.*test:app")
if [ ! -z "$PIDS" ]; then
echo "Found running gunicorn processes: $PIDS"
echo "Stopping with pkill..."
pkill -f "gunicorn.*test:app"
else
echo "No running gunicorn process found."
fi
fi
案例注意事项
在上面的py文件中可以看到我们的服务将会启动于5555端口,因此首先得开启5555端口
在上面的sh脚本文件中可以看到幽络源这里主要是操作的服务器根目录下的A03FlaskHttp目录,若自己的目录名不一样需修改文件或者你的目录名
上传文件并创建相关环境
如图幽络源这里将三个文件放置于服务器根目录下自建的A03FlaskHttp目录中

如图,确保服务器具备Python3环境,并通过命令 pip3 install virtualenv 下载虚拟环境库

然后通过如下两条命令创建虚拟环境、激活虚拟环境,如图
virtualenv venv
source venv/bin/activate

然后执行如下命令下载该案例所需库
pip install flask flask_cors
pip install gunicorn

启动进程
因为我的test.py就在/A03FlaskHtpp目录,直接执行 sh start.sh 即可启动,如图
然后还可以通过如下两条命令查看我们是否启动成功
ps aux | grep gunicorn
netstat -tulnp | grep :5000

用宝塔配置反向代理与Https(重点)
如图我们在PHP项目下点击创建站点,然后我是用的二级域名做测试,这里的根目录注意了,是我们 flask 所在的目录,然后PHP不用,直接选择纯静态

在设置中为其添加我们的证书并保存以开启https

再在反向代理中添加反向代理,注意,这里的目标URL是我们Flask内部的URL,因此填写http://127.0.0.1:5555,注意端口要带上,然后发送域名直接填写$host即可,代理名称随便写,然后确定

最后测试
最后,我们直接通过我们 绑定的域名+接口路径 进行访问,即可看到接口的返回信息

THE END
