首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >烧瓶应用程序不识别flask_restful资源

烧瓶应用程序不识别flask_restful资源
EN

Stack Overflow用户
提问于 2021-03-14 17:53:50
回答 1查看 862关注 0票数 0

我正在尝试用flask_restful构建一个API,但我不知道如何将继承自Resource的类与实际的应用程序连接起来。我有以下结构

代码语言:javascript
复制
  page
    ├───api
    │   └───__init__.py
    │   └───resources.py          
    └───__init__.py

page/api/Resourcees.py:

代码语言:javascript
复制
from flask_restful import Resource
from page import api


@api.resource("/hello-world")
class HelloWorld(Resource):
    def get(self):
        return {"hello": "World"}

页/init.py:

代码语言:javascript
复制
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 app

run.py (页面包之外):

代码语言:javascript
复制
from page import create_app

if __name__ == "__main__":
    app = create_app()
    app.run(debug=True)

测试:

代码语言:javascript
复制
import requests

BASE = "http://127.0.0.1:5000/"

response = requests.get(BASE + "hello-world")
print(response.json())

显然,向"/hello-world“提出请求是行不通的。我如何“让酒瓶知道”的资源,使我得到一个有效的回应。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-03-14 18:29:13

也许有一种非常聪明的方法可以做到这一点,但对我来说,解决方案是删除page/api/resources.py的装饰器page/api/resources.py,并在page/init.py中进行以下更改

代码语言:javascript
复制
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应该有您的路由,因此将其更改为如下所示:

代码语言:javascript
复制
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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66627754

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档