python - 烧瓶python创建招摇文档错误
问题描述
我正在尝试为我在烧瓶中构建的 API 生成一个招摇的文档,但是当我执行下面的代码时,我得到了非常严重的错误,我在这里缺少什么?
这是我尝试过的:
try:
from flask import Flask, g, request
from flask_restful import Resource, Api
from flask_limiter.util import get_remote_address
from flask_limiter import Limiter
from flasgger import Swagger
from flasgger.utils import swag_from
from flask_restful_swagger import swagger
from flask_httpauth import HTTPTokenAuth
import os
import json
except Exception as e:
print("some modules are missing {}".format(e))
app = Flask(__name__)
api = Api(app)
limiter = Limiter(app, key_func=get_remote_address)
limiter.init_app(app)
api = swagger.docs(Api(app), apiVersion='0.1', api_spec_url='/doc')
auth = HTTPTokenAuth(scheme='Token')
tokens = {
'awserftggyjkk34)ghtyrjrhhye34nnmw': 'cadmin',
'bwsosjhee(dhj345gtyuioplsertbsjkl': 'dadmin',
'mnchthas(sjklertyusvfgmbshdls234h': 'eadmin'
}
@auth.verify_token
def verify_token(token):
if token in tokens:
g.current_user = tokens[token]
return True
return False
class defr(Resource):
decorators = [limiter.limit("100/day")]
@swagger.model
@swagger.operation(notes='my notes ntes')
@auth.login_required
def currentuser(self):
return "Hello, %s!" % g.current_user
api.add_resource(defr, '/user')
错误 :
File "C:\Users\codamd\AppData\Local\Continuum\anaconda3\lib\site-packages\flask_restful_swagger\swagger.py", line 294, in extract_operations
for method in [m.lower() for m in resource.methods]:
TypeError: 'NoneType' object is not iterable
任何帮助都会很棒
解决方案
这里的问题是您在defr
类中使用了自定义命名方法。Flask-RESTful 文档指定在您的类中定义 HTTP 方法,Resource
例如
class defr(Resource):
decorators = [limiter.limit("100/day")]
@swagger.model
@swagger.operation(notes='my notes ntes')
@auth.login_required
def get(self):
return "Hello, %s!" % g.current_user
推荐阅读
- python - 对带有条件语句的嵌套 for 循环的列表理解?
- python - Python打印变量,但不是分配给该变量的值
- regex - 在 Google 表格的另一个工作表上查找某个范围内的子字符串
- git - 本地存储库被随机删除,项目失去与存储库的连接
- mysql - 在json数据中插入缺失的值范围
- symfony - 多个入口点在 Symfony 4.4 中不起作用
- vue.js - GET:ERR_SSL_PROTOCOL_ERROR nginx + vue.js
- c++ - 为什么数组元素的打印平均比 C++ 中单个对象的打印慢?
- php - laravel,如何检查这是否是最后一条记录
- arrays - Swift - 为什么我不能将一个 Double 数组附加到另一个 Double 数组