Python 在browser-Flask上返回json

Python 在browser-Flask上返回json,python,json,flask,Python,Json,Flask,我有这个函数,它在控制台上返回一个结果: numbers_to_add = list(range(10000001)) try: req = request.Request('http://127.0.0.1:5000/total' , data=bytes(json.dumps(numbers_to_add), 'utf_8') , headers={'Content-Type': 'application/json'} , method

我有这个函数,它在控制台上返回一个结果:

numbers_to_add = list(range(10000001))
try:
    req = request.Request('http://127.0.0.1:5000/total'
        , data=bytes(json.dumps(numbers_to_add), 'utf_8')
        , headers={'Content-Type': 'application/json'}
        , method='POST')
    result = json.loads(request.urlopen(req).read(), encoding='utf_8')
    print(json.dumps(result, indent=4))
except Exception as ex:
    print(ex)
它返回范围
10000001

现在,我想在浏览器请求时返回此内容,在Flask应用程序中,我尝试了以下方法:

def hardCoded():
    numbers_to_add = list(range(10000001))
    try:
        req = request.Request('http://127.0.0.1:5000/total'
            , data=bytes(json.dumps(numbers_to_add), 'utf_8')
            , headers={'Content-Type': 'application/json'}
            , method='POST')
        result = json.loads(request.urlopen(req).read(), encoding='utf_8')
        print(json.dumps(result, indent=4))
    except Exception as ex:
        print(ex)

class rangeNumbers(Resource):
    def get(self, range):
        return {'data': directSum.hardCoded(range)}

api.add_resource(rangeNumbers, '/range/<range>')

有什么想法吗?

如果
range
是要返回的
n
号码,在本例中是
10000001
,那么您将需要执行以下操作:

在您的
directSum
文件中:

def hardCoded(rng):
    numbers_to_add = list(range(rng))
    try:
    # ... rest of code ...
在主文件中:

class rangeNumbers(Resource):
    def get(self, rng):
        return {'data': directSum.hardCoded(rng)}
当您调用
rangeNumbers().get
时,您可以执行以下操作:

rng_num = rangeNumbers()
rng_num.get(10000001)

注意,我将变量
范围
更改为
rng
。即使是在本地范围内,也不要掩盖
内置的
名称,这符合您的最佳利益。否则调用
range(range)
会给你带来无尽的痛苦。

这里什么是
directSum
hardCoded
实际上是一个类上的方法吗?嗨,对不起,directSum是一个硬编码方法所在的文件,我只是把所有的东西都放在这里,现在我回想起来,硬编码实际上不在类上。。。但是我有另一个方法,它工作得很好,不在类中…这里最明显的错误是你试图将
范围
作为参数传递给
硬编码()
,但它不接受任何参数,这就是解释程序抱怨的原因。如果
range(10000001)
应该是动态的,那么作为参数传入(
def hardCoded(range):
)非常感谢,只是一个问题,对不起,我得到了这个api。添加资源(rangeNumbers,“/range/”),我需要在哪里传递这个rng\u num变量?它说'TypeError:'str'对象不可调用',在这种情况下,我认为您应该调用
api.resource('/range/').get(10000001)
。我对
flask
不太熟悉,只是稍微摆弄了一下,所以我不知道
get()
是否是默认的实现方法。好的,谢谢,如果我有更多的麻烦,我会提出一个新问题
rng_num = rangeNumbers()
rng_num.get(10000001)