Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/326.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/google-app-engine/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 谷歌应用引擎数据库最后一项_Python_Google App Engine - Fatal编程技术网

Python 谷歌应用引擎数据库最后一项

Python 谷歌应用引擎数据库最后一项,python,google-app-engine,Python,Google App Engine,我是GAE和python语言的新手,我想做任何非常简单的事情,我有评论框(),我只想在用户提交新评论之前检查是否有人写了新评论,并用一个框提醒他:“评论框有新评论,你想继续吗?!是还是否?”。我对python语法感到非常困惑,尤其是查询语法 我的代码正在运行 喊叫。py import webapp2 import datetime import time from google.appengine.ext import webapp from google.appengine.ext impor

我是GAE和python语言的新手,我想做任何非常简单的事情,我有评论框(),我只想在用户提交新评论之前检查是否有人写了新评论,并用一个框提醒他:“评论框有新评论,你想继续吗?!是还是否?”。我对python语法感到非常困惑,尤其是查询语法

我的代码正在运行

喊叫。py

import webapp2
import datetime
import time
from google.appengine.ext import webapp
from google.appengine.ext import db
from google.appengine.ext.webapp \
 import template



class Shout(db.Model):
    message = db.StringProperty(required=True)
    when = db.DateTimeProperty(auto_now_add=True)
    who = db.StringProperty()

class MainPage(webapp2.RequestHandler):
    def get(self):
        shouts = db.GqlQuery('SELECT * FROM Shout ' 
'ORDER BY when ASC')
        values = {
            'shouts': shouts
        }

        # my attempt to make and print the query
        # aaa = db.GqlQuery('SELECT * FROM Shout ' 
                            'ORDER BY when DESC LIMIT 1')
        # self.response.out.write('Query is: %s', aaa)

        self.response.out.write(template.render('main.html',values))

    def post(self):
        shout = Shout (
            message = self.request.get('message'),
            who = self.request.get('who'))
        shout.put()
        self.redirect('/')

application = webapp2.WSGIApplication([
    ('/', MainPage),
], debug=True)
main.html

<!DOCTYPE html>
<html>
<head>
    <title>Comment System</title>
    <link rel="stylesheet" href="./css/main.css" media="screen" />
</head>
<body>

<h1>Cloud Comment System</h1>

{% for shout in shouts %}

<div> 
    <div id="fl">
        {{shout.when}}
        from
        {% ifequal shout.who "" %}
            Anonymous
        {% else %}
        {{shout.who}}
        {% endifequal %}
    </div>

    {{shout.message}}

</div>
{% endfor %}

<form action="" method="post" accept-charset="utf-8">
    <p>From:<input type="text" name="who" value="" id="who"></p>
    <p>Message:<input type="text" name="message" value="" id="message"></p>
    <p><input type="submit" name="" value="comment"></p>
</form>

</body>
</html>

评论系统
云评论系统
{%用于呼喊中的呼喊%}
{{呼喊。什么时候}
从…起
{%ifequal.who”“%}
匿名的
{%else%}
{{呼喊,谁}}
{%endifequal%}
{{shout.message}}
{%endfor%}
发件人:

信息:


我真的很感谢你的帮助。谢谢

在开始时,您应该始终说出代码中不起作用的内容、错误等。。。目前你的求助请求含糊不清

所以我会试着猜你想要什么

在您的查询中,您是按ASC订购的(日期表示最早的商品最先订购)。 您应该先订购DESC,最新的,因为您的描述表明您需要最新的评论

您的查询应该是

shouts = db.GqlQuery('SELECT * FROM Shout ORDER BY when DESC')
在代码中有一些额外的
字符

您可能不想循环并显示所有的Shout,因此应该使用fetch或类似的方法限制结果集


此外,您正在获取的
Shout
s没有前哨日期(即与之比较的日期)。根据您的问题描述,我假设您在某个日期/时间后需要新的呼叫。您需要确定该日期,并将其用作查询中的比较。

是的,您是对的,我应该说我的代码正常工作。我使用ASC的订单,最后一个是最新的,所以对我来说没问题。关于额外的字符,两种方法都是正确的,请查看谷歌开发者制作的6:49分钟的视频。谢谢你的“获取”提示,我现在没有考虑这个问题,但这是一个好主意,我会尝试实现。我想要的是,比较用户提交评论之前和之后的最后一个“时间”,如果在提交评论之后和发布评论之前不一样,应该提醒用户。你可能需要为此使用异步javascript请求,否则如果我正确理解你说的话,用户需要提交两次文章