为了账号安全,请及时绑定邮箱和手机立即绑定

python之flask应用的一些疑问

python之flask应用的一些疑问

开满天机 2019-02-18 08:21:36
学习flask过程中,遇到一个奇怪的问题,可能是自己学艺不精吧,希望高手指正 # 视图函数 class ShuBook: isbn_url = 'http://t.yushu.im/v2/book/isbn/{}' keyword_url = 'http://t.yushu.im/v2/book/search?q={}&count={}&start={}' @classmethod def search_by_isbn(cls,isbn): url = cls.isbn_url.format(isbn) print(locals()) result = HTTP.get(url) # result是dict格式的 json会被转化为字典 这里没有传递第二个参数,就会采用默认的 print(locals()) #------------------------ return result @classmethod def search_by_keyword(cls,keyword,count=15,start=0): url = cls.keyword_url.format(keyword,count,start) result = HTTP.get(url) return result # 自己的HTTP模块 import requests class HTTP: @staticmethod def get(self, url, return_json = True): r = requests.get(url) # restful API # json if r.status_code != 200: return {} if return_json else '' return r.json() if return_json else r.text 程序提示错误get() missing 1 required positional argument: 'url'我这里第二个参数不设置的话应该自动套用 我设置的默认参数return_json = True,这个是什么缘故呢?谢谢指正
查看完整描述

4 回答

?
回首忆惘然

TA贡献1847条经验 获得超11个赞

def search_by_isbn(cls,isbn):
        url = cls.isbn_url.format(isbn)
        print(locals())
        result = HTTP.get(url)   
        print(locals())  
        return result   # 这里产生的是dict,需要解析成json返回,某则不能读取

折腾了好几天的问题,还是败在了基础薄弱上,谢谢大家的耐心解答让我理清了思路,谢谢
综合前面几个高手的结论,我发现了自己的问题,所以投票还是给自己吧.........免得得罪人

查看完整回答
反对 回复 2019-03-01
?
料青山看我应如是

TA贡献1772条经验 获得超8个赞

报错说的是url参数少了,不是return_json少了。
你get()调用的时候传进url了么?

查看完整回答
反对 回复 2019-03-01
?
翻过高山走不出你

TA贡献1875条经验 获得超3个赞

你的 HTTP 类中的函数使用了静态函数的装饰器,那么你的 get() 函数里的参数,有一个 self,这个参数是需要你自己输入。你单独调用了url,那么调用的过程就是 get(self=url, url, return_json = True),所以会报错,缺少url的赋值

查看完整回答
反对 回复 2019-03-01
?
沧海一幻觉

TA贡献1824条经验 获得超5个赞

HTTP类中get方法是静态方法,不需要self参数

class HTTP:
    @staticmethod
    def get(url, return_json = True):  # 没有self参数
        r = requests.get(url)
        # restful API
        # json
        if r.status_code != 200:
            return {} if return_json else ''
        return r.json() if return_json else r.text   
查看完整回答
反对 回复 2019-03-01
  • 4 回答
  • 0 关注
  • 522 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信