如何使用 Django 获取主机服务器的名称?
如何使用 Django 获取主机服务器的名称?
我需要托管服务器的名称而不是客户端名称?
How to use Django to get the name for the host server?
I need the name of the hosting server instead of the client name?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(9)
我通常在
settings.py
中放置类似的内容:I generally put something like this in
settings.py
:如果您有请求(例如,这是在视图内),您可以查看
request.get_host()
为您提供完整的本地名称(主机和端口),同时考虑反向代理标头(如果有)。如果您没有请求,则应在设置中的某个位置配置主机名。在很多情况下,仅查看系统主机名可能会产生歧义,其中虚拟主机是最常见的。If you have a request (e.g., this is inside a view), you can look at
request.get_host()
which gets you a complete locname (host and port), taking into account reverse proxy headers if any. If you don't have a request, you should configure the hostname somewhere in your settings. Just looking at the system hostname can be ambiguous in a lot of cases, virtual hosts being the most common.如果您需要获取
http(s)://hostname/
,您可以使用以下内容:request.build_absolute_uri('/')
列出了所有有用的方法此处
If you need to get
http(s)://hostname/
you can use the following:request.build_absolute_uri('/')
All useful methods are listed here
只需添加到 @Tobu 的回答即可。
如果你有一个请求对象,并且你想知道协议(即http / https),你可以使用 request.scheme (按照@RyneEverett 的评论)。
或者,您可以执行以下操作(原始答案如下):
因为 is_secure() 返回
True
。Just add to @Tobu's answer.
If you have a request object, and you would like to know the protocol (i.e. http / https), you can use request.scheme (as suggested by @RyneEverett's comment).
Alternatively, you can do (original answer below):
Because is_secure() returns
True
if request was made with HTTPS.尝试 os.environ.get('HOSTNAME')
Try
os.environ.get('HOSTNAME')
如果你有一个请求对象,你可以使用这个函数:
If you have a request object, you can use this function:
基本上,您可以在视图/视图集中使用
request.get_host()
。它返回Basically, You can take with
request.get_host()
in your view/viewset. It returns<ip:port>
为了获取我的 django 服务器名称,我尝试了这个
To get my django server name I tried this