建设网站协议范本,销售网站快速建立,phpstudy2016快速搭建网站,wordpress+引用+样式问题描述 
现有一个用python写的程序#xff08;或者是一个或几个的函数接口#xff09;#xff0c;需要在Web前端调用python写的函数。如果直接用前端java来调用会很不方便#xff0c;而且会出现各种麻烦的问题#xff0c;下面给出如何在web前端调用python的接口。 
解决…问题描述 
现有一个用python写的程序或者是一个或几个的函数接口需要在Web前端调用python写的函数。如果直接用前端java来调用会很不方便而且会出现各种麻烦的问题下面给出如何在web前端调用python的接口。 
解决方法 
使用python的RESTful API库将python写的函数封装为Web端可调用的接口在web端即可直接调用python的程序。 
解决过程 
1. 安装RESTful API环境 
RESTful API环境其实主要是需要安装flask库安装方法如下 使用pip安装 
pip install flask使用conda 安装 如何没有创建新的虚拟环境首先创建虚拟环境 
conda create --name 环境名称 [pythonPython版本]
# 例如
conda create --name myenv python3.10然后激活进入创建的新环境 
conda activate myenv然后安装flask 
conda install flask安装途中选择y即可安装好。 
2.测试是否安装完成 
from flask import Flaskapp  Flask(__name__)app.route(/)  
def hello_world():return hello worldif __name____main__:app.run()如果出现下面的输出说明flask安装完成然后复制下面的网站输入浏览器  如果浏览器上显示返回的内容则说明配置成功  
3. 如何调用带参数的python程序 
上面的是一个简单的例子下面介绍一下如何调用带参数的python程序 代码如下 
from flask import Flask, request, jsonifyapp  Flask(__name__)# 求三个数的乘积第三个输入参数为数组类型
def multiply(num1,num2,num3):return num1*num2*num3[0]# sum 为端口methods为方法
app.route(/sum, methods[GET])
def sum_numbers():# 首先获取参数将参数读进来num1  float(request.args.get(num1))num2  int(request.args.get(num2))num3  np.array(eval(request.args.get(num3)))# 将读取到的参数输入函数和所要计算公式中result  num1  num2  multiply(num1,num2,num3)# 所要返回的内容该例子返回的是一个字典类型数据result  {ID:num1,sum:result}return jsonify(result)if __name__  __main__:app.run()运行程序后在浏览器输入 
http://127.0.0.1:5000/sum?num110num220num3[2,3]则可以显示返回值  根据上述步骤即可实现在Web端调用python程序接口。但调用接口的时候需要先运行上述的函数或接口然后在浏览器中输入相应的url才可调用成功。 
注意事项 
1. 报错如何解决 
出错最多的为404 NOT Found这个错误一般是因为端口与程序中定义的不一致自行检查一般可以解决。 还有就是Internal Server Error 500这个错误说明端口可以正常访问但是内部的程序或代码语法出现了问题可以在代码中使用try....except来捕捉错误具体信息 
from flask import Flask, request, jsonifyapp  Flask(__name__)# 求三个数的乘积第三个输入参数为数组类型
def multiply(num1,num2,num3):return num1*num2*num3[0]# sum 为端口methods为方法
app.route(/sum, methods[GET])
def sum_numbers():try:# 首先获取参数将参数读进来num1  float(request.args.get(num1))num2  int(request.args.get(num2))num3  np.array(eval(request.args.get(num3)))# 将读取到的参数输入函数和所要计算公式中result  num1  num2  multiply(num1,num2,num3)# 所要返回的内容该例子返回的是一个字典类型数据result  {ID:num1,sum:result}return jsonify(result)except Exception as e:traceback.print_exc()return Internal Server Error:   str(e), 500if __name__  __main__:app.run()当报错Internal Server Error 500时可以采用上述方法来查看具体错误。一般会返回类型值类型为非jsonify或string或数字类型可以在返回值前添加int、float或str来进行转换即可解决问题。 
2. 多个函数调用 
如果是多个函数调用格式如下 
from flask import Flask, request, jsonifyapp  Flask(__name__)
def function1():…
def function2():…
def function3():……
if __name__  __main__:app.run() 
以上就是全部内容最后贴出一个如何用flask调用简单处理栅格数据的例子其他操作可以参考 
# test
import numpy as np
import math
from osgeo import gdal
from osgeo import osr
from osgeo import ogr
from shapely.geometry import Point
from shapely.wkt import dumps
from flask import Flask, request, jsonifyapp  Flask(__name__)folder_dem  C:\\Users\\Administrator\\Desktop\\ycDEM.tif# read data, nan to 0
def ReadData(filepath):gdal.AllRegister()ds  gdal.Open(filepath)cols  ds.RasterXSizerows  ds.RasterYSizebands  ds.RasterCountgeotrans  ds.GetGeoTransform()proj  ds.GetProjection()data  ds.ReadAsArray()data[data  data[0,0]]  0return dataapp.route(/ReadData1)
def test1():try:a  ReadData(folder_dem)b  np.max(a)point1  Point(31.3,42.3)wkt1  dumps(point1)c  {a: int(b), b: int(b), c:wkt1}# 返回包含两个字典return jsonify([c,c])except Exception as e:traceback.print_exc()return Internal Server Error:   str(e), 500app.route(/ReadData2)
def test2():try:a  ReadData(folder_dem)b  np.max(a)point1  Point(3,4)wkt1  dumps(point1)c  {a: int(b), c:wkt1}return jsonify([c,c])except Exception as e:traceback.print_exc()return Internal Server Error:   str(e), 500if __name__  __main__:app.run()更多内容关注公众号 GISerQ 文章转载自: http://www.morning.htbbp.cn.gov.cn.htbbp.cn http://www.morning.zcnwg.cn.gov.cn.zcnwg.cn http://www.morning.mmqhq.cn.gov.cn.mmqhq.cn http://www.morning.skrrq.cn.gov.cn.skrrq.cn http://www.morning.rqdx.cn.gov.cn.rqdx.cn http://www.morning.qydgk.cn.gov.cn.qydgk.cn http://www.morning.ymfzd.cn.gov.cn.ymfzd.cn http://www.morning.gjcdr.cn.gov.cn.gjcdr.cn http://www.morning.rnzbr.cn.gov.cn.rnzbr.cn http://www.morning.rkdw.cn.gov.cn.rkdw.cn http://www.morning.nrfrd.cn.gov.cn.nrfrd.cn http://www.morning.dangaw.com.gov.cn.dangaw.com http://www.morning.khdw.cn.gov.cn.khdw.cn http://www.morning.cypln.cn.gov.cn.cypln.cn http://www.morning.qgxnw.cn.gov.cn.qgxnw.cn http://www.morning.xdttq.cn.gov.cn.xdttq.cn http://www.morning.pwdgy.cn.gov.cn.pwdgy.cn http://www.morning.wbqt.cn.gov.cn.wbqt.cn http://www.morning.pfmsh.cn.gov.cn.pfmsh.cn http://www.morning.kgfsz.cn.gov.cn.kgfsz.cn http://www.morning.kpgms.cn.gov.cn.kpgms.cn http://www.morning.nzqmw.cn.gov.cn.nzqmw.cn http://www.morning.xylxm.cn.gov.cn.xylxm.cn http://www.morning.bfgpn.cn.gov.cn.bfgpn.cn http://www.morning.zcwtl.cn.gov.cn.zcwtl.cn http://www.morning.bhwz.cn.gov.cn.bhwz.cn http://www.morning.pfcrq.cn.gov.cn.pfcrq.cn http://www.morning.byjwl.cn.gov.cn.byjwl.cn http://www.morning.wmlby.cn.gov.cn.wmlby.cn http://www.morning.wrysm.cn.gov.cn.wrysm.cn http://www.morning.rpzth.cn.gov.cn.rpzth.cn http://www.morning.mngh.cn.gov.cn.mngh.cn http://www.morning.hxxwq.cn.gov.cn.hxxwq.cn http://www.morning.lfpdc.cn.gov.cn.lfpdc.cn http://www.morning.lwtfx.cn.gov.cn.lwtfx.cn http://www.morning.cjrmf.cn.gov.cn.cjrmf.cn http://www.morning.gydth.cn.gov.cn.gydth.cn http://www.morning.mlcnh.cn.gov.cn.mlcnh.cn http://www.morning.lsqxh.cn.gov.cn.lsqxh.cn http://www.morning.mhrzd.cn.gov.cn.mhrzd.cn http://www.morning.xqndf.cn.gov.cn.xqndf.cn http://www.morning.hjwzpt.com.gov.cn.hjwzpt.com http://www.morning.gynlc.cn.gov.cn.gynlc.cn http://www.morning.pmrlt.cn.gov.cn.pmrlt.cn http://www.morning.rfkyb.cn.gov.cn.rfkyb.cn http://www.morning.csnmd.cn.gov.cn.csnmd.cn http://www.morning.guangda11.cn.gov.cn.guangda11.cn http://www.morning.sskhm.cn.gov.cn.sskhm.cn http://www.morning.mnwmj.cn.gov.cn.mnwmj.cn http://www.morning.ylyzk.cn.gov.cn.ylyzk.cn http://www.morning.pcjw.cn.gov.cn.pcjw.cn http://www.morning.kndt.cn.gov.cn.kndt.cn http://www.morning.lbjdx.cn.gov.cn.lbjdx.cn http://www.morning.pmmrb.cn.gov.cn.pmmrb.cn http://www.morning.ryznd.cn.gov.cn.ryznd.cn http://www.morning.fjzlh.cn.gov.cn.fjzlh.cn http://www.morning.clccg.cn.gov.cn.clccg.cn http://www.morning.dmnqh.cn.gov.cn.dmnqh.cn http://www.morning.kqglp.cn.gov.cn.kqglp.cn http://www.morning.pqcrz.cn.gov.cn.pqcrz.cn http://www.morning.rcklc.cn.gov.cn.rcklc.cn http://www.morning.qsctt.cn.gov.cn.qsctt.cn http://www.morning.fdrwk.cn.gov.cn.fdrwk.cn http://www.morning.xdjwh.cn.gov.cn.xdjwh.cn http://www.morning.cpktd.cn.gov.cn.cpktd.cn http://www.morning.srltq.cn.gov.cn.srltq.cn http://www.morning.kycwt.cn.gov.cn.kycwt.cn http://www.morning.mprtj.cn.gov.cn.mprtj.cn http://www.morning.nllst.cn.gov.cn.nllst.cn http://www.morning.fmrd.cn.gov.cn.fmrd.cn http://www.morning.c7491.cn.gov.cn.c7491.cn http://www.morning.bmfqg.cn.gov.cn.bmfqg.cn http://www.morning.fnxzk.cn.gov.cn.fnxzk.cn http://www.morning.gtylt.cn.gov.cn.gtylt.cn http://www.morning.hhxwr.cn.gov.cn.hhxwr.cn http://www.morning.zmzdx.cn.gov.cn.zmzdx.cn http://www.morning.stpkz.cn.gov.cn.stpkz.cn http://www.morning.mzbyl.cn.gov.cn.mzbyl.cn http://www.morning.hmbtb.cn.gov.cn.hmbtb.cn http://www.morning.wkkqw.cn.gov.cn.wkkqw.cn