https://github.com/miguelgrinberg/flasky/blob/master/app/models.py
timestamp = db.Column(db.DateTime, default=datetime.utcnow)
member_since = db.Column(db.DateTime(), default=datetime.utcnow)
db.DateTime 后面带不带括号有什么区别吗?
1
ericls 2018-02-25 23:59:04 +08:00 via iPhone
看看 db.Column 的代码呢
|
2
vainl1 2018-02-26 00:00:53 +08:00 via iPhone 2
<pre>
def f(): return 1 print f print f() </pre> 个人理解,一个是函数指针,一个是函数调用,传递的是调用的结果值。python 新手,如理解有误欢迎指正交流。 |
3
coolair 2018-02-26 00:16:27 +08:00 via Android
这两个在这里这样用没有区别,都可以。
但是,注意后面的 |
4
est 2018-02-26 00:18:28 +08:00 via Android
flask 教程质量良莠不齐。sqlalchemy 更是深坑
|
5
coolair 2018-02-26 00:18:35 +08:00 via Android 2
但是,注意后面的 default=datetime.utcnow,这里要传函数。如果用的是 default=datetime.utcnow(),就传了函数执行的结果,是一个固定值(应用跑起来的时间)。
|
6
Tyanboot 2018-02-26 00:20:21 +08:00 1
指示类型的时候这两个没区别, 但是后面的 default 就有区别了. default 里带上 () 就是定值了, 值是创建表的时候的值, 不带 () 的话就是创建类的时候的值.
|
8
lolizeppelin 2018-02-26 22:35:51 +08:00 via Android
用来对应数据库里字段类型的 原则上传 class 才是对的
能传带括号应该是内部做了兼容 |