routes mapper resource

7 篇文章 1 订阅
3 篇文章 0 订阅

使用Mapper还可以使用resource注册路由。这种方法,可以很简便的注册一组路由。
下面介绍一下具体用法。
mapper = Mapper()
mapper.resource(member_name, collection_name, **kwargs)

注册出来的路由会有统一的路径前缀path_prefix

计算path_prefix

情况1:path_prefix在kwargs那么path_prefx=kwargs[“path_prefix”]

情况2:path_prefix不在kwargs但是设置了parent_resource, path_prefix=parent_resource[‘collection_name’]+{parent_resource[‘member_name’]_id}
例如parent_resource=dict(collection_name="/p, member_name=“mem) path_prefix=”/p/{mem_id}"
情况3:path_prefix=""

controller 不传默认使用经过处理(去掉开头和结尾的/)的collection_name

member
一个字典,每一个key是一个<action>,对应的值为请求方式<method>
会被自动加上member[‘edit’] = ‘GET’

路由请求方式处理action
自动添加
/<path_prefix>/<collection_name>/{id}/editGETedit
/<path_prefix>/<collection_name>/{id}/edit.{format}GETedit
自动添加
/<path_prefix>/<collection_name>/{id}PUTupdate
/<path_prefix>/<collection_name>/{id}.{format}PUTupdate
/<path_prefix>/<collection_name>/{id}DELETEdelete
/<path_prefix>/<collection_name>/{id}.{format}DELETEdelete
/<path_prefix>/<collection_name>/{id}GETshow
/<path_prefix>/<collection_name>/{id}.{format}GETshow
通过member 字典添加
<path_prefix>/<collection_name>/{id}/<action><method><action>
<path_prefix>/<collection_name>/{id}/<action>.format<method><action>

collection
一个字典,每一个key是一个<action>,对应的值为请求方式<method>

路由请求方式处理action
自动添加
/<path_prefix>/<collection_name>POSTcreate
/<path_prefix>/<collection_name>.{format}POSTcreate
/<path_prefix>/<collection_name>GETindex
/<path_prefix>/<collection_name>.{format}GETindex
根据collection的值添加
/<path_prefix>/<collection_name>/<action><method><action>
/<path_prefix>/<collection_name>/<action>.{format}<method><action>

new
一个字典 每一个key是一个<action>,对应的值为请求方式<method>
new.update({‘new’: ‘GET’})

路由请求方式处理action
自动添加
/<path_prefix>/<collection_name>/newPOSTnew
/<path_prefix>/<collection_name>.{format}/newPOSTnew
根据new的值添加
/<path_prefix>/<collection_name>/new/<action>/<method><action>
/<path_prefix>/<collection_name>/new/<action>.{format}/<method><action>
`Routes` 是 React Router v6 中的一个新组件,用于定义路由规则。与之前版本的 `Route` 组件不同,`Routes` 允许你同时定义多个路由规则,并支持嵌套路由。 `Routes` 组件的基本用法如下: ```jsx import { Routes, Route } from 'react-router-dom'; function MyRouter() { return ( <Routes> <Route path="/" element={<Home />} /> <Route path="/about" element={<About />} /> <Route path="/users" element={<Users />}> <Route path="/" element={<UsersList />} /> <Route path=":id" element={<UserProfile />} /> </Route> <Route path="*" element={<NotFound />} /> </Routes> ); } ``` 在这个例子中,我们使用 `Routes` 组件来定义了四个路由规则: - `/`:当访问根路径时,展示 `Home` 组件。 - `/about`:当访问 `/about` 路径时,展示 `About` 组件。 - `/users`:当访问 `/users` 路径时,展示 `Users` 组件,并且该组件下有两个子路由规则: - `/`:当访问 `/users` 路径时,展示 `UsersList` 组件。 - `/:id`:当访问 `/users/:id` 路径时,展示 `UserProfile` 组件。 - `*`:当访问任何未定义的路径时,展示 `NotFound` 组件。 需要注意的是,如果你使用了嵌套路由,子路由的路径应该是相对于父路由的路径的。例如,在上面的例子中,`UsersList` 组件的路径实际上是 `/users`,而不是 `/users/`。 另外,`Routes` 组件是一个容器组件,因此你需要在它内部使用 `Route` 组件来定义具体的路由规则。每个 `Route` 组件都需要指定 `path` 属性和 `element` 属性,前者用于匹配当前 URL,后者用于展示对应的组件。同时,`Route` 组件还支持其他属性,例如 `exact`、`caseSensitive` 等等,用于进一步控制路由匹配的行为。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值