简体   繁体   English

Python Flask 在 api.route('/') 上失败

[英]Python Flask failing on api.route('/')

Why does this simple code fail?为什么这个简单的代码会失败? I don't get it:我不明白:

import sys
import pprint
import socket
from flask import Flask, request
from flask_restplus import Resource, Api
app = Flask(__name__)
api = Api(app)
@api.route('/')
class Root():
    def get(self):
        return { 'I am get.' }
    def post(self):
        return { 'I am post.' }

I've seen ...route('/') used in examples, like http://blog.luisrei.com/articles/flaskrest.html , but this is what I get:我已经看到 ...route('/') 在示例中使用,例如http://blog.luisrei.com/articles/flaskrest.html ,但这就是我得到的:

Python 3.6.6 |Anaconda, Inc.| (default, Jun 28 2018, 17:14:51) 
[GCC 7.2.0] on linux
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/project/libdev_py/libmems_conda/envs/py36/lib/python3.6/site-packages/flask_restplus/namespace.py", line 92, in wrapper
    self.add_resource(cls, *urls, **kwargs)
  File "/project/libdev_py/libmems_conda/envs/py36/lib/python3.6/site-packages/flask_restplus/namespace.py", line 82, in add_resource
    api.register_resource(self, resource, *ns_urls, **kwargs)
  File "/project/libdev_py/libmems_conda/envs/py36/lib/python3.6/site-packages/flask_restplus/api.py", line 261, in register_resource
    self._register_view(self.app, resource, *urls, **kwargs)
  File "/project/libdev_py/libmems_conda/envs/py36/lib/python3.6/site-packages/flask_restplus/api.py", line 273, in _register_view
    previous_view_class = app.view_functions[endpoint].__dict__['view_class']
KeyError: 'view_class'
>>> 

基于https://flask-restplus.readthedocs.io/en/stable/quickstart.html ,尝试class Root(Resource): ,而不仅仅是class Root():

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM