Django的。如何获取db的主机名

时间:2012-09-08 17:55:40

标签: django django-views host

我正在尝试连接数据库: 在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。或者你可以建议更好的东西。

谢谢

2 个答案:

答案 0 :(得分:2)

[request.get_host()][1]为您提供请求的服务器信息,而不是数据库服务器信息。

要获取数据库信息(假设您只有一个名为 default 的数据库),您可以执行以下操作:

>>> from django.conf import settings
>>> settings.DATABASE['default']['HOST']
>>> 'MyDBServer'
>>> settings.DATABASE['default']['PORT']    
>>> '9999'

答案 1 :(得分:1)

您是否希望为本地和服务器目的使用不同的环境?

如果是,并且您正在使用django,我认为最简单的方法是在那里使用django settings系统和设置数据库主机名。

在服务器上,您可以使用具有不同设置的其他文件,并使用该模块启动服务器。例如,使用带有--settings标志的manage.py工具。

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

编辑:记住开发服务器不适用于生产环境。

顺便说一句,request.get_host() returns a remote hoste name