В консоли администратора разработки, когда я просматриваю свои данные, он говорит "Select different namespace
".
Каковы пространства имен и как их использовать?
В консоли администратора разработки, когда я просматриваю свои данные, он говорит "Select different namespace
".
Каковы пространства имен и как их использовать?
Пространства имен позволяют реализовать сегрегацию данных для приложений с несколькими арендаторами. Официальная документация ссылается на некоторые примеры проектов, чтобы дать вам представление о том, как это можно использовать.
Пространства имен используются в движке Google для создания приложений с несколькими приложениями. В приложениях Multitenent один экземпляр приложения работает на сервере, обслуживая несколько клиентских организаций (арендаторов). При этом приложение может быть спроектировано таким образом, чтобы фактически делить свои данные и конфигурацию (бизнес-логику), и каждая клиентская организация работает с настраиваемым экземпляром виртуального приложения. Вы можете легко разделить данные между арендаторами, просто указав уникальную строку пространства имен для каждого арендатора.
Другое Использование пространства имен:
Для получения дополнительной информации посетите приведенные ниже ссылки:
http://www.javacodegeeks.com/2011/12/multitenancy-in-google-appengine-gae.html
https://developers.google.com/appengine/docs/java/multitenancy/
http://java.dzone.com/articles/multitenancy-google-appengine
http://www.sitepoint.com/multitenancy-and-google-app-engine-gae-java/
Взгляд, на этот вопрос не так много хорошего, и он ответил так, пытаясь дать этот.
При использовании пространств имен у нас может быть наилучшая практика разделения ключей и значений в данном пространстве имен. Ниже приведен лучший пример предоставления информации пространства имен.
from google.appengine.api import namespace_manager
from google.appengine.ext import db
from google.appengine.ext import webapp
class Counter(db.Model):
"""Model for containing a count."""
count = db.IntegerProperty()
def update_counter(name):
"""Increment the named counter by 1."""
def _update_counter(name):
counter = Counter.get_by_key_name(name)
if counter is None:
counter = Counter(key_name=name);
counter.count = 1
else:
counter.count = counter.count + 1
counter.put()
# Update counter in a transaction.
db.run_in_transaction(_update_counter, name)
class SomeRequest(webapp.RequestHandler):
"""Perform synchronous requests to update counter."""
def get(self):
update_counter('SomeRequest')
# try/finally pattern to temporarily set the namespace.
# Save the current namespace.
namespace = namespace_manager.get_namespace()
try:
namespace_manager.set_namespace('-global-')
update_counter('SomeRequest')
finally:
# Restore the saved namespace.
namespace_manager.set_namespace(namespace)
self.response.out.write('<html><body><p>Updated counters')
self.response.out.write('</p></body></html>')
Пространство имен может использоваться для создания различной базы данных для разных пользователей. Это помогает создавать иерархию в базе данных.