【问题标题】:How to change the Django Rest Framework's default url to a custom如何将 Django Rest Framework 默认 url 更改为自定义
【发布时间】:2016-03-17 19:55:12
【问题描述】:

问题说明了一切。

例如将默认 url (http://127.0.0.1:8000) 更改为自定义 (https://api.example.com/v1)

我正在使用 HyperlinkedModels,一切似乎都在开发中正常工作。使用自定义 url 将应用程序移动到另一台服务器给我带来了问题。

如何更改默认网址:

对于自定义的,比方说:

https://api.example.org/v1/

【问题讨论】:

    标签: django django-rest-framework


    【解决方案1】:

    您将两个问题合二为一:

    1. 如何在不同的域上运行 django-rest-framework 项目
    2. 如何更改 API 的 URL 路径

    要回答第一个问题,我会说,“去做吧”。 Django 的reverse 使用请求的域来构建绝对 URL。

    更新:不要忘记从 nginx/apache 传递 Host 标头。下面是一个示例 nginx 配置:

    server {
    
        location / {
            proxy_set_header        Host $host;
            proxy_set_header        X-Real-IP $remote_addr;
            proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header        X-Forwarded-Proto $scheme;
            proxy_pass              http://127.0.0.1:8000;
        }
    
    }
    

    第二个(路径,挂载点)设置在urls.py:

    from django.conf.urls import url, include
    from django.contrib import admin
    
    from rest_framework import routers
    
    from quickstart import views
    
    router = routers.DefaultRouter()
    router.register(r'users', views.UserViewSet)
    router.register(r'groups', views.GroupViewSet)
    
    
    urlpatterns = [
        url(r'^admin/', admin.site.urls),
        url(r'^api-auth/', include('rest_framework.urls', namespace='rest_framework')),
        url(r'^v1/', include(router.urls)), # <-------------- HERE
    ]
    

    【讨论】:

    • 感谢发帖。即使使用 gunicorn/nginx 设置,这也能工作吗?这是我拥有它的一种方式,但它仍然显示“127.0.0.1”。 api.nutrislots.com/api
    • 哦,我明白了。很可能您在 nginx 配置中丢失了 proxy_set_header Host $host; 参数。我已经使用示例 nginx 配置更新了答案。
    • 它甚至不是 drf... 我希望我能+1 * 5。谢谢暮光。
    • 如果我使用 apache2 而不是 nginx 会怎样?如何解决这个问题?
    • @DenisSoto 你有/试过什么配置?我对 apache 不是很好,但这个指令看起来很有希望 ProxyPreserveHost
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-07
    • 1970-01-01
    • 2015-04-14
    • 2020-08-09
    • 1970-01-01
    • 2011-08-01
    相关资源
    最近更新 更多