如何在Fluter上使用Flas Api?

问题描述 投票:0回答:1

我正在尝试制作一个简单的应用程序,并使用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处理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 python-3.x flutter flask flask-restful
1个回答
0
投票

所以,问题实际上是您应该在哪里托管python api?如果是这样,那么答案就在您决定的地方。如果您正在寻找免费的解决方案,则可以查看以下两个:pythonanywhereHeroku。两者都是免费的,但是对于Heroku,必须提供有效的信用卡以保证正常运行。话虽这么说,如果您的应用程序将产生可观的流量,那么我强烈建议您租用VPS或运行Linux的专用服务器(很多...很多托管服务提供商)。

© www.soinside.com 2019 - 2024. All rights reserved.