我正在尝试用flutter
制作一个简单的应用程序,并使用python
脚本中的数据作为烧瓶restful-api
。我制作了我的脚本,我可以用这种方式得到结果:http://127.0.0.1:5000/query?username=username1
为json
格式。我想做的事情正是这样;当我的应用程序开始工作时,一个弹出窗口将询问username
,输入username
后,它将转到应用程序的主小部件,该小部件将从我的api
页面中的json
获取数据。那么,为了做到这一点,我应该使用在线api
还是网络服务器(如果有python
的话(?我查找了谷歌应用程序引擎,但我甚至无法在那里上传我的脚本。那么,将我的restful api链接到我的flutter
应用程序(最后是apk
文件(以在任何手机上工作的最简单方法是什么呢?我的脚本代码如下,flutter
方面仍在进行中,直到我弄清楚如何在flutter
中使用api
和python
。。
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)
所以,问题是您应该在哪里托管您的python api?如果是这样的话,那么答案就在你决定的任何地方。如果你正在寻找免费的解决方案,你可以看看这两个:pythonsanywhere和Heroku。两者都是免费的,但对于Heroku来说,必须提供有效的信用卡才能获得全部时间。话虽如此,如果你的应用程序将产生可观的流量,那么我强烈建议你要么租一个VPS,要么租一台运行Linux的专用服务器(很多…很多托管提供商(。