В django веб-приложении, как Вы даете пользователям их собственный субдомен?

Инструмент сравнения по умолчанию в Visual Studio крайне раздражает. Я предлагаю вам использовать альтернативу. WinMerge - мой любимый. Он также имеет возможность игнорировать пробелы (меню Изменить -> Опции -> Сравнить -> Игнорировать все ( под групповым полем «Пробел» вверху)).

См. Использование WinMerge с TFS .

35
задан Chris Lawlor 9 March 2009 в 02:51
поделиться

3 ответа

Можно использовать некоторое пользовательское промежуточное программное обеспечение, чтобы прервать запрос и получить субдомен от него. Следующий код получит субдомен и перенаправление к представлению инвертирование именованного url.

Помещенный это в middleware.py файл в Вашем приложении.

Удостоверяются, что Вы настраиваете промежуточное программное обеспечение в своем settings.py файле.

Удостоверяются, что Вы назвали свое представление в Примечании urls.py

middleware.py

from django.http import HttpResponseRedirect
from django.core.urlresolvers import reverse
import re

subdomain_pattern = re.compile('(?P<subdomain>.*?)\..*?')

class SubdomainMiddleware(object):
    def process_request(self, request):
        match = subdomain_pattern.match(request.get_host())
        subdomain = match.group('subdomain')
        redirect_url = reverse('groups_detail', args=[subdomain])
        return HttpResponseRedirect(redirect_url)

urls.py

from django.conf.urls.defaults import *

urlpatterns = patterns('',
    url(r'^groups/(?P<name>.+)/ 

: этот код не тестируется.

Перенаправление может изменить появление URL. Если Вы хотите избежать этого, просто назовите связанное представление, получите его результат и возвратите его в HttpResponse().

, 'groups.views.detail', {}, name='group_detail'), )

: этот код не тестируется.

Перенаправление может изменить появление URL. Если Вы хотите избежать этого, просто назовите связанное представление, получите его результат и возвратите его в HttpResponse().

24
ответ дан Soviut 10 October 2019 в 13:13
поделиться

Необходимо обработать это через веб-сервер. Если у Вас есть URL Django как...

/users/<username>/

... тогда перезапись использования управляет в веб-сервере к карте <username>.domain.com к domain.com/users/<username>/.

при использовании Apache можно читать здесь . Иначе каждый веб-сервер имеет их собственные конвенции, но все будут поддерживать понятие перезаписей URL.

2
ответ дан Daniel Naab 10 October 2019 в 13:13
поделиться

См. этот другой альтернативный вариант настройки сервера приложений

0
ответ дан 27 November 2019 в 15:46
поделиться
Другие вопросы по тегам:

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