1

API をモックアップしようとしていますが、Django 内で別のアプリを使用して、さまざまな Web サービスを表しています。jsonアプリ A に、アプリ B に対応するリンクを取り込み、応答を解析してもらいたいと考えています。

アプリ B への URL を動的に構築して、開発中のコードをテストし、本番環境に入る前にあまり変更しないようにする方法はありますか? 問題は、リンクの一部として localhost を使用できないことです。

私は現在 urllib を使用していますが、最終的にはハックを減らし、Web サービスのRESTパラダイムにより適したものにしたいと考えています。

4

2 に答える 2

1

次のようなことができます

if settings.DEBUG:
  other = "localhost"
else:
  other = "somehost"

そして、other を使用して外部 URL を作成します。通常、DEBUG モードでコーディングし、非 DEBUG モードでデプロイします。settings.DEBUG は「標準」の Django のものです。

于 2008-09-23T21:51:15.323 に答える
1

「Django内の個別のアプリ」とは、共通の設定を持つ個別のアプリケーションを意味しますか? つまり、同じ Django サイト (またはプロジェクト) 内の 2 つのアプリケーションですか?

その場合、{% url %} タグは、設定ファイルにリストされているアプリのいずれかへの適切な絶対 URL を生成します。

別々の設定を持つ別々の Django サーバーがある場合、URI 設計の標準的なインターネットの問題があります。URI は、ホスト名の変更のみで一貫性を保つことができます。

- http://localhost/some/path - development

- http://123.45.67.78/some/path - someone's laptop who's running a server for testing

- http://qa.mysite.com/some/path - QA

- http://www.mysite.com/some/path - production

ホスト情報を提供する必要がないため、すべてのリンクは<A HREF="/some/path/">.

通常、これが最も効果的です。誰かのランダムなラップトップをテストサーバーにすることができます。ifconfig を使用して IP アドレスを取得できます。

于 2008-09-23T22:52:54.130 に答える