def get_post_by_username(cls, user_name):
posts = db.GqlQuery("SELECT * FROM Post WHERE created_by_user = :username ORDER BY created_date_time DESC", username=user_name) # NOQA
return posts
python类GqlQuery()的实例源码
def get_all_posts(cls):
posts = db.GqlQuery("SELECT * FROM Post ORDER BY created_date_time DESC") # NOQA
return posts
def total_post_by_users(cls, user_name):
total_post = db.GqlQuery("SELECT * FROM Post WHERE created_by_user= :username", username=user_name).count() # NOQA
return total_post
def total_posts(cls):
total_post = db.GqlQuery("SELECT * FROM Post").count()
return total_post
# Comment model
def get(self):
posts = Post.all().order('-created')
#GQL for the above would be
# db.GqlQuery(SELECT * FROM Post ORDER BY created DESC LIMIT 10)
self.render('blog.html', posts = posts)
def render_front(self, title="", art="", error=""):
arts = db.GqlQuery("SELECT * FROM Art ORDER BY created DESC")
self.render("ascii.html", title=title, art=art, error=error, arts = arts)
def post(self, post_id):
key = db.Key.from_path('Post', int(post_id), parent=blog_key())
post = db.get(key)
if not post:
self.error(404)
return
"""
On posting comment, new comment tuple is created and stored,
with relationship data of user and post.
"""
c = ""
if(self.user):
# On clicking like, post-like value increases.
if(self.request.get('like') and
self.request.get('like') == "update"):
likes = db.GqlQuery("select * from Like where post_id = " +
post_id + " and user_id = " +
str(self.user.key().id()))
if self.user.key().id() == post.user_id:
self.redirect("/blog/" + post_id +
"?error=You cannot like your " +
"post.!!")
return
elif likes.count() == 0:
l = Like(parent=blog_key(), user_id=self.user.key().id(),
post_id=int(post_id))
l.put()
# On commenting, it creates new comment tuple
if(self.request.get('comment')):
c = Comment(parent=blog_key(), user_id=self.user.key().id(),
post_id=int(post_id),
comment=self.request.get('comment'))
c.put()
else:
self.redirect("/login?error=You need to login before " +
"performing edit, like or commenting.!!")
return
comments = db.GqlQuery("select * from Comment where post_id = " +
post_id + "order by created desc")
likes = db.GqlQuery("select * from Like where post_id="+post_id)
self.render("permalink.html", post=post,
comments=comments, noOfLikes=likes.count(),
new=c)