我正在创建一个Flask API,对于电影推荐,我有数据集,我希望自动建议功能,当我键入任何字母,我会得到与该词相关的电影。
这是我的app.py文件:-
from flask import Flask, jsonify, request, render_template
from flask_cors import CORS
import pandas as pd
item_similarity_df = pd.read_csv("movie_similarity.csv", index_col=0)
app = Flask(__name__)
CORS(app)
@app.route("/")
def hello_from_root():
return jsonify(message='Hello from root!')
@app.route("/recms", methods = ["POST"])
def make_rec():
if request.method == "POST":
data = request.json
movie = data["movie_title"]
#curl -X POST http://0.0.0.0:8080/recms -H 'Content-Type: application/json' -d '{"movie_title":"Heat (1995)"}'
try:
similar_score = item_similarity_df[movie]
similar_movies = similar_score.sort_values(ascending=False)[1:50]
api_recommendations = similar_movies.index.to_list()
except:
api_recommendations = ['Movie not found']
return render_template("index.html",api_recommendations = api_recommendations)
if __name__ == "__main__":
app.run(host='0.0.0.0', port=8080)
这是我的索引。
<!DOCTYPE html>
<html>
<head>
<title>AutoComplete</title>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.js">
</script>
<script src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.8.16/jquery-ui.js">
</script>
<link href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.16/themes/ui-lightness/jquery-ui.css"
rel="stylesheet" type="text/css" />
</head>
<body>
<h1>Welcome to GFG</h1>
<input type="text" id="tags">
<script>
$( function() {
var availableTags = [
{% for api_recommendations in api_recommendations %}
"{{api_recommendations}}",
{% endfor %}
];
$( "#tags" ).autocomplete({
source: availableTags
});
} );
</script>
</body>
</html>
代码执行正常,我正在获取;-{“message”:“来自根的你好!"}
但是当我执行:- curl -X POST http://10.0.0.72:8080/recms-H '内容类型:application/json' -d '{“movie_title”:“Heat(1995)"}'我得到了推荐电影,但我想要如果我键入而不是“Heat(1995)”x1c 0d1x我得到了推荐电影,但我想要如果我键入而不是“Heat(1995)”,只有h它会给予所有的电影名称与h字母。
1条答案
按热度按时间7vux5j2d1#
下面的示例使用 AJAX 在DataFrame中搜索其title列包含已发送的子字符串的条目。
对于输入的每个子字符串,都会向服务器发送一个GET请求。这将搜索标题列包含该字符串的行,忽略大小写。然后提取匹配的行,按标题排序,并折叠到标题列。所有标题都以JSON格式的列表返回。
第一个