Можно ли проверить протокол Интернета из шаблона Django?

int.TryParse, вероятно, немного легче:

public static int? ToNullableInt(this string s)
{
    int i;
    if (int.TryParse(s, out i)) return i;
    return null;
}

Редактирование @Glenn int.TryParse "встроен в платформу". Это и int.Parse способ проанализировать строки к ints.

24
задан Thierry Lam 3 December 2009 в 18:17
поделиться

3 ответа

если вы используете RequestContext , вы можете сделать следующее:

<p>You used: {% if request.is_secure %}HTTPS{% else %}HTTP{% endif %}

См. соответствующую часть документации Django.

45
ответ дан 28 November 2019 в 22:19
поделиться

Вам необходимо включить соответствующий обработчик контекста запроса в вашем файле setting.py:

TEMPLATE_CONTEXT_PROCESSORS = ('django.core.context_processors.request',)

В шаблоне теперь будет переменная с именем request, которая содержит текущий HttpRequest. Вы можете использовать его, чтобы найти протокол:

{{ request.is_secure }}
9
ответ дан 28 November 2019 в 22:19
поделиться

Попробуйте использовать RequestContext и request.is_secure в своем шаблоне.

Одно предостережение: процесс обнаружения HTTPS может отличаться от одного сервера к другому, поэтому вы можете нужно немного поработать, чтобы заставить request.is_secure заработать. Вы можете заставить его работать, либо убедившись, что ваш интерфейсный / обратный прокси-сервер устанавливает HTTP_X_FORWARDED_HOST, либо написав класс промежуточного программного обеспечения, настраиваемый для вашей настройки.

Используйте ограниченный [1] код SetRemoteAddrFromForwardedFor [2] в качестве отправной точки , если вы выберете собственный маршрут промежуточного программного обеспечения.

(Мне разрешена только одна ссылка на сообщение, поэтому прошу прощения за перепутанные ссылки)

[1]: docs.djangoproject.com/en/dev/releases/1.1/#id1 " Примечания к выпуску Django 1.1 - Удалено промежуточное ПО SetRemoteAddrFromForwardedFor "

[2]: code.djangoproject.

2
ответ дан 28 November 2019 в 22:19
поделиться
Другие вопросы по тегам:

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