1

データベースに接続しようとしています: localhost では、次のようなことができます:

db = MySQLdb.connect(host='127.0.0.1', user="root", passwd="", db="schooldb")

'127.0.0.1'しかし、サーバーでは変数になりたいのですが、残念ながら

   h = request.get_host()
   return HttpResponse(h)

だから私127.0.0.1:8000 の質問は、ポートを切り捨てて残す方法127.0.0.1です。または、より良いものを提案できるかもしれません。

ありがとうございました

4

2 に答える 2

4

[request.get_host()][1]データベースサーバー情報ではなく、リクエストのサーバー情報を提供します。

データベース情報を取得するには ( defaultという名前のデータベースが 1 つしかない場合)、次のようにします。

>>> from django.conf import settings
>>> settings.DATABASES['default']['HOST']
>>> 'MyDBServer'
>>> settings.DATABASES['default']['PORT']    
>>> '9999'
于 2012-09-08T18:07:57.733 に答える
1

ローカル用とサーバー用に異なる環境が必要ですか?

はい、django を使用している場合、最も簡単な方法は、django 設定システムを使用し、そこでデータベースのホスト名をセットアップすることだと思います。

サーバー上では、設定が異なる他のファイルを作成し、そのモジュールでサーバーを起動できます。たとえば、 --settings フラグを指定して manage.py ツールを使用します。

./manage.py runserver --settings=project.settings_production

編集:開発サーバーは本番環境で使用するためのものではないことに注意してください。

ちなみに、request.get_host() はリモート ホスト名を返します

于 2012-09-08T18:09:23.373 に答える