ben*_*inz 5 python mysql sqlalchemy flask-sqlalchemy
我尝试了两种方法,但都不起作用,我在谷歌上搜索并没有找到任何合适的解决方案。我的代码如下所示:
intField = Column(SmallInt(), length=5)
Run Code Online (Sandbox Code Playgroud)
错误说:
Unknown arguments passed to Column: ['length']
Run Code Online (Sandbox Code Playgroud)
我也尝试过,知道它不应该工作,这个解决方案:
intField = Column(SmallInt(5))
Run Code Online (Sandbox Code Playgroud)
它不起作用,因为此 SqlAlchemy 数据类型不接受参数。
有任何想法吗?
[更新]
我使用的MySQL是数据库引擎,所以这里的解决方案是导入mysql自己的Integer类型,然后指定我想要的长度。
在上面的例子中,我只需要这样做:
from sqlalchemy.dialects import mysql
Integer = mysql.INTEGER
class ...
...
intField = Column(Integer(5))
Run Code Online (Sandbox Code Playgroud)
但我仍然想知道是否有更通用的方法?
MySQL 有DECIMAL/NUMERIC类型。
用于Decimal(5, 0)5 位数字的字段。
仅当您确实需要号码时才使用此选项。如果不会用这个字段做数学,更喜欢 aString(5)并验证数字(isdigit()是你的朋友)。
在 SQLAlchemy 中,将其作为Numeric字段处理。