1、简介
Flask是一个使用 Python 编写的轻量级 Web 应用框架,我们可以使用Python语言快速实现一个网站或Web服务。微架构通常是很小的不依赖于外部库的框架。这既有优点也有缺点,优点是框架很轻量,更新时依赖少,缺点是你不得不自己做更多的工作,或通过添加插件增加自己的依赖列表。flask默认的模板渲染引擎是janjia2。
2、使用
一个简单的例子建立客户端与服务器的通讯,client and server may placed in a computer or different, determined by url and port.
服务器端代码
from flask import Flask
from flask_json import json_response
app=Flask(__name__) //实例化一个Flask对象
#response test connection function
@m_app.route('/oc/status')
def connected():
return json_response(data_={'status': True})
#通过路由绑定一个视图函数
#程序实例需要知道所有url对应的执行代码,所以要有从url到python函数的映射关系。处理url到python函数映#射关系的程序一般叫做路由(Router)。
@m_app.route('/imgQ/sts/<string:bayindex>/<string:examNum>/<string:serialNum>')
def IAandAIResult(bayindex, examNum, serialNum):
return json_response(data_={'status': True})
app.run() //运行Flask应用,可以指定ip和端口
客户端代码
import requests
// test connect,loop execution
def ConnectInThread(self):
try:
resp = requests.get(self.m_BaseUrl + "oc/status", proxies=self.proxies, verify=False)
if resp.status_code != 200:
pass
for item in resp.json():
if str(resp.json()[item]) == 'True':
connected = True
except Exception:
self.Pause(1)
def QualityImgfunc(self):
if self.m_bConnected:
print self.m_BaseUrl + 'imgQ/sts/%s/%s/%s'%(self.bayindex,self.examNum,self.serialNum)
resp = requests.get(self.m_BaseUrl + 'imgQ/sts/%s/%s/%s'%(self.bayindex,self.examNum,self.serialNum), proxies=self.proxies, verify=False) //trigger client routing
if resp.status_code != 200:
print resp.status_code
for item in resp.json():
print item, resp.json()[item]
if str(resp.json()[item]) == 'True':
self.ActionDone(['imgQ', True, self.repeatNum])
elif str(resp.json()[item]) == 'False':
self.ActionDone(['imgQ', False, self.repeatNum])
else:
self.ActionDone(['imgQ', False])