首页 > 解决方案 > Django,大整数和网址

问题描述

我一直在寻找答案,但我找不到。在 PostgreSQL 中,我有主键,它是 BigInt 类型的自动字段。在 url 路径中,我必须使用“int:pk”之类的东西来引用它。如果我将 int 用于此目的,那么当数字超出整数类型的限制时,我以后会遇到麻烦吗?我更适合在 url 中使用哪种类型的 bigint?它不需要 BigInt 或 BigIntegerField,它们是 Django 的 bigint 类型。我必须使用像 <'$> 这样的模式而不是 int 吗?感谢您的帮助!

标签: pythondjangourlpath

解决方案


你可以在 python 中使用 int 类型,因为在 python 3.x 中,整数的值不受位数的限制,并且可以扩展到可用内存的限制。对于 Python2.x 的情况有点不同,但对你来说仍然是安全的。请从以下文档中查找报价:

蟒蛇 2.7:

普通整数(也称为整数)在 C 中使用 long 实现,这为它们提供了至少 32 位的精度

https://docs.python.org/2.7/library/stdtypes.html#numeric-types-int-float-long-complex

因此对于python 2.X,范围是从-92233720368547758089223372036854775807(只要最多可以存储64位)

Python 3.x:

整数具有无限的精度。

https://docs.python.org/3/library/stdtypes.html#numeric-types-int-float-complex

对于PostGreSQL BigInt最多可以存储 8 个字节,这与 python2.x 相同,因此继续将 python int 映射到 PostGreSQL BigInt 是完全安全的


推荐阅读