Ошибка Django makemigrations? [Дубликат]

Вот несколько фундаментальных фактов, которые вы должны понять, чтобы прояснить ситуацию:

  • В коде верхнего уровня в модуле узла this эквивалентно module.exports. Это пустой объект, который вы видите.
  • Когда вы используете this внутри функции, значение this определяется заново перед каждым исполнением функции, и его значение определяется тем, как выполняется функция . Это означает, что два вызова одного и того же функционального объекта могут иметь разные значения this, если механизмы вызова различны (например, aFunction() против aFunction.call(newThis) против emitter.addEventListener("someEvent", aFunction); и т. Д.). В вашем случае aFunction() в нестрогом режиме запускается функция с this, установленная для глобального объекта.
  • Когда файлы JavaScript require d как модули узла, движок узла запускает код модуля внутри функции обертки. Эта функция обматывания модуля вызывается с this, установленным на module.exports. (Вспомните выше, функция может быть запущена со значением this.)

Таким образом, вы получаете разные значения this, потому что каждый this находится внутри другой функции: первая находится внутри созданной Узлом модуля-обертки, а вторая находится внутри aFunction.

6
задан smallbee 21 December 2013 в 03:58
поделиться

2 ответа

Ну, вот вы:

Положите # -*- coding: utf-8 -*- в начало файла, он определит кодировку.

docs говорит:

Python по умолчанию будет использовать ASCII в качестве стандартной кодировки, если не указаны другие подсказки кодирования.

To define a source code encoding, a magic comment must
be placed into the source files either as first or second
line in the file, such as:

Итак, вы должны начать код:

# -*- coding: utf-8 -*-
from django.shortcuts import render
from django.http import HttpResponse
from django.template.loader import get_template
...

Надежда помогает

11
ответ дан lalo 22 August 2018 в 15:59
поделиться

Если вы читаете PEP 263 , он четко говорит:

Чтобы определить кодировку исходного кода, магический комментарий должен быть помещен в исходные файлы либо как первый или вторая строка в файле ...

(Исходное предложение сказало, что оно должно быть первой строкой после # !, если оно есть, но, по-видимому, оказалось, что было проще реализовать с правило «первая или вторая строка».)

Фактические справочные документы описывают одно и то же, менее дружественным, но более строгим способом, для 3.3 и 2.7 .

«Магический комментарий», который появляется позже в файле, не является волшебным, это просто комментарий, который вводит вас в заблуждение, не затрагивая компилятор Python.

UTF-8 для u'哈哈' - '\xe5\x93\x88\xe5\x93\x88', поэтому это байты в файле. В последних версиях Python (включая 2.7 и все 3.x) кодировка по умолчанию всегда ASCII, если файл не начинается с спецификации UTF (как это делают некоторые редакторы Microsoft); даже в 2.3-2.6 это обычно ASCII; в более ранних версиях это латинский-1. Пытаться интерпретировать '\xe5\x93\x88\xe5\x93\x88' не удастся с точным исключением, которое вы видели.

1
ответ дан abarnert 22 August 2018 в 15:59
поделиться
Другие вопросы по тегам:

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