Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/276.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/406.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在一条路径上分隔多个单词的约定是什么?_Python_Flask - Fatal编程技术网

Python 在一条路径上分隔多个单词的约定是什么?

Python 在一条路径上分隔多个单词的约定是什么?,python,flask,Python,Flask,我有两条路线: api.add_resource(X, "/<string:stage>/api/sales/by-type") api.add_resource(Y, "/<string:stage>/api/sales/filters/by-type") api.add_资源(X,“//api/sales/by type”) api.add_资源(Y,“//api/sales/filters/by type”) 它应该是/按

我有两条路线:

api.add_resource(X, "/<string:stage>/api/sales/by-type")
api.add_resource(Y, "/<string:stage>/api/sales/filters/by-type")
api.add_资源(X,“//api/sales/by type”)
api.add_资源(Y,“//api/sales/filters/by type”)

它应该是
/按类型
还是
/按类型
/by/type
会很奇怪,因为
/by
本身就是一条路线,这毫无意义。找不到任何关于它的文档。

@nitul是对的,它一般是关于API设计的,但是连字符常用于URL,即使它不是标准的或官方的,但被视为最佳实践,seo友好,URL更优雅和漂亮

另一方面,我想提请您注意URL中的一些特定/额外参数,如过滤器排序分页,将它们与您的基本/规范url
//api/sales
一起用作额外参数更为合理,因为您提到的两条路线在逻辑上是相同的。看看这篇好文章,它详细阐述了这个主题,并采用了好的模式。已经说过,您只需要一条路线:

api.add_resource(X, "/<string:stage>/api/sales")
api.add_资源(X,“//api/sales”)
然后根据url中的额外参数,例如:
?type=type
,返回适当的对象集,这样API就更加紧凑(避免了冗余),并且易于维护和扩展


另外,由于您使用的是
Flask
,并且根据您的需要(如果有),请考虑自定义URL转换器(本主题将帮助您)

您的问题更像是API设计问题,而不是与Flask相关的约定。话虽如此,请看看这个问题=>。它似乎解决了更大的设计问题。