2010-06-14 81 views
2
class Person(db.Model): 
    first_name=db.StringProperty() 
    middle_name=db.StringProperty() 
    last_name=db.StringProperty() 

p1=Person(first_name='john',     last_name='smith') 
p2=Person(first_name='john',middle_name=None,last_name='smith') 
p3=Person(first_name='john',middle_name='', last_name='smith') 

P1和P2相同与middle_name =无StringProperty,无对空字符串

P3具有middle_name =空字符串

哪个是更好的合作?

在SQL中,我更倾向于一组列到NOT NULL默认'

+0

在这一点上,我认为最好只使用空字符串,而不要使用None和空字符串。在SQL中相当于NOT NULL的缺省值“” – user365918 2010-06-14 22:08:15

回答

2

他们是完全不同的。一(无)相当于SQL NULL。这可能意味着他们没有中间名或者你不知道。 ''表示它们有一个中间名,长度为0.这几乎从来不是这样。

+0

我知道你的意思,但是如果表单字段没有填充,那么我将得到一个空字符串。 middle_name = cgi.escape(self.request.get('middle_name')) – user365918 2010-06-14 21:41:23

+0

然后,您需要从HTML表单数据 - >数据库数据显式映射。 – 2010-06-14 22:12:13