Django -- url中的参数介绍

版权声明:转载请标明出处 https://blog.csdn.net/gymaisyl/article/details/84345259

参考文档直达

url()函数传递四个参数,两个必选参数:regex和view,两个可选参数:kwargs和name。 在这里,值得重新审视这些参数

url()参数:regex
术语“regex”是一种常用的缩写,意思是“正则表达式”,它是用于匹配字符串中的模式的语法,换言之,在这里是匹配url。 Django从第一个正则表达式开始,在列表中自上而下匹配,将请求的URL与每个正则表达式进行比较,直到找到匹配的一个。

请注意,这些正则表达式不搜索GET和POST参数或域名。 例如,在https://www.example.com/myapp/的请求中,URLconf将查找myapp/。 在https://www.example.com/myapp/?page=3的请求中,URLconf仍将查找myapp/。

如果你需要正则表达式的帮助,请参阅维基百科的详细解释和re模块的文档。 此外,由Jeffrey Friedl撰写的O’Reilly书“精通正则表达式”非常棒。 但实际上,你不需要成为正则表达式的专家,因为你只需要知道如何捕获简单的规则。 实际上,复杂的正则表达式的查找性能可能很差,所以你可能不应该依靠正则表达式的全部功能。

最后,一个性能提示:这些正则表达式是第一次加载URLconf模块时被编译。 它们超级快(只要查找不是太复杂,如上所述)。

url()参数:view
当Django发现正则表达式匹配时,Django将调用指定的视图函数,使用HttpRequest对象作为第一个参数,并将正则表达式中的任何“捕获”值作为其他参数。 如果正则表达式使用简单的捕获,则值作为位置参数传递;如果它使用命名捕获,则值作为关键字参数传递。 我们稍后会给出一个例子。

url()参数:kwargs
任意关键词参数可以在字典中传递到目标视图。

url()参数:name
命名你的URL可让你从Django其他地方明确地引用它,特别是在模板中。 这个强大的功能允许你在仅接触单个文件的情况下对项目的URL模式进行全局更改. 比如在重定向的时候,可能会用到这个name参数。

猜你喜欢

转载自blog.csdn.net/gymaisyl/article/details/84345259
今日推荐