dart调用python_python - 用python理解dart的逻辑 - SO中文参考 - www.soinside.com

[我用python创建了flask api项目,它从3-4个不同的api中获取信息并收集它们,将它们映射然后将它们转换为json文件。我也试图用飞镖做类似的事情(用于颤动底座),但是我不明白一些事情。像这样的项目树,我从用户端获取数据,将其引导到主站点api(a1.com),然后从那里获取一个信息,例如“ title”,然后我将该标题寻找到另一个api(a2。 com),它为我提供了一个“ id”,之后我使用另一个网站(a3.com)获得了该ID的“详细信息”,然后我又得到了另一个信息,比如说另一个具有相同id的网站(a4.com)中的“ url”然后我做了一个json地图title,id,details,....,url“。字符串库中也有很多修正,但它们并不重要。问题是在flutter或dart中,我可以获取信息并每4个站点独立映射json文件但我不知道如何用单个输入创建链函数,

Ps:提取后,我不需要将它们转换为json格式,只需要在有效负载中使用它们,例如有效负载,标题,有效负载2.id,有效负载3.detail1,有效负载4.url等。

我在2个站点中尝试过的代码示例如下,我也试图在一个Future中获取所有代码,但我需要从第一个站点获取信息以获取第二个URL,并获取第三个URL ....import 'package:http/http.dart' as http;

import 'dart:convert';

Future getTitle(String name) async{

String myUrl = 'http://a1.com/$userentry';

http.Response response = await http.get(myUrl);

return response == null ? await getData(name) : payloadFromJson(response.body);}

Payload payloadFromJson(String str) => Payload.fromJson(json.decode(str));

String payloadToJson(Payload data) => json.encode(data.toJson());

class Payload {

String title;

Payload({

this.title,

});

factory Payload.fromJson(Map json) => Payload(

title: json["Title"],

);

Map toJson() => {

"Title": title,

};

}

Future getId(String name) async{

String myUrl = 'http://a1.com/$payload.title';

http.Response response = await http.get(myUrl);

return response == null ? await getData(name) : payload2FromJson(response.body);}

Payload2 payload2FromJson(String str) => Payload2.fromJson(json.decode(str));

String payload2ToJson(Payload data) => json.encode(data.toJson());

class Payload2 {

String ID;

Payload2({

this.ID,

});

factory Payload2.fromJson(Map json) => Payload2(

ID: json["ID"],

);

Map toJson() => {

"ID": ID,

};

}

.

.

.

Python版本基本类似;import requests

...etc

app = Flask(__name__)

@app.route('/query', methods=['GET', 'POST'])

def query()

data1= requests.get( 'https://a1.com?query='+userdata)

dataj = data1.json()

title = (str( dataj['title'] ) )

data2 = requests.get( 'https://a2.com?query='+title)

dataj2 = data2.json()

id = (str( dataj['id'] ) )

data3 = requests.get( 'https://a3.com?query='+id)

dataj3 = data3.json()

detail1 = (str( dataj3['detail1'] )

detail2 = (str( dataj3['detail1'] )

detail3 = (str( dataj3['detail1'] )

detail4 = (str( dataj3['detail1'] )

data4 = requests.get( 'https://a4.com?query='+id)

dataj4 = data4.json()

url = (str( dataj4['url'] ) )

.

.

blablalbalba

.

.

try:

return jsonify(finaldata)

except:

query()

if __name__ == '__main__':

app.run(debug=True)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值