Basi c HTTP-аутентификация в Flask AttributeError: ошибка «NoneType» - PullRequest
4 голосов
/ 25 мая 2020

Я делаю приложение Flask, и мне нужно выполнить HTTP Basi c Аутентификация, и это не работает

Я делаю, как в примере

Что мне нужно сделать, чтобы решить эту проблему?

Импортированные библиотеки

from flask import Flask, render_template, render_template_string, request
import json

Фрагмент кода с аутентификацией

@app.route('/user/<string:name>')
def user(name):
    request.authorization.username
    request.authorization.password

    with open('json/users.json', 'rt', encoding='utf8') as f:
        x = f.read()
    data = json.loads(x)
    user = data[name]
    return render_template('about_user.html',
        _name=user['name'],
        _age=user['age'],
        _discord=user['discord']
    )

Ошибка

AttributeError: 'NoneType' object has no attribute 'username'

1 Ответ

5 голосов
/ 25 мая 2020

Вам нужно сначала проверить, есть ли request.authorization, поэтому

  if request.authorization:
    request.authorization.username
    request.authorization.password

    with open('json/users.json', 'rt', encoding='utf8') as f:
        x = f.read()
    data = json.loads(x)
    user = data[name]
    return render_template('about_user.html',
        _name=user['name'],
        _age=user['age'],
        _discord=user['discord']
    )


    else:
       return make_response(....)

убедитесь, что вы импортировали make_response.

...