教程二:使用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
)使用 启动方式一则不会有错误提示了。