Чтобы это работало в среде разработчика, проще всего выполнить код в файле appengine_config.py
(если у вас нет такого файла, создайте его на верхнем уровне своего приложения, в та же папка, что и app.yaml
).
# Make this the last item in app.yaml - set up vendoring etc first.
from models import FooModel
# Delete existing records
keys = FooModel.query().fetch(keys_only=True)
ndb.delete_multi(keys)
data = get_data_from_somewhere()
# Assumes data is an iterable of dicts
entities = [FooModel(**item) for item in data]
ndb.put_multi(entities)
Поймите, что этот подход не будет надежно работать в облаке. Это потому, что в облаке может быть несколько экземпляров вашего приложения, которые запускаются и останавливаются постоянно. Лучше всего спроектировать свое приложение так, чтобы хранилище данных не нужно было повторно инициализировать при запуске экземпляра (или даже после каждого развертывания).