当前位置: 首页 > news >正文

做家装的网站谷歌seo和百度seo区别

做家装的网站,谷歌seo和百度seo区别,广州外贸独立网站制作,现在流行的网站开发问题描述 现有一个用python写的程序(或者是一个或几个的函数接口),需要在Web前端调用python写的函数。如果直接用前端java来调用会很不方便,而且会出现各种麻烦的问题,下面给出如何在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 <环境名称> [python=<Python版本>]
# 例如
conda create --name myenv python=3.10

然后激活进入创建的新环境:

conda activate myenv

然后安装flask:

conda install flask

安装途中选择y即可安装好。

2.测试是否安装完成

from flask import Flaskapp = Flask(__name__)@app.route('/')  
def hello_world():return "hello world"if __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?num1=10&num2=20&num3=[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 data@app.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), 500@app.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.ds6.com.cn/news/15488.html

相关文章:

  • thinkphp网站建设课程搜索引擎优化的核心本质
  • 新手如何做海外网站代购百度手机助手下载2022新版
  • 临沂网站建设培训学校深度搜索
  • 橘子皮主题wordpresssemseo
  • 北京网站设计公司youx成都柚米科技15bilibili推广网站
  • 汽车之家网站是怎么做的神马网站快速排名软件
  • 安徽省工程建设信息网站襄阳seo培训
  • 支付网站费怎么做会计分录免费二级域名分发网站源码
  • 网站为什么做301全国疫情一览表
  • 新媒体公司网站怎么做百度小说风云排行榜
  • 怎么设置自己做的网站吗搜索关键词的软件
  • ecms网站开发论文品牌推广策划方案怎么写
  • 做批手表批发发的网站网站推广应该坚持什么策略
  • 做网站小编怎么样网站建设黄页
  • 户网站建设的不全.互联网营销师报名入口
  • 长沙专业公司网站建设源头网络软文名词解释
  • 湖南电商网站建设做网络推广怎么找客户
  • 织梦网站背景音乐北京seo优化哪家好
  • 中国网站建设公司网络热词2022流行语及解释
  • 网站程序开发技术长安网站优化公司
  • iis 网站 起不来 temp文件夹黑帽seo联系方式
  • 建站abc网站地图seo网站关键词优化怎么做
  • 卖狗做网站什么关键词最好企业推广软文
  • 装修网站怎么做推广指数基金投资指南
  • 丹阳网站制作个人网页免费域名注册入口
  • 搜索引擎广告形式有哪些优化百度百科
  • 比较好的设计网站推荐百度seo
  • 网站搭建周期怎么建立自己的网站
  • 公司网站简历刷新怎么做网络稿件投稿平台
  • 济南网站建设推荐q479185700上快域名注册网站有哪些