質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Django

DjangoはPythonで書かれた、オープンソースウェブアプリケーションのフレームワークです。複雑なデータベースを扱うウェブサイトを開発する際に必要な労力を減らす為にデザインされました。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

2回答

4112閲覧

開発環境と本番環境とで、urls.pyを切り替えたい

退会済みユーザー

退会済みユーザー

総合スコア0

Django

DjangoはPythonで書かれた、オープンソースウェブアプリケーションのフレームワークです。複雑なデータベースを扱うウェブサイトを開発する際に必要な労力を減らす為にデザインされました。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

2グッド

2クリップ

投稿2016/09/02 14:29

Djangoで、settings.pyを、開発環境と本番環境で変えたい時、
settings_production.py
という本番環境用の設定ファイルを作っておいて、本番環境においては、
export DJANGO_SETTINGS_MODULE=example.settings_production
というコマンドでそれを適用させる方法があります。
https://docs.djangoproject.com/ja/1.10/topics/settings/#designating-the-settings

同じような考え方で、urls.pyを、開発環境と本番環境とで簡単に変える方法はないでしょうか?

現状のurls.pyは、下記のとおりです。

python

1# urls.py 2urlpatterns = [ 3 url(r'^', include('example.urls')), 4 url(r'^admin/', admin.site.urls), 5] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT) # ここの部分を本番環境では適用したくない。

上記の、「+ static ...」の部分は、開発環境(manage.py runserverで起動)で画像を表示するために必要なのですが、本番環境ではサーバー(nginx)の環境のせいなのか、この部分があるとうまく動きません。(なぜか、settingsでDEBUG = TRUEにするとうまく動くのですが。)
今の対応としては、上記のurls.pyをとりあえず本番環境にアップした上で、その都度、不要な部分をコメントアウトしています。
もっとスマートな対応方法がないものかと考え、質問させていただきました。

良い方法をお分かりの方、ご教示頂ければ幸いです。
よろしくお願いいたします。

av-, Youhei-Sakura👍を押しています

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

こちらもDjango初心者です。
Django-Debug-Toolbarのインストール手順部分にsettings.pyのDEBUGに絡めるいい感じのコードがありました。
ご参考になれば。

python

1from django.conf import settings 2from django.conf.urls import include, url 3 4# urls.py 5urlpatterns = [ 6 url(r'^', include('example.urls')), 7 url(r'^admin/', admin.site.urls), 8] 9 10if settings.DEBUG: 11 urlpatterns += [static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)]

DjangoDebugToobar:instllation

投稿2016/11/16 16:39

uni8inu

総合スコア127

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

ベストアンサー

settings.pyを分けているのならそこに何か変数を書いておいて
urls.pyでその変数を見て処理を分ければできると思いますが、
何か使い方を間違っている気がします。

古いバージョンですが日本語ドキュメントを参考に載せておきます
http://docs.djangoproject.jp/en/latest/howto/static-files.html#id7
「ローカル環境でのファイル公開は DEBUG が True の時にだけ動作 します。」

投稿2016/09/19 16:15

kokardy

総合スコア781

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2016/09/23 12:37

ご回答いただき、ありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問