· 6 years ago · Feb 01, 2019, 05:50 PM
1from google.cloud import datastore
2from django.core.cache import cache
3
4
5class DataStoreClient():
6 def __init__(self):
7 self.client = datastore.Client()
8
9 def get(self, property):
10 try:
11 cache_key = 'env-' + property
12 result = cache.get(cache_key)
13
14 if not result:
15 key = self.client.key('environment_variables', property)
16 result = self.client.get(key)
17 cache.set(cache_key, result, 86400)
18
19 return result['Value']
20
21 except TypeError:
22 print(
23 "{} is not a property in Cloud Datastore".format(property) +
24 "We are creating one for you. Go to Cloud Datastore to set a value."
25 )
26 entity = datastore.Entity(key=key)
27 entity.update({
28 'Value': 'NOT_SET'}
29 )
30 self.client.put(entity)
31
32from your_app.datastore import DataStoreClient
33
34datastore_client = DataStoreClient()
35
36SECRET_KEY = datastore_client.get('SECRET_KEY')