Jika ini adalah data sensitif, Anda tidak boleh menyimpannya dalam kode sumber karena akan diperiksa ke kontrol sumber. Orang yang salah (di dalam atau di luar organisasi Anda) mungkin menemukannya di sana. Selain itu, lingkungan pengembangan Anda mungkin menggunakan nilai konfigurasi yang berbeda dari lingkungan produksi Anda. Jika nilai-nilai ini disimpan dalam kode, Anda harus menjalankan kode yang berbeda dalam pengembangan dan produksi, yang merupakan praktik yang berantakan dan buruk.
Dalam proyek saya, saya meletakkan data konfigurasi di datastore menggunakan kelas ini:
from google.appengine.ext import ndb
class Settings(ndb.Model):
name = ndb.StringProperty()
value = ndb.StringProperty()
@staticmethod
def get(name):
NOT_SET_VALUE = "NOT SET"
retval = Settings.query(Settings.name == name).get()
if not retval:
retval = Settings()
retval.name = name
retval.value = NOT_SET_VALUE
retval.put()
if retval.value == NOT_SET_VALUE:
raise Exception(('Setting %s not found in the database. A placeholder ' +
'record has been created. Go to the Developers Console for your app ' +
'in App Engine, look up the Settings record with name=%s and enter ' +
'its value in that record\'s value field.') % (name, name))
return retval.value
Aplikasi Anda akan melakukan ini untuk mendapatkan nilai:
API_KEY = Settings.get('API_KEY')
Jika ada nilai untuk kunci itu di datastore, Anda akan mendapatkannya. Jika tidak ada, rekaman placeholder akan dibuat dan pengecualian akan diberikan. Pengecualian akan mengingatkan Anda untuk pergi ke Developers Console dan memperbarui catatan placeholder.
Saya menemukan ini menghilangkan tebakan dari pengaturan nilai konfigurasi. Jika Anda tidak yakin nilai konfigurasi apa yang harus disetel, jalankan saja kode dan itu akan memberi tahu Anda!
Kode di atas menggunakan pustaka ndb yang menggunakan memcache dan datastore di bawah tenda, jadi cepat.
Memperbarui:
jelder menanyakan cara menemukan nilai Datastore di konsol App Engine dan menyetelnya. Begini caranya:
Buka https://console.cloud.google.com/datastore/
Pilih proyek Anda di bagian atas halaman jika belum dipilih.
Di kotak tarik-turun Jenis , pilih Pengaturan .
Jika Anda menjalankan kode di atas, kunci Anda akan muncul. Mereka semua akan memiliki nilai NOT SET . Klik masing-masing dan tetapkan nilainya.
Semoga ini membantu!