Использование np.where
дважды
np.where(sd[0]==0,0,np.where(dd.eq(0).all(1),'OK',dd.mask(dd==0).mean(1)))
Out[232]:
array(['0', '0.3333333333333333', '-0.3333333333333333', '0.5', '0.65',
'OK', '0'], dtype='<U32')
Необходимо сделать это на уровне веб-сервера (например, использующий mod_rewrite в Apache) или с промежуточным программным обеспечением (например, этот отрывок)
Также посмотрите это ТАК вопрос
Обновление: после Вашего комментария я думал об этом еще немного. Я любил ответ Carl Meyer, но затем понял, что он не обработает {% URL %} инвертирующий правильно. Таким образом, вот то, что я сделал бы:
Несколько сайтов: необходимо использовать платформу сайтов Django. Что означает делать экземпляры сайта для каждого языка с помощью администратора Django.
Несколько настроек: Каждый сайт языка будет также иметь свой собственный settings.py. Единственные различия между каждым сайтом будут SITE_ID
и ROOT_URLCONF
настройки так, для следования за принципом DRY необходимо сохранить общие настройки в другом файле и импортировать их в основной файл как это:
# settings_fr.py
SITE_ID = 1
ROOT_URLCONF = 'app.urls_fr'
from settings_common import *
# settings_de.py
SITE_ID = 2
ROOT_URLCONF = 'app.urls_de'
from settings_common import *
... и так далее.
Несколько URL conf: Как подразумевается выше, URL conf для каждого сайта:
# urls_fr.py
urlpatterns = patterns('',
url(r'^Livres/$', books_view, name="books"),
)
# urls_de.py
urlpatterns = patterns('',
url(r'^Bücher/$', books_view, name="books"),
)
... и так далее.
Таким образом, имя URL (в этом примере "книги") является тем же для всех языков, и поэтому {% url books %}
инвертирует правильно, и доменное имя будет domain_name полем объекта Сайта с SITE_ID
.
Несколько экземпляров веб-сервера: Для каждого САЙТА для работы правильно каждому из них нужны их собственные экземпляры сервера. Для апача + mod_wsgi это означает другое wsgi приложение для каждого САЙТА как это:
# site_fr.wsgi
import os, sys, django.core.handlers.wsgi
os.environ['DJANGO_SETTINGS_MODULE'] = 'app.settings_fr'
application = django.core.handlers.wsgi.WSGIHandler()
... и так далее наряду с соответствием апачскому виртуальному хосту к каждому сайту:
<VirtualHost *:80>
ServerName mybooks.fr
WSGIScriptAlias / /path/to/site_fr.wsgi
...
</VirtualHost>
Надо надеяться, это ясно :)
В django существует таблица под названием "Сайты". Возможно, можно ли сделать что-то с этим?
Можно, вероятно, сделать это с промежуточным программным обеспечением, которое получает TLD через запрос. META ['HTTP_HOST'] и предварительно ожидает его к request.path; затем Ваш корневой URLconf может выключить к определенному для языка URLconfs на основе TLD как первый сегмент контура URL. Что-то вроде этого (непротестированный!):
class PrependTLDMiddleware:
""" Prepend the top level domain to the URL path so it can be switched on in
a URLconf. """
def process_request(self, request):
tld = request.META['HTTP_HOST'].split('.')[-1]
request.path = "/%s%s" % (tld, request.path)
И в Вашем URLconf:
urlpatterns = patterns('',
url(r'^de/' include('de_urls')),
url(r'^fr/', include('fr_urls')),
url(r'^[^/]+/', include('en_urls'))
)
И затем de_urls.py, fr_urls.py, и en_urls.py мог каждый иметь все URL, в которых Вы нуждаетесь на соответствующем языке.