1

Ich bin neu in App-Engine. Eine Pause api schreiben. Hast du dich gefragt, ob jemand schon einmal in diesem Dilemma war?APP-ENGINE lädt Daten aus der statischen JSON-Datei oder lädt Daten in den Datenspeicher?

Diese Daten, die ich habe, ist nicht viel (3 bis 4 Seiten) und aber es ändert sich jährlich.

Option 1:. Schreiben Sie die Daten als Json und analysieren, um die JSON-Datei eine Anforderung jedes Mal kommt

Option 2: Modell in Objekte und werfen in den Datenspeicher und dann abrufen, wenn ein Anfragen kommt

.

Kennt jemand die Vor-und Nachteile für jede dieser Methode oder bessere Lösungen, wenn überhaupt.

Antwort

2

Natürlich hängt die Antwort davon ab.

Hier sind einige der Fragen, die ich mir stelle würde eine Entscheidung zu treffen -

  • tun Sie an die Daten die Änderung auf einem Code-Push abhängig machen wollen?
  • gibt es sensible Informationen in den Daten, die bei einem VCS nicht geprüft werden sollen
  • was andere Teile des Systems auf diesen Daten
  • abhängig ist, wie wahrscheinlich sind Ihre Annahmen über die Daten in Bezug auf Änderungen gehen von Häufigkeit der Aktualisierung und Größe

die Daten Unter der Annahme, klein ist (< 1MB) und es gibt keine sensiblen Informationen drin, ich würde die JSON-Datei laden beginnen als es die einfachste Lösung ist.

Sie müssen die Daten nicht bei jeder Anforderung analysieren, aber Sie können sie einmal auf oberster Ebene parsen und effektiv als Konstante behandeln.

Etwas in dieser Richtung -

import os 
import json 

DATA_FILE = os.path.join(os.path.dirname(__file__), 'YOUR_DATA_FILE.json') 
with open(DATA_FILE, 'r') as dataFile: 
    JSON_DATA = json.loads(dataFile.read()) 

Sie dann JSON_DATA wie ein Wörterbuch in Ihrem Code verwenden können.

awesome_data = JSON_DATA['data']['awesome'] 

Falls Sie die Daten an mehreren Stellen zugreifen müssen, können Sie diese in ein eigenes Modul (ex. config.py) bewegen und JSON_DATA importieren, wo Sie es brauchen.

Ex. in main.py

from config import JSON_DATA 

# do something w/ JSON_DATA 
+0

Danke für die Antwort @alpeware! VCS weise ich alwyas gitignore meine Dateien! Wie würdest du es in Python "einmal auf höchster Ebene analysieren und effektiv als Konstante behandeln?" – jiachen

+0

@jiachen kein Problem. Ich habe die Antwort mit einem konkreten Beispiel aktualisiert. Lass es mich wissen, wenn du noch Fragen hast. – alpeware

+0

danke für das beispiel !! Bedeutet dies, dass der JSON für jede eingehende HTTP-Anfrage analysiert und geladen wird? – jiachen