我是 Python、Google AppEngine 和 Jinja 的新手。如果我在下面发布了太多代码,我很抱歉。这是我向 StackOverflow 发布的第一个问题。
我正在构建一个博客(为一个班级),我需要在用户的帖子中替换换行符“\n”。查询数据库的函数将其结果发送到 render() 函数。
在我添加应该替换“\n”的代码行之前,所有代码都可以正常工作。
我进行了各种编辑,但我无法推断 AppEngine、Jinja 或 Python 要我做什么来满足它。
我的数据库类设置了四种类型的 db_blog 类型,包括“ post_content ”
class db_blog(db.Model):
post_subject = db.StringProperty(required = True)
post_content = db.TextProperty(required = True)
post_created = db.DateTimeProperty(auto_now_add = True)
post_last_modified = db.DateTimeProperty(auto_now_add = True)
'Newpost' 类我希望它从下面的Blog类中接收 ' query_select ' 对象。
class Newpost(webapp2.RequestHandler):
def write(self, *args, **kwds):
self.response.out.write(*args, **kwds)
def render_str(self, template, **params):
t = jinja_env.get_template(template)
return t.render(params)
def render(self, template, **kwds):
self._render_text = self.post_content.replace("\n", "<br />") ##<-- See here
self.write(self.render_str(template, **kwds))
Blog 类获取所有用户帖子并将它们发送到“Newpost”以进行呈现。
class Blog(Newpost):
def get(self):
query_select = db.GqlQuery("SELECT * FROM db_blog ORDER BY post_created DESC")
self.render('blog_posts.htm', query_select = query_select)
1 、如上图,代码会产生这个错误:
AttributeError:“博客”对象没有属性“post_content”
我认为类Blog需要从db_blog继承,所以(见#2)
2. 如果我将db_blog添加到Blog类的参数列表中,我会收到一个新错误:
AttributeError:“NoneType”对象没有“替换”属性
我认为错误告诉我我正在传递一个不存在的对象,所以我真的很困惑。如果我注释掉试图替换“\n”字符的行,这段代码运行完美——那么它怎么能不传递对象呢?或者声称它==无?
更重要的是,我怎样才能让它工作!
非常感谢你读到这里,感谢他/她的财富王国,让我继续前进。