Flask UnicodeDecodeError при запуске сервера [дубликат]

Я отвечаю на вопрос: Как получить значение переменной, учитывая ее имя в строке? , которая закрыта как дубликат со ссылкой на этот вопрос.

Если рассматриваемые переменные являются частью объекта (например, части класса), то некоторые полезные функции для достижения именно этого: hasattr, getattr и setattr.

Так, например, вы можете иметь:

class Variables(object):
    def __init__(self):
        self.foo = "initial_variable"
    def create_new_var(self,name,value):
        setattr(self,name,value)
    def get_var(self,name):
        if hasattr(self,name):
            return getattr(self,name)
        else:
            raise("Class does not have a variable named: "+name)

Тогда вы можете сделать:

v = Variables()
v.get_var("foo")

"initial_variable"

v.create_new_var(v.foo,"is actually not initial")
v.initial_variable

"на самом деле не является начальным"

blockquote>

6
задан Wolf 5 June 2015 в 13:14
поделиться

3 ответа

Это звучит как эта проблема Python . Если имя вашего компьютера имеет символы, отличные от ASCII, это не удастся. Вы можете:

  1. Выдать команду runerver с явным хостом и портом: python manage.py runserver 127.0.0.1:8000
  2. Измените имя компьютера на строку, содержащую только символы ASCII.
10
ответ дан vz0 21 August 2018 в 04:40
поделиться
  • 1
    Спасибо, первый шаг не помогает, но смена имени компьютера. – Simple runner 16 April 2014 в 13:58
  • 2
    Поэтому, пожалуйста, дайте ему ответ, чтобы другие, посетившие этот вопрос в будущем, сразу увидели, что работает. – Mawg 6 July 2015 в 09:39

У меня была эта проблема, потому что я случайно посетил сайт с https вместо http. Переключение на http исправлено.

0
ответ дан Adam Barnes 21 August 2018 в 04:40
поделиться

Я столкнулся с этой проблемой на python 3.4 со следующей ситуацией:

  • У сервера было только имя хоста ascii (например host1)
  • Файл / etc / хост-файл не содержит записи для моего имени хоста
  • Не было доступного DNS-разрешения (автономный компьютер)

После добавления следующей записи в файл /etc/hosts никакие дополнительные UnicodeDecodeError исключения не были брошены.

127.0.0.1 localhost host1
0
ответ дан gileri 21 August 2018 в 04:40
поделиться
Другие вопросы по тегам:

Похожие вопросы: