我正在尝试用flask_restful构建一个API,但我不知道如何将继承自Resource的类与实际的应用程序连接起来。我有以下结构
page
├───api
│ └───__init__.py
│ └───resources.py
└───__init__.pypage/api/Resourcees.py:
from flask_restful import Resource
from page import api
@api.resource("/hello-world")
class HelloWorld(Resource):
def get(self):
return {"hello": "World"}页/init.py:
from flask import Flask
from flask_restful import Api
from page.config import Config1
api = Api()
def create_app(config_class=Config1):
app = Flask(__name__)
app.config.from_object(config_class)
api.init_app(app)
return apprun.py (页面包之外):
from page import create_app
if __name__ == "__main__":
app = create_app()
app.run(debug=True)测试:
import requests
BASE = "http://127.0.0.1:5000/"
response = requests.get(BASE + "hello-world")
print(response.json())显然,向"/hello-world“提出请求是行不通的。我如何“让酒瓶知道”的资源,使我得到一个有效的回应。
发布于 2021-03-14 18:29:13
也许有一种非常聪明的方法可以做到这一点,但对我来说,解决方案是删除page/api/resources.py的装饰器page/api/resources.py,并在page/init.py中进行以下更改
from flask import Flask
from page.config import Config1
def create_app(config_class=Config1):
app = Flask(__name__)
app.config.from_object(config_class)
return app我还会将run.py移到page文件夹中,并根据page文档将其重命名为app.py。这个app.py应该有您的路由,因此将其更改为如下所示:
from page import create_app
from page.api.resources import HelloWorld
from flask_restfull import api
app = create_app()
api = Api(app)
api.add_resource(HelloWorld, '/hello-world')要运行它,只需在flask run文件夹中键入page。
https://stackoverflow.com/questions/66627754
复制相似问题