2014-02-08 7 views
1

Это довольно необычный запрос, но можно ли извлечь поддомен переменной?Сохранить имя поддомена для строки

e.g. 
(1) sub1.mydomain.com 
(2) sub2.mydomain.com 

Когда я нажимаю (1), я хочу сохранить «sub1» и наоборот. Я использую plone (python и tal). Thx для вашего ввода.

+0

СРЮ мой плохой я использую шаблоны :) – dustinboettcher

+0

Честно говоря, я не знаю. Я создал plonetheme (не с диазо) стандартным plone 3, и браузер содержал файлы .py, а также .pt с tal – dustinboettcher

+0

Это шаблоны страниц Zope. Когда вы добавили тег Plone, я понял достаточно. –

ответ

5

Просто используйте выражение Python разделить на первой точки:

tal:define="subdomain python:domain.partition('.')[0]" 

или, если с помощью Python 2.4 или более ранней версии:

tal:define="subdomain python:domain.split('.', 1)[0]" 

Это использует str.partition() или str.split() возвращает список строк ; локальное имя - первая часть; [0] выбирает первый элемент этого списка.

Demo с использованием Python строки:

>>> 'sub1.mydomain.com'.partition('.')[0] 
'sub1' 
>>> 'sub1.mydomain.com'.split('.', 1)[0] 
'sub1' 
+0

Следите за своей версией Plone. Python 2.4 (используется Plone 3) не предоставит вам '.partition'. В этом случае используйте '' sub1.mydomain.com'.split ('.', 1) [0] ' –

+0

@keul: отличная точка; Я склонен забывать, что '.partition()' было добавлено в 2.5. –

+0

работал как шарм, я использовал self.request ["URL"], чтобы получить URL-адрес, но остальное было прекрасным - thx для вас обоих – dustinboettcher