То же, что и файловая система каталогов. Объекты иерархически структурированы в облачном хранилище данных. Этот тип структуры делает его аккуратным при организации ваших данных.
Из Документация :
Полный ключ, идентифицирующий объект, состоит из последовательности пар идентификатора вида, указывающих путь его предка и оканчивающихся таковыми у самого объекта:
Категория объекта -> Вид
Один объект -> Объект
Отдельные данные для объекта -> Свойство
Уникальный идентификатор объекта -> Ключ
Я считаю, что вы все еще можете использовать тот же маршрут, но вам потребуется откорректируйте свой код, чтобы сначала запросить интересующий вас идентификатор сообщения, используя его путь предка.
Вот рабочий код, который я пробовал, и который вы можете изменить, чтобы приспособить его к вашим потребностям.
from flask import Flask, render_template, redirect, request
from google.cloud import datastore
from markupsafe import escape
# Starting Datastore Client.
client = datastore.Client()
# Home page will do a redirect to the specified URL.
@app.route('/')
def hello():
return redirect('/post/<post_id>', code=302)
# The URL that we are intestered in.
@app.route('/post/<post_id>', methods=['GET', 'POST'])
def profile(post_id):
# Query the post ID using its ancestors.
# Method is always 'GET' by default, I kept it 'GET' just for testing purposes.
if request.method == 'GET' and request.url == '<post_id>':
return '{} is the post ID'.format(escape(post_id))
else:
return '{} is the post ID'.format(escape(post_id))
# The actual Flask app.
app = Flask(__name__)
if __name__ == '__main__':
app.run(host='127.0.0.1', port=8080, debug=True)
Хотя я знаю, что это может не дать вам прямой ответ, я верю этому укажет вам в правильном направлении.