Отображать содержимое внутри Google App Engine в порядке убывания - PullRequest
0 голосов
/ 06 июня 2018

Я пытался отобразить записи, которые находятся в Google App Engine, в порядке убывания в зависимости от времени входа.Я использовал DateTimeProperty, чтобы установить Timestamp столбец внутри 'хранилища данных'.

from flask import Flask, render_template, request, redirect
from google.appengine.ext import ndb

app = Flask(__name__)

class MessagePost(ndb.Model):
    Title = ndb.StringProperty(required=True)
    MyPost = ndb.StringProperty(required=True)
    Timestamp = ndb.DateTimeProperty(auto_now_add=True)

@app.route("/Posting_message", methods=["POST"])
def posting_messsage():
    title = request.form["your_title"]
    mypost = request.form["title"]

    post_key = MessagePost(Title=title, MyPost=mypost).put()
    retrieved_post = MessagePost.query().order(-MessagePost.Timestamp)

    return render_template("simple_post.html", retrieved_post=retrieved_post.Title, retrieved_title=retrieved_post.MyPost)

@app.route("/")
def post_page():
    return render_template("simple_post.html")

if __name__ == "__main__":
    app.run(debug=True)
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title> Twitt post</title>
    <link rel="stylesheet" type="text/css" href="/static/style.css?v=1.8483317">
</head>
<body>
<div>
    <form name="twitt_form" action={{url_for("posting_messsage")}} method="POST">
        <b style="font-size:124%";>TITLE</b><hr> <br>
    <textarea rows="1" cols="20" name="your_title" id='your_title' value="" required></textarea> <br><br>
        <b style="font-size:124%";>WRITE YOUR POST</b><hr> <br>
        <textarea name="title" id='title' value="" required></textarea> <br><br>
    <br>
    <button type="submit" class="button"><b style="font-size:124%";>POST</b></button>
    </form> <br><br><br><br>
</div
    <div id = "lower_part">
        <b style="font-size:124%";>RECENTPOST</b> <br><hr><br>
        <textarea rows="1" cols="20" name="Recent_post" id="my_post" disabled>{{retrieved_post}} {{retrieved_title}}
        </textarea><br><br>
        <button class="delete_button"><b style="font-size:124%";>Delete</b></button>
    </div>
</body>
</html>

Это data, что datastore:

`Key    Write Ops    ID    Key Name    MyPost    Timestamp    Title
    aghkZXZ-...    8    4504699138998272        eeee    2018-06-06 09:42:42    how 
    aghkZXZ-...    8    5064350557536256        prem    2018-06-06 09:37:46    hi
    aghkZXZ-...    8    5345825534246912        nandha    2018-06-06 09:34:31    hello
    aghkZXZ-...    8    5627300510957568        back    2018-06-06 09:38:32    welcome
    aghkZXZ-...    8    5630599045840896        hahah    2018-06-06 09:43:40    hahah
    aghkZXZ-...    8    6190250464378880        goodwork 2018-06-06 09:38:08 nanda
    aghkZXZ-...    8    6471725441089536        welcome     2018-06-06 09:37:37 hey
    aghkZXZ-...    8    6753200417800192        hard     2018-06-06 09:38:47 work`

Iнужно, чтобы My_Post и Title, находящиеся внутри datastore, отображались внутри textarea в порядке убывания.

1 Ответ

0 голосов
/ 07 июня 2018

Из-за ndb "возможная согласованность" сущность может быть недоступна сразу.Ваш код требует, чтобы он был немедленно доступен.И зачем вам тратить ресурсы на выполнение запроса, если у вас уже есть свойства объекта?post_key будет установлено после успешного завершения put().Таким образом, вы можете проверить это или просто использовать свойства, которые у вас уже есть.Запрос здесь - пустая трата времени.

...