gpt4 book ai didi

django - 如何将Django Rest Framework默认URL更改为自定义

转载 作者:行者123 更新时间:2023-12-04 13:22:35 25 4
gpt4 key购买 nike

问题几乎说明了一切。

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

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

如何更改默认网址:

default url 127.0.0.1:8000

对于一个自定义的用户,让我们说:
https://api.example.org/v1/

最佳答案

您正在将两个问题混为一谈:

  • 如何在其他域上运行django-rest-framework项目
  • 如何更改API的URL路径

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

    更新:不要忘记从nginx/apache传递 Host header 。下面是一个示例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
    ]

    enter image description here

    关于django - 如何将Django Rest Framework默认URL更改为自定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34231393/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com