我试图用flutter制作一个简单的应用程序,并使用python脚本中的数据作为flask restful-api。我编写了脚本,并可以通过以下方式获得结果:http : //127.0.0.1 : 5000/query?username=username1
为json格式。我正试图做的是那件事;当我的应用开始工作时,会弹出一个窗口询问用户名,输入用户名后,它将转到应用的主窗口小部件,该小部件将从我的api页面的json中获取数据。因此,如果有python命令,我应该使用在线api或网络服务器吗?我看了看Google App Engine,但什至无法将脚本上传到那里。那么将我的restful-api链接到我的flutter
应用程序(最后是apk
文件)以能够在任何手机上工作的最简单方法是什么?我的脚本代码在下面,“ flutter”端仍在进行中,直到我弄清楚如何在“ flutter” ..中使用“ python”通过“ python”使用“ api”。
from flask import Flask, request, jsonify
import random
import imdb
from trakt.users import User
app = Flask(__name__)
@app.route('/query', methods=['GET', 'POST'])
def query():
username = request.args['username']
moviesDB = imdb.IMDb()
my = User(str(username))
myline = str(random.choice(my.watchlist_movies))[9:1000]
print(myline)
movies = moviesDB.search_movie(str(myline))
id = movies[0].getID()
movie = moviesDB.get_movie(id)
title = movie['title']
year = str(movie["year"])
rating = str(movie["rating"])
runtime = ' '.join(map(str, movie["runtimes"]))
directStr = ' '.join(map(str, movie["directors"]))
writerStr = ', '.join(map(str, movie["writers"]))
actors = ', '.join(map(str, movie["cast"]))
summary = movie["plot outline"]
genre = ', '.join(map(str, movie["genres"]))
posterurl = movie["full-size cover url"]
return jsonify(movietitle=title,
movieyear=year, movierating=rating, moviegenres=genre, movieruntime=runtime,
moviedirectors=directStr,
moviewriters=writerStr,
moviecast=actors,
movieplotline=summary,
movieposterurl=posterurl)
if __name__ == '__main__':
app.run(debug=True)
问题来源:stackoverflow
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
因此,问题实际上是您应该在哪里托管python api?如果是这样,那么答案就在您决定的地方。如果您正在寻找免费的解决方案,则可以查看以下两个:pythonanywhere和Heroku。两者都是免费的,但是对于Heroku,必须提供有效的信用卡以保证正常运行。话虽这么说,如果您的应用程序将产生可观的流量,那么我强烈建议您租用VPS或运行Linux的专用服务器(很多……很多托管服务提供商)。
回答来源:stackoverflow