Python使用Flask当作Http服务并使用Docker运行

scheduler_pool

一、股票信息在线接口搭建

感谢:https://github.com/shidenggui/easyquotation

使用该库搭建在线获取股票信息的接口,并将其使用flask库转化成http服务可供调用

1、编写run.py文件

import easyquotation
import flask
from flask import request
from flask import jsonify

server = flask.Flask(__name__)
quotation = easyquotation.use('sina') 

@server.route('/getStock', methods=['get'])
def run():
    # 获取通过url请求传参的数据
    stockId = request.values.get('stockId')
    res = quotation.real(stockId)
    return jsonify(res)

if __name__ == '__main__':
server.run(debug=True, port=5194, host='0.0.0.0')

2、将该文件达成docker服务

a、拉取镜像

docker run python:3.9

拉取前最好将docker的源配置成阿里云的,网上有教程,镜像大小大约900M

b、创建一个容器,当作运行py文件的环境

sudo docker create -it -p 5194:5194 python:3.9

一定要将端口先映射出来,否则以后创建成功后再映射端口就很麻烦

c、进入容器内部

docker exec -it [容器id] bash

d、配置运行环境

先将pip升级并且换源,临时的方法:

pip install -i https://mirrors.aliyun.com/pypi/simple/ --upgrade pip

踩坑:一定要是https,否则警告

pip install -i https://mirrors.aliyun.com/pypi/simple/ easyquotation
pip install -i https://mirrors.aliyun.com/pypi/simple/ flask

环境搭建完毕!!!

e、将.py文件上传至服务器以及docker容器中

服务器地址:

/opt/stock/run.py

docker cp /opt/stock/run.py [容器id]:/opt/

f、再次进入容器执行.py文件

nohup python3 run.py &

3、测试是否可以访问

现在容器内部:

curl 127.0.0.1:5194/getStock?stockId=300025

再到服务器测试:

curl 127.0.0.1:5194/getStock?stockId=300025

上一篇:Flask框架第四篇.Flask 中的 请求Request和session


下一篇:flask初识,简单使用