私は私のDjangoプロジェクトに2つのアプリを公開しています:公開アプリと管理アプリ(ではなく、のdjangoの組み込み管理サイト)。パブリックサイトを指すドメイン名と、管理サイトを指す別のドメイン名が必要です。 (つまり、/index.htmlルートは、ドメイン名に応じて別のアプリケーションのビューを指します)。各アプリケーションには独自のURLconfがあり、両方ともメインのURLconfに含まれています。これを行う最善の方法は何ですか?Django-per-domain URLConf?
1
A
答えて
3
ここにはさまざまな方法がありますが、具体的な制約に応じていくつかの方法があります。
ライトハック:各ドメインのHTTPサーバー構成でブラックリストやホワイトリストのURL
モンキーパッチそれは時間に決定的に利用できないため、URLのルータは、request['META']['HTTP_HOST']をチェックしますURLが設定されています
2 Djangoインスタンス:メイク2設定ファイル:
1サイトあたりのスクリプトをURLを確認し、
- は、ドメイン
例ごとに、このような
ラン1つのDjangoのインスタンスとしてサイトごとに1つの設定を行い、ファイルをセッティング:
management_settings.py
from settings import *
ROOT_URLCONF='management_urls.py'
public_settings.py
from settings import *
ROOT_URLCONF='public_urls.py'
そしてそれぞれに1台のDjangoのサーバーを実行します。 --settingsのような管理コマンド用のスイッチを使用することを忘れないでください:
# run public
./manage.py runserver --settings public_settings
# run management
./manage.py runserver --settings management_settings
11
あなたがで
たとえば、独自のホストのミドルウェアを使用することができます。 https://code.djangoproject.com/wiki/MultiHostMiddleware
settings.py
HOST_MIDDLEWARE_URLCONF_MAP = {
# Control Panel
"www.example.com": "webapp.sites.example.urls",
}
multihost.py
from django.conf import settings
from django.utils.cache import patch_vary_headers
class MultiHostMiddleware:
def process_request(self, request):
try:
request.META["LoadingStart"] = time.time()
host = request.META["HTTP_HOST"]
if host[-3:] == ":80":
host = host[:-3] # ignore default port number, if present
if settings.HOST_MIDDLEWARE_URLCONF_MAP.has_key(host):
request.urlconf = settings.HOST_MIDDLEWARE_URLCONF_MAP[host]
request.META["MultiHost"] = str(request.urlconf)
else:
request.META["MultiHost"] = str(settings.ROOT_URLCONF)
except KeyError:
pass # use default urlconf (settings.ROOT_URLCONF)
def process_response(self, request, response):
if request.META.has_key('MultiHost'):
response['MultiHost'] = request.META.get("MultiHost")
if request.META.has_key('LoadingStart'):
_loading_time = time.time() - int(request.META["LoadingStart"])
response['LoadingTime'] = "%.2fs" % (_loading_time,)
if getattr(request, "urlconf", None):
patch_vary_headers(response, ('Host',))
return response
関連する問題
- 1. ジャンゴ:のURLconf
- 2. 変数とDjango URLConf
- 3. DjangoでURLconfに日付を渡す
- 4. Djangoでのパーセント記号URLConf regex
- 5. DjangoのURLconfを理解する
- 6. Djangoの日付変換とURLconf
- 7. のURLconfは、ここで類似したURL
- 8. 私は、次のURLconfによってレンダリングされた登録フォーム持って
- 9. regex Djangoのurlconfで、ビューパラメータとして一致を送信せずに "OR"を照合します。
- 10. Django urlconfのパフォーマンス:ネストされたパターングループは助けてくれるのでしょうか?
- 11. Django:私のプロジェクトurlconfでアプリケーション提供のURLを上書きするにはどうすればいいですか?
- 12. Djangoのデータベースルーターのエラーは:私は私のコードでこれをやったときに
- 13. 私は、全くそのような日付または日付+時間を何時間を渡すんできるようにしたいと思い、私のURLconfでDjangoの
- 14. クラスベースビューをデコレートする2つの方法の違いは何ですか?
- 15. Django:フォームラベルにURLリンクを含めるには
- 16. ユニットがdjangoの抽象ビューをテストしています
- 17. モジュールはありませんbackends.default.urls
- 18. djangoテンプレートでhref属性を使用する方法
- 19. 配備時にDjango ViewDoesNotExistエラーが発生する
- 20. djangoで値を割り当てる方法
- 21. DjangoのURLのタグが
- 22. Django-CMSでは、管理コマンドから名前付きapphook URLを解決する方法はありますか?
- 23. djangoでカスタムhandler404を正しく設定する方法は?
- 24. DjangoのURLconft
- 25. DjangoがURLパターンを見つけることができません
- 26. ジャンゴ「URL」テンプレートタグエラー
- 27. DjangoのURL.confのURLを照合できませんか?
- 28. int型パラメータ付きDjango HttpResponseRedirect
- 29. djangoプロジェクトのurlsフォルダにURLパターンを含めることを試みています
- 30. Django: 'module'オブジェクトに 'index'属性がありません