【问题标题】:Why does error "AttributeError: 'NoneType' object has no attribute" in Flask only sometimes fire, and not constantly?为什么 Flask 中的错误“AttributeError:'NoneType'对象没有属性”有时会触发,而不是经常触发?
【发布时间】:2020-11-07 14:25:58
【问题描述】:

构建一个 Flask 应用程序,并尝试按日期/受欢迎程度更改条目/卡片的选择。我被困在这里,因为这个错误不是恒定的,它偶尔会触发。我希望我能让这个排序功能正常工作,然后解决这个问题,我认为这只是一个小错误。但是,现在错误更频繁地触发,我担心我只是将时间完全浪费在这种方法上;但我不知道。

App.py

def tester(page):

    limit = 6
    offset = (int(page) - 1) * limit

    requested = request.args.get('fromHTMLchoice')
    print(requested)
    requestChoice = requested.split()
    a = requestChoice[0]
    b = requestChoice[1]
    convertChoice = tuple(a[2:-2], int(b[:-1]))

    sagas_pages = sagas.find().sort(
                        [convertChoice]).skip(offset).limit(limit)

    return render_template(
                "tester.html",
                sagas_pages=sagas_pages, page=page
                      )

HTML

<form class="form-inline" method="GET" action="{{url_for('tester', page=1)}}">
            <div class="form-group">
                <div class="input-group">
                    <span class="input-group-addon">Please select</span>
                        <select name="fromHTMLchoice" class="selectpicker form-control">
                            <option value= "('totalLikes', -1)">Likes</option>
                            <option value= "('totalLikes', 1)">Dislikes</option>
                            <option value= "('_id', -1)">Most_Recent</option>
                            <option value= "('_id', 1)">Least_Recent</option>
                        </select>
                </div>
                <button type="submit" class="btn btn-default">Go</button>
            </div>
        </form>

错误

None
127.0.0.1 - - [17/Jul/2020 18:07:40] "GET /tester/1 HTTP/1.1" 500 -
Traceback (most recent call last):
  File "/workspace/.pip-modules/lib/python3.7/site-packages/flask/app.py", line 2464, in __call__
    return self.wsgi_app(environ, start_response)
  File "/workspace/.pip-modules/lib/python3.7/site-packages/flask/app.py", line 2450, in wsgi_app
    response = self.handle_exception(e)
  File "/workspace/.pip-modules/lib/python3.7/site-packages/flask/app.py", line 1867, in handle_exception
    reraise(exc_type, exc_value, tb)
  File "/workspace/.pip-modules/lib/python3.7/site-packages/flask/_compat.py", line 39, in reraise
    raise value
  File "/workspace/.pip-modules/lib/python3.7/site-packages/flask/app.py", line 2447, in wsgi_app
    response = self.full_dispatch_request()
  File "/workspace/.pip-modules/lib/python3.7/site-packages/flask/app.py", line 1952, in full_dispatch_request
    rv = self.handle_user_exception(e)
  File "/workspace/.pip-modules/lib/python3.7/site-packages/flask/app.py", line 1821, in handle_user_exception
    reraise(exc_type, exc_value, tb)
  File "/workspace/.pip-modules/lib/python3.7/site-packages/flask/_compat.py", line 39, in reraise
    raise value
  File "/workspace/.pip-modules/lib/python3.7/site-packages/flask/app.py", line 1950, in full_dispatch_request
    rv = self.dispatch_request()
  File "/workspace/.pip-modules/lib/python3.7/site-packages/flask/app.py", line 1936, in dispatch_request
    return self.view_functions[rule.endpoint](**req.view_args)
  File "/workspace/sagacity/app.py", line 94, in tester
    requestChoice = requested.split()
AttributeError: 'NoneType' object has no attribute 'split'

【问题讨论】:

    标签: python html mongodb flask pymongo


    【解决方案1】:

    AttributeError 是问题的下游。调试的问题是为什么

    requested = request.args.get('fromHTMLchoice')
    print(requested)
    

    someones 打印None,就像在日志顶部一样。安全的赌注是,不知何故,tester 是通过没有 fromHTMLChoice 参数的 URL 调用的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-20
      • 2021-08-19
      • 2014-12-29
      • 2020-06-25
      • 2021-12-26
      相关资源
      最近更新 更多