首页 > 其他分享 >帆软调用api

帆软调用api

时间:2024-07-24 14:53:03浏览次数:14  
标签:__ 调用 app 端口 api time import port 帆软

原文章:http://t.csdnimg.cn/ZrFJJ
原因:写出来的python脚本不能被FR直接使用
方案:用Python制作API,通过FR的JS脚本调用这个API,从而实现实时调用。
1. 使用Python的Falsk框架编写API接口

原文章代码如下:

点击查看代码
# -*- coding: UTF-8 -*-
# @Author : JW-Panda-数据分析师
 
from flask import Flask  # 框架
from flask_cors import CORS  # 实现跨域
from gevent import pywsgi  # 使用WSGI启动服务
import win32api, win32gui  # 静默运行
import time, os  # 时间及控制台命令
import logging  # 日志记录
 
# 静默模式运行
ct = win32api.GetConsoleTitle()
hd = win32gui.FindWindow(0, ct)
win32gui.ShowWindow(hd, 0)
 
# Flask 架构
app = Flask(__name__)  # 获取实例
CORS(app)  # 解决跨域问题
 
 
def check_pid(port):
    """
    查找被占用端口并杀掉重置
    :param port: 端口号
    :return: 无返回
    """
    try:
        r = os.popen("netstat -ano | findstr " + port)
        PID = r.read().split()[-1]
        print("端口占用,关闭端口重新执行。")
        os.system("taskkill /PID " + str(PID) + " /T /F")
    except:
        print('端口未被占用,API正常运行')
        pass
 
 
def save_record():
    logging.basicConfig(filename='.\Api_use.log',
                        filemode='a', level=logging.INFO, datefmt='%a, %d %b %Y %H:%M:%S')
 
 
# <a>是带参传入,如果有参数则放到这里,<int:a>表示传入int类型,多参数用“/”依次往后
@app.route("/test/<a>", methods=["GET"])  # 指定外网访问的路径和方式
def test(a):  # a是带参传入
    # 此处放入python程序
    runtime = time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(time.time()))
    if a:
        pass
    x = str(runtime) + "_test_" + str(a)
    logging.info(x)
    return x  # x为需要返回的数据
 
 
if __name__ == '__main__':
    """
    关于本机IP,可以通过cmd的【ipconfig】查找以太网适配器的ipv4地址,可能需要提前设置UDP转发
    关于端口号:可以通过cmd的【netstat】命令,根据ip找到对应的端口,自定义一个从来没从过的,范围[0-65535],避开常用
    """
    print('{:-^30}'.format('接口开始运行'))
    save_record()  # 开始记录日志
    host = '111.111.111.111'  # 这里替换你的IP
    port = '55333'  # 这里替换你的端口
    check_pid(port)  # 检查端口占用
    print('http://{}:{}/'.format(host, int(port)))
    server = pywsgi.WSGIServer((host, int(port)), app)  # 使用WSGI启动服务
    server.serve_forever()
    # app.run(host="10.1.175.107", port=62013, debug=True)  # 默认,调试使用
下载PyCharm

在这个界面添加各种模块,新建工程,无脑化的将代码粘入

将上面的代码修改下,修改的内容为

host = '127.0.0.1' # 这里替换你的IP port = '12345' # 这里替换你的端口

点击查看代码
# -*- coding: UTF-8 -*-
# @Author : JW-Panda-数据分析师

from flask import Flask  # 框架
from flask_cors import CORS  # 实现跨域
from gevent import pywsgi  # 使用WSGI启动服务
import win32api, win32gui  # 静默运行
import time, os  # 时间及控制台命令
import logging  # 日志记录

# 静默模式运行
ct = win32api.GetConsoleTitle()
hd = win32gui.FindWindow(0, ct)
win32gui.ShowWindow(hd, 0)

# Flask 架构
app = Flask(__name__)  # 获取实例
CORS(app)  # 解决跨域问题


def check_pid(port):
    """
    查找被占用端口并杀掉重置
    :param port: 端口号
    :return: 无返回
    """
    try:
        r = os.popen("netstat -ano | findstr " + port)
        PID = r.read().split()[-1]
        print("端口占用,关闭端口重新执行。")
        os.system("taskkill /PID " + str(PID) + " /T /F")
    except:
        print('端口未被占用,API正常运行')
        pass


def save_record():
    logging.basicConfig(filename='.\Api_use.log',
                        filemode='a', level=logging.INFO, datefmt='%a, %d %b %Y %H:%M:%S')


# <a>是带参传入,如果有参数则放到这里,<int:a>表示传入int类型,多参数用“/”依次往后
@app.route("/test/<a>", methods=["GET"])  # 指定外网访问的路径和方式
def test(a):  # a是带参传入
    # 此处放入python程序
    runtime = time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(time.time()))
    if a:
        pass
    x = str(runtime) + "_test_" + str(a)
    logging.info(x)
    return x  # x为需要返回的数据


if __name__ == '__main__':
    """
    关于本机IP,可以通过cmd的【ipconfig】查找以太网适配器的ipv4地址,可能需要提前设置UDP转发
    关于端口号:可以通过cmd的【netstat】命令,根据ip找到对应的端口,自定义一个从来没从过的,范围[0-65535],避开常用
    """
    print('{:-^30}'.format('接口开始运行'))
    save_record()  # 开始记录日志
    host = '127.0.0.1'  # 这里替换你的IP
    port = '12345'  # 这里替换你的端口
    check_pid(port)  # 检查端口占用
    print('http://{}:{}/'.format(host, int(port)))
    server = pywsgi.WSGIServer((host, int(port)), app)  # 使用WSGI启动服务
    server.serve_forever()
    # app.run(host="10.1.175.107", port=62013, debug=True)  # 默认,调试使用

点击绿色的运行按钮,看到下面的运行信息
------------接口开始运行------------
端口未被占用,API正常运行
http://127.0.0.1:12345/

好的,正常运行。

标签:__,调用,app,端口,api,time,import,port,帆软
From: https://www.cnblogs.com/jywr/p/18320286

相关文章

  • 玩转大模型之三(FastGPT+OneAPI本地部署)
    一、服务器服务器:一台Linux16核32GIP:10.33.19.16基础环境:Docker、Docker-Compose二、FastGPT安装首先下载docker-compose.yml和config.json两个文件mkdirfastgptcdfastgptcurl-Ohttps://raw.githubusercontent.com/labring/FastGPT/main/projects/app/data/......
  • 通过 CDSAPI 下载 ERA5-Complete Reanalysis 会导致错误 43。怎么修?
    我正在使用flex_extract通过CDSAPI发送请求以获取ERA5完整再分析数据。我可以获取2018/08/09区域74/-24/9.875/60.375的数据,但更改日期或区域会导致以下错误。有谁知道问题是什么以及如何解决它?错误正在尝试从气候数据存储(CDS)下载ERA5数据时遇到错......
  • Vue与ASP.NET Core Web Api设置localhost与本地ip地址皆可访问
    Vue的设置我们创建并启动一个Vue项目,如下所示:打开cmd,输入ipconfig查询本地ip地址:想通过本地ip地址访问,把localhost改成本地ip地址,发现打不开:这是因为Vue项目默认只有localhost,查看启动终端:这时候就需要进行配置,打开package.json,在scripts下的dev中加上--host0.0.0.0:再......
  • 计数调用装饰器 - 为什么我将函数属性重置回 0?
    下面的代码计算了装饰函数func被调用的次数:fromfunctoolsimportwrapsdefcounting_calls(func):@wraps(func)definner(*args,**kwargs):inner.call_count+=1returnfunc(*args,**kwargs)inner.call_count=0returninner......
  • 易优CMS模板标签uibackground背景图片在模板文件index.htm中调用uibackground标签,实现
    【基础用法】标签:uibackground描述:背景图片上传标签,使用时结合html一起才能完成可视化布局,只针对具有可视化功能的模板。用法:<divclass="eyou-edit"e-id="文件模板里唯一的数字ID"e-page='文件模板名'e-type="background"style="background-image:url({eyou:uibackgrounde......
  • 多重处理会导致 Python 崩溃,并给出一个错误:调用 fork() 时可能已在另一个线程中进行
    我对Python比较陌生,并试图为我的for循环实现一个多处理模块。我在img_urls中存储了一个图像url数组,我需要下载并应用一些Google视觉。if__name__=='__main__':img_urls=[ALL_MY_Image_URLS]runAll(img_urls)print("---%sseconds---"%(......
  • Best practices for prompt engineering with the OpenAI API
    BestpracticesforpromptengineeringwiththeOpenAIAPIhttps://help.openai.com/en/articles/6654000-best-practices-for-prompt-engineering-with-the-openai-api HowpromptengineeringworksDuetothewayOpenAImodelsaretrained,therearespecificpr......
  • 如何通过 BAPI_SALESORDER_CREATEFROMDAT2 批量创建多个销售订单
    准备工作:准备数据结构:首先,你需要为每个销售订单准备一个数据集,这可以是一个内部表(在ABAP程序中)或一个外部数据源(如数据库表或Excel文件)。循环处理:遍历你的数据集,对于每个销售订单数据,创建相应的数据结构并填充必要的字段。调用BAPI:对于每个填充好数据的订单,调用一......
  • SAP常用的 BAPI 及其用途
    FI模块(财务模块):BAPI_ACC_DOCUMENT_POST:创建会计凭证BAPI_ACC_DOCUMENT_REV_POST:反冲会计凭证,可以冲销自开发程序生成的凭证,必须传入交易码参数BAPI_INCOMINGINVOICE_CREATE:发票检验(MIRO)BAPI_INCOMINGINVOICE_CANCEL:发票校验冲销(MR8M)SD模块(销售和分销模块):BA......
  • SAP中冲销会计凭证的BAPI【BAPI_ACC_DOCUMENT_REV_POST 】的使用方法
    BAPI_ACC_DOCUMENT_REV_POST支持的参数以下是BAPI_ACC_DOCUMENT_REV_POST支持的一些关键参数及其说明:OBJ_TYPE:对象类型,通常指凭证类型。OBJ_KEY:对象键,通常指凭证编号。OBJ_SYS:对象系统标识,指SAP系统的逻辑系统编号。COMP_CODE:公司代码。PSTNG_DATE:过账日期,冲销凭证的过......