Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >API请求说找不到

API请求说找不到
EN

Stack Overflow用户
提问于 2021-10-20 18:59:09
回答 1查看 49关注 0票数 1

尝试从django rest框架获取产品详细信息。然而,无论何时尝试:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
  baseurl = "http://127.0.0.1:8000"
  httpHeaders = new HttpHeaders({'Content-Type': 'application/json'})

  constructor(private http: HttpClient) { }

  getAllProducts(): Observable<any>{
    return this.http.get(this.baseurl +'/product/',
    {headers: this.httpHeaders})
  }
  getProductDetails(slug: string): Observable<any>{
    return this.http.get<any>(`${this.baseurl}/product/${slug}/`, {headers: this.httpHeaders})
  }

我收到一个错误,说:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Not Found: /product/[object Object]/
[20/Oct/2021 21:54:32] "GET /product/[object%20Object]/ HTTP/1.1" 404 23

django后端视图:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
class Product(generics.RetrieveUpdateDestroyAPIView):
    lookup_field = "slug"
    queryset = Product.objects.all()
    serializer_class = ProductSerializer

django url:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
urlpatterns = [
    path("", views.ProductListView.as_view(), name="product"),
    path("<slug>/", views.Product.as_view(), name="product_detail"),
]
EN

回答 1

Stack Overflow用户

发布于 2021-10-20 19:43:19

在你的Django's url.py中,你应该有一些东西。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
path('api/product/', some_view),
path('api/product/<slug>', some_other_view),

请注意接口的前缀。

请不要将baseURL作为完整url提供,而应创建一个代理配置文件url,如下所示:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
{
    "/api/*": {
        "target": "http://127.0.0.1:8000",
        "secure": false,
        "logLevel": "debug"
    }
}

请注意,前缀api -这是必不可少的-可以是其他东西,但它是您的代理使用的契约。

然后更新你的angular.json

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
    "serve": {
      "builder": "@angular-devkit/build-angular:dev-server",
      "options": {
           "browserTarget": "yourapp:build",
           "proxyConfig": "src/proxy.conf.json"
      },
      "configurations": {
        "production": {
          "browserTarget": "yourapp:build:production",
          "proxyConfig": "src/proxy.conf.json"
        },
        "development": {
          "browserTarget": "yourapp:build:development",
          "proxyConfig": "src/proxy.conf.json"
        }
      },
      "defaultConfiguration": "development"
    },

现在,如果您使用ng serve,您可以运行:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
ng serve --proxy-config src/proxy.conf.json

最后,在您的Angular服务中作为基本url所需的全部内容是:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
this.baseurl =  '/api/product'; 

现在你可以调用你的任何服务http方法,因为Angular从代理知道你的服务器的配置,并且Django提供具有相同前缀的路径。请记住,Django要求POST请求使用正斜杠,因此您可能需要根据Django Documentationsettings.py中配置APPEND_SLASH

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69655319

复制
相关文章
使用 RequireJS 加载 AngularJS
AngularJS 目前的版本没有遵循 Javascript 约定的 AMD 模块化规范, 因此使用 RequireJS 加载 AngularJS 时需要一些额外的配置。
beginor
2020/08/10
1.3K0
使用 RequireJS 加载 AngularJS
如何改善应用程序在 Linux 中的启动时间
大多数 Linux 发行版在默认配置下已经足够快了。但是,我们仍然可以借助一些额外的应用程序和方法让它们启动更快一点。其中一个可用的这种应用程序就是 Preload。它监视用户使用频率比较高的应用程序,并将它们添加到内存中,这样就比一般的方式加载更快一点。因为,正如你所知道的,内存的读取速度远远快于硬盘。Preload 以守护进程的方式在后台中运行,并记录用户使用较为频繁的程序的文件使用相关的统计数据。然后,它将这些二进制文件及它们的依赖项加载进内存,以改善应用程序的加载时间。简而言之,一旦安装了 Preload,你使用较为频繁的应用程序将可能加载的更快。
用户8639654
2021/10/15
3.8K0
解决angularjs图片加载失败
angularjs图片加载失败,本文的angularjs图片加载失败中的angularjs指的是angular2、angular4。
全栈程序员站长
2022/09/02
1.5K0
Angularjs动态加载ECharts(二)
今早操作的时候又有了问题,我需要做的是select下拉框选择时间,然后将对应时间的数据显示到ECharts上 如图所示
治电小白菜
2020/08/25
7370
Angularjs动态加载ECharts(二)
tomcat配置多域名站点启动时项目重复加载多次
在tomcat中配置多个Host的时候, 出现项目重复启动多次的情况. 刚开始以为是spring boot发布项目的时候自带了一个tomcat引起的, 后来发现不是
用户7798898
2020/09/27
1.4K0
tomcat配置多域名站点启动时项目重复加载多次
Angularjs动态加载ECharts(一)
今早发现,directive写的echarts组件,虽然能够获取到Controller中的数据,但是当我使用$http请求到的数据,想传到directive却总是获取不到,知道这是异步问题,图表加载后,数据才请求到,所以图表加载不了数据 解决方法 使用ng-if,判断,如果有数据才显示,完美解决 <realtem-data ng-if="data" id="temdata" legend="legend" item="item" data="data"></realtem-data> 其余代码 con
治电小白菜
2020/08/25
9410
Angularjs动态加载ECharts(一)
按需加载 AngularJS 的 Controller
AngularJS 通过路由支持多视图应用, 可以根据路由动态加载所需的视图, 在 AngularJS 的文档中有详细的介绍, 网上也有不少教程, 就不用介绍了!
beginor
2020/08/10
1.2K0
springboot启动时是如何加载配置文件application.yml文件
今天启动springboot时,明明在resources目录下面配置了application.yml的文件,但是却读不出来,无奈看了下源码,总结一下springboot查找配置文件路径的过程,能力有限,欢迎各位大牛指导!!!
全栈程序员站长
2022/10/29
1.2K0
springboot启动时是如何加载配置文件application.yml文件
AngularJS中的按需加载ocLazyLoad
初学者,有不足的地方希望各位指出 一、前言     ocLoayLoad是AngularJS的模块按需加载器。一般在小型项目里,首次加载页面就下载好所有的资源没有什么大问题。但是当我们的网站渐渐庞大起来,这样子的加载策略让网速初始化速度变得越来越慢,用户体验不好。二来,分模块加载易于团队协作,减低代码冲突。   二、按需加载的对象 各个Controller模块、Directive模块、Server模块、template模板,其实这些都是一些 .js文件或者 .html文件 。     三 、按需加载的场
庞小明
2018/03/07
1.7K0
Spring Boot 在启动时进行配置文件加解密
Spring Boot Application 事件和监听器 寻找到application.yml的读取的操作。 从spring.factories 中查看到 # Application Listeners org.springframework.context.ApplicationListener=\ org.springframework.boot.context.config.ConfigFileApplicationListener,\ ConfigFileApplicationListener
云扬四海
2020/06/16
1.8K0
AngularJs之路由配置(一)
我们新建好home组件后在app-routing.modules.ts中配置路路径
黄林晴
2019/01/10
9060
外包精通--在 ArgoCD 中加载现有的 Helm 应用程序
GitOps 是为云原生应用程序实施持续部署的推荐方式。它通过在部署应用程序时最大限度地减少手动错误来帮助组织,因为 Git 将是唯一的真实来源。因此,可以轻松地跨团队跟踪更改。
Godev
2023/05/09
3.2K0
AngularJs之路由配置(二)
我们使用 <a [routerLink]="['/prouct',1]" >商品详情</a>
黄林晴
2019/01/10
7490
SpringBoot2.x基础篇:应用程序在启动时访问启动项参数
SpringBoot应用程序在启动时,我们可以传递自定义的参数来进行动态控制逻辑,比如我们使用--debug启动参数时就会使用debug启动应用程序,在控制台打印一些调试日志信息。
恒宇少年
2020/03/20
2.5K0
SpringBoot2.x基础篇:应用程序在启动时访问启动项参数
angularJS配合bootstrap动态加载弹出提示内容
该文章介绍如何使用AngularJS和Bootstrap来动态加载弹出提示内容。文章首先介绍了Bootstrap的弹出提示功能,然后使用AngularJS自定义了一个指令,给任意元素加上了popover属性,并可以根据情况改变popover的content内容。最后,文章使用这个指令实现了一个简单的示例,并返回了相关的HTML代码。
MJ.Zhou
2018/01/04
1.6K0
高效快速地加载 AngularJS 视图|TW洞见
今日洞见 文章作者、部分图片来自ThoughtWorks:陈计节。 本文所有内容,包括文字、图片和音视频资料,版权均属ThoughtWorks公司所有,任何媒体、网站或个人未经本网协议授权不得转载、链接、转贴或以其他方式复制发布/发表。已经本网协议授权的媒体、网站,在使用时必须注明"内容来源:ThoughtWorks洞见",并指定原文链接,违者本网将依法追究责任。 当AngularJS应用程序变大时,很多问题就开始显现出来了,比如多层级视图的加载问题。如果在子视图显示之前没有预加载,则可能在需要展示时发生视
ThoughtWorks
2018/04/17
1.2K0
高效快速地加载 AngularJS 视图|TW洞见
springboot如何加载应用程序
上篇《ClassLoader#getResource与Class#getResource的差别》[1]了解原生java获取资源方式以及方式之间的区别。
码农戏码
2022/11/18
1.1K0
springboot如何加载应用程序
OC底层探索16 -应用程序加载OC底层探索16 -应用程序加载
源文件-预编译-编译-汇编-链接-可执行文件 - dyld加载 链接: dyld链接器 - 动静态库(加载UIkit、FOunation库、libSystem) -读到 内存(表)-加载主程序中 -link(链接主程序-链接动态库)-库的初始化- main()
用户8893176
2021/08/09
4020
OC底层探索16 -应用程序加载OC底层探索16 -应用程序加载
Angular 路由配置(预加载配置,懒加载配置)
(1)RouterModule对象提供了两个静态的方法:forRoot()和forChild()来配置路由信息。
玖柒的小窝
2021/11/04
3.2K0
angularJS学习之路(二十二)---模块加载---config
这种方法带有两个参数,一个是模板名,一个是依赖注入列表,数组为空,表示当前注册的模板不需要依赖关系
wust小吴
2019/07/08
1.2K0

相似问题

应用程序启动时AngularJS加载数据

12

如何在应用程序启动时加载配置?

11

WinJS在启动时加载配置数据

14

Angular2-在应用程序启动时加载配置数据

213

启动时加载RabbitMQ配置

15
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文