赞
踩
db.Column(db.DateTime,default=datetime.now()) 在migrate时总是报类似的错误
AttributeError: module 'datetime' has no attribute 'now';
百度说是mysql版本升级了,在5.6以上均存在datetime的问题,应该设置为timestamp,试了几次也是错误。
经多次尝试得知真相:
其中db.DateTime为sqlalchemy模块设置的mysql数据库的字段格式,对应于数据库中的datetime、time、timestamp。
那后面为何要有两个datetime呢?
原来,第二个datetime为python系统的datetime,而非sqlalchemy或flask或mysql数据库。
python中datetime模块定义了5个类,分别是
1.datetime.date:表示日期的类
2.datetime.datetime:表示日期时间的类
3.datetime.time:表示时间的类
4.datetime.timedelta:表示时间间隔,即两个时间点的间隔
5.datetime.tzinfo:时区的相关信息
此处用的就是datetime类,详细的datetime适用方法见datetime模块详解
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。