Flask REST APIを実際のDjango APPに移植するのに苦労しています。私は研究しましたが、私の問題に対する解決策を見つけることができませんでした。Flask REST APIをDjangoアプリケーションに変換
(MovieLensデータセットに基づく)映画推薦システム用です。 は基本的に私は、このアーキテクチャから移動したい:この1へ Flask API:Django app
フラスコのAPIは非常に簡単であると私はポストマンでそれをテストする際に適しています:
ジャンゴでfrom flask import Flask, jsonify, request
from movieEngine import MovieRecommender
import sqlite3
app = Flask(__name__)
@app.route('/prediction/<int:userId>',methods=['GET'])
def get(userId):
result = recommendation_engine.predictInterest(userId)
return jsonify(result)
@app.route('/add',methods=['POST'])
def add():
userId = request.json['userId']
movieId = request.json['movieId']
rating = request.json['rating']
result = recommendation_engine.addData(userId,movieId,rating)
return jsonify(result)
if __name__ == '__main__':
global recommendation_engine
global database
database = './data/RecommenderSystem.db'
sqlconnector = sqlite3.connect(database,check_same_thread=False)
recommendation_engine = MovieRecommender(sqlconnector)
app.run(debug=True)
、私は既に持っていますセットアップメインModels.py
:
from django.db import models
class User(models.Model):
name = models.CharField(max_length=256, null=True)
def __str__(self):
return self.name
class Movie(models.Model):
title = models.CharField(max_length=256)
def __str__(self):
return self.title
class Rating(models.Model):
user = models.ForeignKey(User)
movie = models.ForeignKey(Movie)
rating = models.FloatField()
timestamp = models.DateTimeField(auto_now=True)
def __str__(self):
return 'User {:} rated movie {:} --> {:}/5 '.format(self.user,self.movie,self.rating)
class Recommendation(models.Model):
user = models.ForeignKey(User)
top5 = models.CharField(max_length=256)
def __str__(self):
return 'Recommendation for user {:}'.format(self.user)
勧告テーブルに格納された値は、単純に5映画のIDのリストを含む文字列です。
5映画の名の実際のリストにこの文字列をオンにする方法上の任意のアイデア? 勧告テーブルに格納されているすべての提案やアイデアは非常に高く評価されます:)
あなたはdjango rest frameworkを調べるべきです。また、Top5を格納するManyToManyField私はそれをコード化したくないので答えていません。:) –
wrt /残りの部分は、軽くて落ち着かないことを確認してください。https://github.com/toastdriven/restless –