如何在 Flutter 中使用 Flask Api?
How to use a Flask Api with Flutter?
我正在尝试使用 flutter
制作一个简单的应用程序,并使用来自 python
脚本的数据作为烧瓶 restful-api
。我制作了我的脚本,我可以通过这种方式获得结果:http://127.0.0.1:5000/query?username=username1
as json
格式。
我想做的就是这样;当我的应用程序开始工作时,弹出窗口 window 会询问 username
,在输入 username
后,它将转到应用程序的主要小部件,该小部件将从 json
在我的 api
页面中。
因此,为此我应该使用在线 api
还是网络服务器(如果有用于 python
的网络服务器)?我查找了 google 应用程序引擎,但我什至无法在那里上传我的脚本。那么 link 我的 restful-api 到我的 flutter
应用程序(最后是 apk
文件)的最简单方法是什么 [=34] =]?我的脚本代码在下面,flutter
方面仍在进行中,直到我弄清楚如何在 flutter
..
中通过 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)
所以,真正的问题是您应该在哪里托管您的 python api?如果是这样,那么答案就在您决定的任何地方。如果您正在寻找免费的解决方案,您可以看看这两个:pythonanywhere and Heroku。两者都是免费的,但对于 Heroku,必须提供有效的信用卡才能正常运行。话虽这么说,如果您的应用程序会产生相当大的流量,那么我强烈建议您租用 VPS 或专用服务器 运行 Linux(许多...许多托管服务提供商在那里)。
我正在尝试使用 flutter
制作一个简单的应用程序,并使用来自 python
脚本的数据作为烧瓶 restful-api
。我制作了我的脚本,我可以通过这种方式获得结果:http://127.0.0.1:5000/query?username=username1
as json
格式。
我想做的就是这样;当我的应用程序开始工作时,弹出窗口 window 会询问 username
,在输入 username
后,它将转到应用程序的主要小部件,该小部件将从 json
在我的 api
页面中。
因此,为此我应该使用在线 api
还是网络服务器(如果有用于 python
的网络服务器)?我查找了 google 应用程序引擎,但我什至无法在那里上传我的脚本。那么 link 我的 restful-api 到我的 flutter
应用程序(最后是 apk
文件)的最简单方法是什么 [=34] =]?我的脚本代码在下面,flutter
方面仍在进行中,直到我弄清楚如何在 flutter
..
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)
所以,真正的问题是您应该在哪里托管您的 python api?如果是这样,那么答案就在您决定的任何地方。如果您正在寻找免费的解决方案,您可以看看这两个:pythonanywhere and Heroku。两者都是免费的,但对于 Heroku,必须提供有效的信用卡才能正常运行。话虽这么说,如果您的应用程序会产生相当大的流量,那么我强烈建议您租用 VPS 或专用服务器 运行 Linux(许多...许多托管服务提供商在那里)。