title: How does `nullable=False` work in SQLAlchemy
body: <p>From SQLAlchemy docs:</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>I thought setting <code>nullable=True</code> for a Column basically made that Column required. For example:</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>However, when I create a <code>Location</code> instance without a latitude field, I do not get an error!</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.
  
  &gt;&gt;&gt; Location(latitude=None)
  &lt;app.models.Location object at 0x10dce9dd0&gt;
  </code></pre>
  
  <p>What is going on?</p>