首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何使用uuid而不是id执行嵌套路由drf-extensions django

在使用DRF-extensions和Django框架执行嵌套路由时,可以使用UUID而不是ID来标识资源。UUID(通用唯一标识符)是一种标识符,它在全球范围内保证唯一性,可以用作数据库表中的主键。

以下是使用UUID而不是ID执行嵌套路由的步骤:

  1. 首先,确保在Django项目中安装了DRF-extensions库。可以通过运行以下命令来安装:
  2. 首先,确保在Django项目中安装了DRF-extensions库。可以通过运行以下命令来安装:
  3. 在Django项目的urls.py文件中,导入所需的模块和函数:
  4. 在Django项目的urls.py文件中,导入所需的模块和函数:
  5. 创建一个路由器对象,用于处理主资源的路由:
  6. 创建一个路由器对象,用于处理主资源的路由:
  7. 注册主资源的路由。这里假设主资源是"main":
  8. 注册主资源的路由。这里假设主资源是"main":
  9. 创建一个嵌套路由器对象,用于处理嵌套资源的路由。这里假设嵌套资源是"nested":
  10. 创建一个嵌套路由器对象,用于处理嵌套资源的路由。这里假设嵌套资源是"nested":
  11. 在嵌套路由器上启用UUID路由。这将使用UUID而不是ID来标识嵌套资源:
  12. 在嵌套路由器上启用UUID路由。这将使用UUID而不是ID来标识嵌套资源:
  13. 这里的"NestedUUIDViewSet"是处理嵌套资源的视图集。
  14. 在项目的urls.py文件中,包含路由器的URL配置:
  15. 在项目的urls.py文件中,包含路由器的URL配置:

现在,可以使用UUID而不是ID来执行嵌套路由。例如,要获取特定主资源下的特定嵌套资源,可以使用以下URL:

代码语言:txt
复制
/api/main/{main_uuid}/nested/uuid/{nested_uuid}/

这里的"{main_uuid}"是主资源的UUID,"{nested_uuid}"是嵌套资源的UUID。

请注意,以上答案中没有提及具体的腾讯云产品和产品介绍链接地址,因为要求答案中不能提及亚马逊AWS、Azure、阿里云、华为云、天翼云、GoDaddy、Namecheap、Google等流行的一些云计算品牌商。如需了解腾讯云相关产品和产品介绍,请访问腾讯云官方网站。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Django+Vue开发生鲜电商平台之11.首页、商品数量、缓存和限速功能开发

drf-extensions配置缓存 2.配置Redis缓存 四、DRF通过throttling设置api的访问速率 青,取之于蓝青于蓝;冰,水为之寒于水。...三、DRF缓存设置 1.使用drf-extensions配置缓存 在一般情况下,将一些经常访问的数据放入缓存中,可以加快网页响应的速度。...使用之前需要通过命令pip install drf-extensions -i https://pypi.douban.com/simple安装,我们使用的主要是CacheResponseMixin,主要适用于...在很多时候,我们还需要设置缓存的过期时间,不是无限制地保留缓存,此时需要在settings.py中进行配置如下: # drf-extensions配置 REST_FRAMEWORK_EXTENSIONS...对于一般情况而言,公开数据可以使用缓存,需要验证才能访问的私有数据则尽量不要使用缓存,可以根据自己的需要对不同的数据进行缓存配置。

2.2K10

第 12 篇:加缓存为接口提速

要知道查询数据库的操作相对而言是比较缓慢的,直接从内存中直接读取数据就会快很多,因此缓存系统应运而生。...配置 django 缓存,最重要的就是选择一个缓存服务,即缓存结果存储和读取的地方。本项目中我们决定开发环境使用本地内存(Local Memory)缓存服务,线上环境使用 Redis 缓存。...至于如何启动 Redis 服务,请参考教程最后的 Redis 服务部分。...drf-extensions Cache django 的缓存框架比较底层,drf-extensionsdjango 缓存框架的基础上,针对 django-rest-framework 封装了更多缓存相关的辅助函数和类...但是在更为复杂的场景下,不能简单使用 URL 作为 key,比如即使是同一个 API 请求,已认证和未认证的用户调用接口得到的结果是不一样的,所以 drf-extensions 使用 KeyConstructor

1.1K40

美多商城项目(五)

我宁愿死于激情不是无聊。 小闫语录: 赵鑫珊在《哲学与当代世界》中曾说过这样一句话『自古至今,人类最伟大的精神产品(科学的,艺术的和哲学的),无一不是出自一腔激情』。...并且在查询出数据,返回结果之前,先将查询的结果存到缓存中,便于下次使用。 2.2使用缓存 在Django REST framework中使用缓存,可以通过 drf-extensions扩展来实现。...装饰器的作用:访问接口的时候,会先到缓存中进行获取,没有的话才会执行接口函数。...使用drf-extensions提供的扩展类 drf-extensions扩展对于缓存提供了三个扩展类: ListCacheResponseMixin 用于缓存返回列表数据的视图,与ListModelMixin...因为我们序列化时需要的是省市县的名称,所以我们在嵌套序列化的时候使用StringRelatedField方法。系统自动生成的时候,默认是序列化为主键,我们需要对其进行更改。

1.2K30

Django REST framework+Vue 打造生鲜超市(十二) 十三、首页、商品数量、缓存和限速功能开发

#在serializer里面调用serializer的话,就要添加一个参数context(上下文request),嵌套serializer必须加 # serializer...:http://chibisov.github.io/drf-extensions/docs/#caching ?...(1)安装 pip install drf-extensions (2)使用方法 导入 from rest_framework_extensions.cache.mixins import CacheResponseMixin...,每次重启之后就会失效 13.7.drf配置redis缓存 使用django-redis第三方库:http://django-redis-chs.readthedocs.io/zh_CN/latest/...为了防止爬虫对服务器造成的重大压力,对数据进行访问速率限制就显得非常的重要了 官网使用说明:http://www.django-rest-framework.org/api-guide/throttling

1.9K70

十三、首页、商品数量、缓存和限速功能开发

#在serializer里面调用serializer的话,就要添加一个参数context(上下文request),嵌套serializer必须加 # serializer...:http://chibisov.github.io/drf-extensions/docs/#caching  (1)安装 pip install drf-extensions (2)使用方法...,每次重启之后就会失效 13.7.drf配置redis缓存 使用django-redis第三方库:http://django-redis-chs.readthedocs.io/zh_CN/latest/...#id8    (文档说明)  (1)安装 pip install django-redis (2)settings # redis缓存 CACHES = { "default": {...设置api的访问速率 为了防止爬虫对服务器造成的重大压力,对数据进行访问速率限制就显得非常的重要了 官网使用说明:http://www.django-rest-framework.org/api-guide

92100

Django ORM

不用直接使用sql语言; python与MySQL映射关系 Python 映射 MySQL 类 -------> 表 对象 -------> 表里面的数据 对象点属性 -------> 字段对应的值...,产生一个文件,用来记录 2.真正的执行数据库迁移操作,同步到数据库 python3 manage.py migrate # 执行完会在数据库中产生Django所需的依赖表,自动创建的 # 自己创建的表...,会自动添加id,比如author_id,不需要写_id,orm自动补充 ORM自动创建书籍和作者的第三张表,只有多对多关系表被单独创建出来 Django请求生命周期流程图 路由匹配 路由:通俗理解为除去...path支持匹配的数据类型只有str,int, slug, uuid四种。..., id): # 展示某篇文章 在使用path和re_path方法设计urls需注意: url中的参数名要用尖括号,不是圆括号; 匹配模式的最开头不需要添加斜杠/,但建议以斜杠结尾; 使用re_path

4K10

Django路由

三、路由层 3.1路由匹配 url第一个参数是一个正则表达式只要该正则表达式能够匹配到内容,就会立刻执行后面的视图函数 不再往下继续匹配了,Django中进行路由匹配时先直接对接收到的url进行一次路由匹配...,在Django中所有的app都建立自己独立的urls.py,这时总路由不在做匹配的活,仅仅是做任务分发(请求来了之后总路由不做对应关系,只负责询问你要访问哪个app的功能然后将请求转发给对应的app...3.9Django1.x和2.x的版本的路由层区别 1.Django2.x中默认的url通过path接收,path的第一个输入值不是正则表达式,里面写的是什么就按什么匹配。...//', views.year_archive), # 相当于一个有名分组,其中int是django提供的转换器,相当于正则表达式,专门用于匹配数字类型,year...uuid,匹配格式化的uuid,如 075194d3-6885-417e-a8a8-6c931e272f00。

1.3K21

DRF-认证权限频率

目录 DRF-认证权限频率 认证 登录接口 认证 权限 作用 使用 频率 作用 使用 认证权限频率+五个接口 模型 视图 序列化器 认证权限频率类 配置文件 路由 DRF-认证权限频率 前后端混合开发...uuid_str = uuid.uuid4() # print(type(uuid_str)) # ...admin.site.urls), path('',include(router.urls)) ] 认证 我们知道平时生活中,有一些接口是认证后才能调用的,比如我们登录后才能查看个人站点内容等··· 在执行视图函数之前执行了认证方法...、ID、唯一键 频率周期 : 时(h)、分(m)、秒(s) 频率次数 : [num] / s 没有达到限制频率可正常访问接口 达到了频率限制次数, 在限制时间内不能进行访问, 超过时间后可以正常访问 使用...uuid_str = uuid.uuid4() # print(type(uuid_str)) #

58710

使用 Django + Vue.js 开发个人博客网站(完整版附源码)—— Python-课程设计-期末项目

,而是可以写出实体类,再执行 Django 的文件迁移命令,就可以自动生成数据表了。...(), name='detail'), ] 这里使用路由的 namespace 设置路由的命名空间,主要是为了后面引用方便。...,category_id FROM tb_article; 四、难点及解决过程(所有碰到的问题、原因及解决方法) 1、图片验证码 这里使用了一个第三方库实现了功能,工具地址:https://bitbucket.org...中 :param request: 请求对象 :return: 返回值,这里是一个响应对象 """ # 首先从前端获取到验证码的 uuid uuid = request.GET.get('uuid')...3、登陆状态保持 状态保持: 将通过认证的用户的唯一标识信息(比如:用户ID)写入到当前 session 会话中; Django 用户认证系统提供了 login() 方法封装了写入 session

5.4K40

Django url 反向解析 和 命令空间

Django 如何处理一个请求¶ 当用户请求Django 站点上的某个页面时,django系统用一个算法来决定执行哪段Python代码: 首先,Django使用路由解析根模块(root URLconf...当这种情况发生时,将使用字典中的参数不是URL 中捕获的参数。 传递额外的选项给include() 类似地,你可以传递额外的选项给include()。...我们建议使用myapp-comment 不是comment。 URL 命名空间¶ 简介¶ URL 命名空间允许你反查到唯一的命名URL 模式,即使不同的应用使用相同的URL 名称。...在这种情况下 'polls:index' 将解析到默认实例不是urlpatterns 中最后声明的实例的主页。...' 将是实例的命名空间'author-polls' 将是应用的命名空间,不是反过来的。

2.4K30

django 1.8 官方文档翻译: 2-4-4 编写迁移

网站:http://python.usyiyi.cn/django/index.html 编写数据库迁移 这一节介绍你可能遇到的在不同情况下如何分析和编写数据库迁移....数据迁移和多数据库 在使用多个数据库时,需要解决是否针对某个特定数据库运行迁移。例如,你可能 只 想在某个特定数据库上运行迁移。...所以,应该执行下面的步骤。在这个例子中,我们会以默认值添加一个非空的UUIDField字段。你可以根据你的需要修改各个字段。 把default=…和unique=True参数添加到你模型的字段中。...在这个例子中,我们默认使用uuid.uuid4。 运行 makemigrations 命令。 编辑创建的迁移文件。...=uuid.uuid4, unique=True), ), ] 现在你可以像平常一样使用migrate命令应用迁移。

40510

二、路由、模板

P\w*)', views.manage,{'id':333}), 4、为路由映射设置名称 url(r'^home', views.home, name='h1'), url(r'^index...NewType.Detail', kwargs={'nid': self.id}) 获取请求匹配成功的URL信息:request.resolver_match 函数中使用生成URL     reverse...('h2', args=(2012,))      路径:django.urls.reverse 另外,比如用户收藏夹中收藏的URL是旧的,如何让以前的 /h2/2012/自动跳转到现在新的网址呢?...中的路由系统和其他语言的框架有所不同,在django中每一个请求的url都要有一条路由映射,这样才能将请求交给对一个的view中的函数去处理。...二、模板 1、模版的执行 模版的创建过程,对于模版,其实就是读取模版(其中嵌套着模版标签),然后将 Model 中获取的数据插入到模版中,最后将信息返回给用户。

1.8K80

Django 2.1.7 视图

article-section'), path('weblog/', include('blog.urls')), ... ] 上面写url路径的时候是用path()方法,第一个参数route使用的是非正则表达式可以表示的普通路由路径...例如, building-your-1st-django-site。 uuid - 匹配格式化的UUID。要防止多个URL映射到同一页面,必须包含短划线并且字母必须为小写。...返回一个 UUID实例。 path- 匹配任何非空字符串,包括路径分隔符 '/'。这使您可以匹配完整的URL路径,不仅仅是URL路径的一部分str。...比如要匹配一个视图中的函数路由,该函数有两个形参: def peopleList(request,book_id) 第一个request是默认的,那么路径自动匹配该函数的第二个形参,匹配格式:<int:...re_path() 正则匹配执行参数名 前面使用re_path()匹配路径参数的时候,其实是按照()的顺序来设置参数的。 那么如果需要给匹配的参数进行命名,该怎么做呢? 这个可以使用正则匹配的(?

73020

Django 2.1.7 视图 url的路径path、repath配置

article-section'), path('weblog/', include('blog.urls')), ... ] 上面写url路径的时候是用path()方法,第一个参数route使用的是非正则表达式可以表示的普通路由路径...例如, building-your-1st-django-site。 uuid - 匹配格式化的UUID。要防止多个URL映射到同一页面,必须包含短划线并且字母必须为小写。...返回一个 `UUID`[2]实例。 path- 匹配任何非空字符串,包括路径分隔符 '/'。这使您可以匹配完整的URL路径,不仅仅是URL路径的一部分str。...比如要匹配一个视图中的函数路由,该函数有两个形参: def peopleList(request,book_id) 第一个request是默认的,那么路径自动匹配该函数的第二个形参,匹配格式:int:book_id...: re_path() 正则匹配执行参数名 前面使用re_path()匹配路径参数的时候,其实是按照()的顺序来设置参数的。

1.1K20

Django+Vue开发生鲜电商平台之6.使用Vue实现商品类别和商品数据前台显示

显然,将所有的数据都发送到前端,但是根据前端的要求,不同级之间的类别具有附属和依赖的关系,不是平级的关系,显然还没有达到效果,需要进行改进。...此时,以嵌套的形式在父类别中显示出子类别,并且属于三层嵌套。...现在需要实现获取某一个具体类别的详情(包括其基本信息和子类别),此时需要在路由中加入商品对应的id,只要使CategoryViewSet继承自mixins.RetrieveModelMixin,即可自动配置路由...负责将类别数据显示到前端的是head.vue组件,位于src/views/head目录下,其通过赋值和循环将类别遍历出来: <div class="main_cata" id="J_mainCata"...,即禁止跨域访问,当前端口是 8080,数据接口端口是8000,因此被浏览器自动拒绝,一种方式是对服务器进行设置,还有一种是通过前端代理解决,这里采用第一种方式: 首先在虚拟环境中执行pip install

1.7K32

django-rest-framewor

源码繁琐,多说无益,耐心细读官方文档: https://www.django-rest-framework.org/ 个人总结: REST是一种软件架构设计风格,不是标准,也不是具体的技术实现,只是提供了一组设计原则和约束条件...DRF(Django RestFramework)是一套基于Django开发的、帮助我们更好的设计符合REST规范的Web应用的一个Django App,所以,本质上,它是一个Django App。...self就指向视图函数的实例对象 等待客户端请求 请求到来,开始执行视图函数,注意,调用视图函数时的方式是view(request),如果url带有参数,调用方式为view(request, xxx=...id)的形式 显然,我们有命名参数(?...def generater_token(): random_str = ''.join(str(uuid.uuid4()).split('-')) return random_str

1.6K10
领券