2010-06-14 86 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