分号终止将字符串存储到数据存储区

时间:2014-09-21 06:15:22

标签: python google-app-engine

所以我有这个ndb数据库类:

class Messages(ndb.Model):
  message = ndb.StringProperty()
  emailid = ndb.StringProperty(indexed=True)    
  date = ndb.DateTimeProperty(auto_now_add=True)

  @classmethod
  def query_book(cls,key):
    return cls.query(ancestor=key).order(-cls.date)

当我尝试将下面给出的字符串保存到'消息' StringProperty:

"class asd
{
public void fun()
{
    printf ("hello world!!!");

}

}    "

只有分号的部分才会存储到数据存储区中。如果我没有输入分号,则整个字符串都会被存储。我应该提到上面的字符串是由用户输入的。分号和其他特殊字符可能出现在任何地方。我究竟做错了什么??提前谢谢......

1 个答案:

答案 0 :(得分:1)

在开发人员和生产环境中,它对我来说都很好。 你说你从用户输入获得了这些数据,所以在那里寻找问题。 NDB可以正常使用它。

from google.appengine.ext import ndb

class _Foo(ndb.Model):
  message = ndb.StringProperty()
  emailid = ndb.StringProperty(indexed=True)    
  date = ndb.DateTimeProperty(auto_now_add=True)

  @classmethod
  def query_book(cls,key):
    return cls.query(ancestor=key).order(-cls.date)

key = ndb.Key(_Foo, '1')
message = """class asd
{
public void fun()
{
    printf ("hello world!!!");

}

}    """
f = _Foo(key=key)

f.message = message
f.put()

assert key.get().message == message  # no error here, means they are equal