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的数据库),您可以执行以下操作:

>>> 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 回答