<p>来自SQLAlchemy文档:</p>
<blockquote>
<p>nullable – If set to the default of True, indicates the column will be
rendered as allowing NULL, else it’s rendered as NOT NULL. This
parameter is only used when issuing CREATE TABLE statements.</p>
</blockquote>
<p>我认为为一个列设置<code>nullable=True</code>基本上使该列成为必需的。例如:</p>
<pre><code>class Location(db.Model):
__tablename__ = 'locations'
id = db.Column(db.Integer, primary_key=True)
latitude = db.Column(db.String(50), nullable=False)
...
</code></pre>
<p>但是,当我创建一个没有纬度字段的<code>Location</code>实例时,不会得到错误!</p>
<pre><code>Python 2.7.8 (default, Oct 19 2014, 16:02:00)
[GCC 4.2.1 Compatible Apple LLVM 6.0 (clang-600.0.54)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> Location(latitude=None)
<app.models.Location object at 0x10dce9dd0>
</code></pre>
<p>怎么回事?</p>