Python教程三:使用Flask搭建web服务

教程二:使用Aestate操作数据库

Python教程二:使用Aestate操作数据库_Cx_轩的博客-CSDN博客​​​​​​

-------------------------------------------------------------------------------------------------------------------

前言

        大家使用python实现了很多个功能方法,但是只能一个个文件执行去操作,不是很方便。我们可以搭建一个web服务,通过接口方式对外输出功能方法。

        目前使用Flask作为web服务框架。

一、开始使用Flask

        在我们的根目录下创建一个py文件,此处命名为cx_server.py,代码如下:

# Cx 初始化启用文件-py
print("启动Cx Python服务...")

from flask import Flask
import json
from flask import jsonify
# 内部服务(自己提供的功能方法类)
from services import area_service

app = Flask(__name__)
# 返回json数据中文乱码解决
app.config['JSON_AS_ASCII'] = False

@app.route('/')
def index():
    return "Cx Python服务启动成功..."

@app.route('/getAreaList')
def getAreaList():
    data = json.loads(area_service.getAreaList())
    return jsonify({"data":data})

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

注:其中的area_service在上一章有具体实现,只需要将上章中的逻辑封装为一个getAreaList方法即可。

方便大家参考我这边把代码贴出来。

area_service.py

from base.entity.area import Area
import pandas

def getAreaList():
    # 一定要先实例化
    area = Area()
    # 查询多条
    r2 = area.find_many("select a.*,coalesce(c.bank,'') bank from mcam_area a left join mcam_bankorder c on a.id = c.id")
    return r2.to_json()

二、注意事项

       1.需要引入flask,若根据之前教程一安装方式可以不用下载flask,在安装时就已经预置了大量成熟的工具包,在此处只需要from flask import Flask即可。

        2.flask作为服务在返回json数据时,会默认将中文转成Unicode编码格式,解决方案:

                在根目录启动服务文件cx_server.py中添加配置:

                app.config['JSON_AS_ASCII'] = False

        3.cx_server.py在这个文件中,通过app.run()启动时,会出现错误提示:

        WARNING: This is a development server. Do not use it in a production deployment.

        解决方案:换一个启动方式,如下 :

        在cx_server.py文件中引入

        from gevent import pywsgi

if __name__ == '__main__':
    # 启动方式一
    # server = pywsgi.WSGIServer(('0.0.0.0',8085),app)
    # server.serve_forever()

    # 启动方式二
    app.run(
        port=8085,
        debug=True
    )

       使用 启动方式一则不会有错误提示了。

你可能感兴趣的:(Cx_Python,flask,python,前端)