当前位置:  开发笔记 > 编程语言 > 正文

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

如何解决《如何将DjangoRestFramework的默认URL更改为自定义》经验,为你挑选了1个好方法。

问题几乎全是.

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

我正在使用HyperlinkedModels,一切似乎都在开发中正常工作.使用自定义URL将应用程序移动到另一台服务器会给我带来麻烦.

如何更改默认网址:

默认网址127.0.0.1:8000

对于一个自定义的,让我们说:

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



1> twil..:

您将两个问题混合在一起:

    如何django-rest-framework在不同的域上运行项目

    如何更改API的URL路径

要回答第一个,我会说,"就这么做".Django reverse使用请求的域来构建绝对URL.

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

在此输入图像描述

推荐阅读
刘美娥94662
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有