Python 烧瓶-API积垢服务的单一入口点
我正在尝试使用Flask和通用URL路由为RESTFull CRUD服务实现一个入口点。 拥有像“/api/book/1”这样的URL应该加载我的BookController(app/controllers/book.py)并调用read()方法。 我希望实现的示例代码,但实际上无法加载我的模块: book.pyPython 烧瓶-API积垢服务的单一入口点,python,python-2.7,python-3.x,flask,crud,Python,Python 2.7,Python 3.x,Flask,Crud,我正在尝试使用Flask和通用URL路由为RESTFull CRUD服务实现一个入口点。 拥有像“/api/book/1”这样的URL应该加载我的BookController(app/controllers/book.py)并调用read()方法。 我希望实现的示例代码,但实际上无法加载我的模块: book.py from app.models import Book import json class BookController(): data = [Book('Awesome
from app.models import Book
import json
class BookController():
data = [Book('Awesome Title', '', 'fa-bar').toJson(), Book('Once upon a time', 'foo', 'fa-paper').toJson()]
def list(self):
return json.dumps(self.data)
编辑3:这可能是路由API请求的一种好方法吗?您得到的错误是什么?请包括您得到的错误或描述与当前发生的情况相比的预期行为。首先,您没有在路由装饰器中包含
方法
参数。IE@app.route(“/endpoint”,methods=[“GET”,“POST”,“PUT”,“DELETE”])
--默认情况下,只有在不提供此参数的情况下才允许使用GET。@sytech感谢您的建议,不管怎样,实际上我只是想列出我的书籍,所以我在方法方面仍然没有问题。您的ImportError
说明了它的含义。。表明应用程序控制器中不存在书籍
——可能需要再次检查吗?(区分大小写很重要)也就是说,假设错误来自行module=importlib.import\u module('app.controllers.'+controller)
,而不是其他地方。我明白了。您的导入错误实际上可能源于book.py
文件。IE来自app.models导入手册
请用完整的回溯更新您的问题。(参见我之前提到的“假设错误来自于行…”)——是否在app.models
中定义了Book
?如果已定义,这可能表示存在冲突的导入问题。您的模型
模块是否偶然导入应用程序
?您的应用程序
导入模型
?或者类似的事情?你得到的错误是什么?请包括你得到的错误或描述预期的行为,与当前发生的情况进行比较。首先,您没有在路由装饰器中包含方法
参数。IE@app.route(“/endpoint”,methods=[“GET”,“POST”,“PUT”,“DELETE”])
--默认情况下,只有在不提供此参数的情况下才允许使用GET。@sytech感谢您的建议,不管怎样,实际上我只是想列出我的书籍,所以我在方法方面仍然没有问题。您的ImportError
说明了它的含义。。表明应用程序控制器中不存在书籍
——可能需要再次检查吗?(区分大小写很重要)也就是说,假设错误来自行module=importlib.import\u module('app.controllers.'+controller)
,而不是其他地方。我明白了。您的导入错误实际上可能源于book.py
文件。IE来自app.models导入手册
请用完整的回溯更新您的问题。(参见我之前提到的“假设错误来自于行…”)——是否在app.models
中定义了Book
?如果已定义,这可能表示存在冲突的导入问题。您的模型
模块是否偶然导入应用程序
?您的应用程序
导入模型
?或者类似的?
# __init__.py
__all__ = ["book"]
from app.models import Book
import json
class BookController():
data = [Book('Awesome Title', '', 'fa-bar').toJson(), Book('Once upon a time', 'foo', 'fa-paper').toJson()]
def list(self):
return json.dumps(self.data)