[PYTHON] So definieren Sie Objekte, die häufig in View verwendet werden, intelligent

Objekte, die üblicherweise in jeder Ansicht der Pyramid-App verwendet werden, können mithilfe des Root-Objektmechanismus intelligent definiert werden.

class RootResource(object):
    u"""Anwendungsstammressource
Da Traversal nicht verwendet wird, wird es unverändert als Kontext an View übergeben.
    """

    __name__ = None
    __parent__ = None
    __acl__ = []

    def __init__(self, request):
        self._repos = {
            'user': UserRepository(),
        }

    @property
    def repos(self):
        u"""Jedes Repository wird über ein Wörterbuch bereitgestellt"""
        return self._repos

Wenn Sie es an das Argument root_factory in der Anwendungsdefinition übergeben,

config = Configurator(
    settings=settings,
    root_factory="foo.resource.RootResource"
)

Sie können wie folgt auf Repos zugreifen:

@view_config(route_name="user_detail")
def user_detail(context, request):
    user_repo = context.repos['user']
    user = user_repo.getById(...)
    return ...

Referenz

Recommended Posts

So definieren Sie Objekte, die häufig in View verwendet werden, intelligent
So zeigen Sie Bilder in Djangos Admin an
So kratzen Sie Seiten, denen in Selenium + Headless Chrome "Zugriff verweigert" wurde
So vergleichen Sie, ob der Inhalt der Objekte in scipy.sparse.csr_matrix identisch ist
So definieren Sie Ihr eigenes Ziel in Sage
So erhalten Sie mehrere Modellobjekte zufällig in Django
So definieren Sie Decorator und Decomaker mit einer Funktion
Plotly Trace- und Layout-Vorlagen, die wahrscheinlich in Streudiagrammen verwendet werden
Verwendung von Bootstrap in der generischen Klassenansicht von Django
Hochladen von Dateien in der generischen Klassenansicht von Django
So schreiben Sie Typhinweise für Variablen, die mehrfach in einer Zeile zugewiesen werden
So testen Sie, ob die Ausnahme in Python unittest ausgelöst wird
So definieren Sie mehrere Variablen in einer Python for-Anweisung
Versuchen Sie, die in COTOHA beliebten Schlüsselwörter zu extrahieren
Zusammenfassung zum Schreiben von in gRPC verwendeten .proto-Dateien
So definieren Sie Go-Variablen
Wie man in Python entwickelt
Reguläre Ausdrücke, die in Python leicht und solide zu erlernen sind
[Python 3.8 ~] Wie man rekursive Funktionen mit Lambda-Ausdrücken intelligent definiert
So stellen Sie fest, dass in Python3 ein Kreuzschlüssel eingegeben wurde
Laden Sie Pakete, die sich nicht in Conda befinden, auf anaconda.org hoch und verwalten Sie sie
Ich habe versucht, die Methoden zusammenzufassen, die häufig bei der grundlegenden Algo-Implementierung in Quantx Factory verwendet werden
[Python] Wie man PCA mit Python macht
Umgang mit Sitzungen in SQLAlchemy
Verwendung von Klassen in Theano
Wie man nüchtern mit Pandas schreibt
So sammeln Sie Bilder in Python
So aktualisieren Sie Spyder in Anaconda
Verwendung von SQLite in Python
So konvertieren Sie 0,5 in 1056964608 auf einmal
Wie man CSS in Django reflektiert
Wie man Prozesse in großen Mengen abbricht
Wie man MySQL mit Python benutzt
So verpacken Sie C in Python
Verwendung von ChemSpider in Python
6 Möglichkeiten zum Stringen von Objekten in Python
Verwendung von PubChem mit Python
So führen Sie TensorFlow 1.0-Code in 2.0 aus
Umgang mit Japanisch mit Python
So melden Sie sich bei Docker + NGINX an
So rufen Sie PyTorch in Julia an
[Einführung in Python] So löschen Sie Zeilen, die mehrere Bedingungen in Pandas.DataFrame erfüllen
So finden Sie den Ansichtsnamen mit dem Namespace über die URL (path_info) in Django
So schreiben Sie eine Zeichenfolge, wenn Python mehrere Zeilen enthält
So verbergen Sie Warnungen, die sich nicht auf die Ausführung in Jupyter Notebook auswirken