Flacon Reposant ajouter des paramètres de ressource
Je suis à la recherche de passer une instance de l'objet en tant que paramètre dans un Flacon De Détente Ressource.
Voici ma configuration:
# in main.py
from flask import Flask
from flask.ext.restful import Api
from bar import Bar
from foo import views
app = Flask(__name__)
api = Api(app)
my_bar = Bar()
api.add_resource(views.ApiPage, "/api/my/end/point/")
Puis dans views.py j'ai de la ressource comme suit:
# In views.py
from flask.ext.restful import Resource
class ApiPage(Resource):
def get(self):
serialized = str(my_bar)
return serialized
De sorte que le problème que je rencontre est que j'ai besoin de passer mon instance de Bar()
dans l'api de ressources. Est-il possible de passer à travers la add_resource
méthode comme api.add_resource(views.ApiPage, "/api/my/end/point/", instance=bar)
?
Vous pouvez remplacer le init de ApiPage.
Je ne crois pas que primordial ApiPage serait de travailler depuis
Je ne crois pas que primordial ApiPage serait de travailler depuis
add_resource
prend une classe de référence, plutôt qu'une instance de classe.OriginalL'auteur Gunther | 2014-08-02
Vous devez vous connecter pour publier un commentaire.
Depuis la version 0.3.3 (publié le Mai 22, 2015),
add_resource()
est capable de passer des paramètres à votreResource
constructeur.Suivant l'exemple original, voici le
views.py
:Et le code approprié pour
main.py
:OriginalL'auteur el.atomo
Dans la version 0.3.5 la documentation vous pouvez le faire de cette façon
passer votre objet dans la
add_resource
de la méthode et de l'utiliser dans la ressource méthode initet dans votre classe init
OriginalL'auteur ron
Compte tenu de la la documentation une telle chose ne peut pas être fait à ce niveau. Une façon de contourner ce problème serait de mettre l'initialisation de
Bar
à l'intérieur d'un autre module, puis récupérer l'instance à l'importation dans vos vues module.OriginalL'auteur Ketouem
Après avoir lutté avec le même problème, j'ai trouvé que vous pouvez utiliser
add_url_rule
couplé avecas_view
Si dans votre cas, je suppose que le code pourrait être quelque chose comme
OriginalL'auteur Leon