0

我有一个 Django 应用程序,其中要处理的 URL 应具有特定模式,例如 /servername/alpha/beta/2/delta/10/pie/1 现在我将需要 URL 中包含的这些参数并将它们持久保存到调用从 /servername/ 开始的 URL 时的数据库。
所以我有两种方法

  1. 将参数与请求一起传递给相关视图。在这种情况下,我的正则表达式将确保我的 param1 到 param7 的值分别为 alpha、beta、2、delta、10、pie 和 1。
  2. 仅传递请求而不传递参数。我将使用正则表达式解析 request.path_info 或在“/”上拆分 request.path_info 并获取相关条目

    这两种方法中的哪一种应该是首选的,以便在以下方面具有更好的性能CPU 和内存或其他我不知道的因素。
    我相信可以使用时间函数比较两者,但我相信它不会提供准确的图片。理论上哪种方法应该是首选,为什么?
4

1 回答 1

1

选项二本质上更慢,因为您的视图每次都需要进行此解析,而 Django 的标准 URL 解析器使用已编译的正则表达式。(其中的 urlpatterns 在urls.py第一次运行时编译一次。)

但是,这两种方法的速度差异都可以忽略不计。这永远不会成为您应用程序的瓶颈;专注于您的数据库及其查询以及应用程序中的任何 I/O 操作(任何从硬盘驱动器进行大量写入或读取的操作)。这些是应用程序变慢的地方。否则,您所说的是在这里或那里节省一毫秒,这是毫无意义的。

于 2011-12-13T15:45:26.113 回答