python - Django,大整数和网址
问题描述
我一直在寻找答案,但我找不到。在 PostgreSQL 中,我有主键,它是 BigInt 类型的自动字段。在 url 路径中,我必须使用“int:pk”之类的东西来引用它。如果我将 int 用于此目的,那么当数字超出整数类型的限制时,我以后会遇到麻烦吗?我更适合在 url 中使用哪种类型的 bigint?它不需要 BigInt 或 BigIntegerField,它们是 Django 的 bigint 类型。我必须使用像 <'$> 这样的模式而不是 int 吗?感谢您的帮助!
解决方案
你可以在 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,范围是从-9223372036854775808
到9223372036854775807
(只要最多可以存储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 是完全安全的
推荐阅读
- reactjs - Material UI 自动完成:将值与状态同步
- android - 如何在 Android Studio 模拟器中产生非常差的网络质量和低 GPS 信号强度?
- spring - 如何使用 WebSecurityConfigurerAdapter 定义自定义 UserDetailsService?
- javascript - 如何从 Websocket Reactjs 接收二进制消息
- c# - Asp.net core 将嵌套配置与接口绑定
- c# - GlyphTypeface 显示错误对象引用未设置为对象的实例
- python - 检查来自模拟对象的调用参数
- java - Spring boot休眠并创建Query native
- list - ansible 识别列表中的值
- python - Tkinter 文本小部件替换