当前位置: 首页 > 知识库问答 >
问题:

如何将Django Rest框架的默认url更改为自定义url

邓禄
2023-03-14

问题几乎说明了一切。

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

我正在使用HyperlinkedModels,在开发过程中,一切似乎都正常工作。将应用程序移动到具有自定义url的其他服务器会给我带来问题。

如何更改默认url:

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

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

共有1个答案

傅朗
2023-03-14

你把两个问题混在一起:

  1. 如何在不同域上运行django rest框架项目
  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;
    }

}

第二个(路径、装入点)在url中设置。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
]
 类似资料:
  • 我已经这样配置了我的axios 在我的组件中,我作为 现在,上面的方法可以工作了,但是我想在不影响全局基本URL的情况下更改,这样在我的组件中,我就可以在没有APIendpoint的情况下简单地使用它 我已经试过了 我该怎么办?

  • 在Django REST框架中。默认情况下,它使用-/?搜索=在URL中搜索任何内容。例如http://127.0.0.1:8000/api/branches/?search=RTGS 此url已成功获取结果。但我需要将URL更改为http://127.0.0.1:8000/api/branches/autocomplete?q=RTGS 在留档中,https://www.django-rest-

  • 问题内容: 我正在使用weblogic和oracle对Web应用程序进行编程。数据源是通过JNDI配置的,具有受限制的数据库用户,该用户可以DML到表中,但不能DDL。您可能会猜到,该用户不是这些表的所有者,但已授予该用户访问权限。 假设他是GUEST_USER 该应用程序正在使用JPA + EclipseLink,并且已经定义了许多实体。我不想在每个实体类中都写入要更改架构的属性。我已经尝试过使

  • 我尝试在我的项目中集成Spring Security SAML。我体验过okta的演示。我知道URI /saml/SSO用于使用Idp中的SAML响应。但是我在我的Idp中注册了一个与URI /saml/SSO不同的消费-uri,它不能更改。 因此,我必须找到一种方法来更改默认的SSO进程URL。 我想我需要在下一步做一些改变: 更改FilterChainProxy 之后,当我尝试登录时,过滤器链

  • 问题内容: 然后,我想更改用户的默认架构(用户为) 我这样做:( 查询成功返回,但没有结果)。 当我尝试给出错误 虽然效果很好。 尝试为用户更改默认架构有什么问题? 问题答案: 我认为您需要重新登录。随着 你改变 运行时配置变量的会话默认值 同样来自 手册: 特定于角色的变量设置仅在登录时生效; 但是不要将更改应用于当前会话。如果要立即更改,请使用: 它将在会话级别更改路径

  • 单击“运行”时收到此消息: 错误消息“AndroidGradle插件需要Java11才能运行。您目前正在使用Java1.8”来更改设置工作中的格拉德尔JDK。但只适用于那个项目。当我创建一个新项目时,Android Studio会自动再次使用默认的1.8。 我有11个可用的,因为它不会自动使用。我尝试的事情:在这里将JAVA_HOMEenv更改为JDK 11的位置,但仍然得到相同的错误。 无效缓存