Django und Neo4j ohne Neo4Django

1 Antwort

9

Sie können absolut mit neo4j-rest-client oder py2neo fortfahren, ohne neo4django zu benutzen. Genauso können Sie mit Django, einem beliebigen REST-Client, etc. jederzeit einen anderen Datenbanktreiber verwenden.

Was wirst du verlieren? Das Modell DSL, die eingebaute Abfrage (zB Person.objects.filter(name="Mohamed") ), die eingebaute Indizierung und die Lucene, Gremlin und Cypher dahinter. Einige Dinge werden viel einfacher sein - wie das Setzen einer beliebigen Eigenschaft auf einem Knoten - aber Sie müssen mehr darüber lernen, wie Neo4j funktioniert.

Sie werden auch einige der Verknüpfungen verlieren, die Django für die Arbeit mit neo4django bereitstellt, wie get_object_or_404() und einige der klassenbasierten Ansichten, die mit Suchanfragen arbeiten.

Was wirst du gewinnen? Absolute Macht über die DB und eine leichtere Zeit, die DB-Leistung zu optimieren. Obwohl neo4django bei weitem nicht so gut ist wie einige traditionelle ORMs in der Python-Sphäre, ist der Trade-off von Power vs bereitgestellten Leichtigkeit ähnlich.

Das heißt, die beiden können zusammenarbeiten - Sie können jederzeit von neo4django zu den zugrunde liegenden REST-Client-Knoten und -Beziehungen wechseln. Verwenden Sie einfach model_instance.node , um das zugrunde liegende neo4j-rest-client-Knotenobjekt aus einem Modell zu erhalten, und from neo4django.db import connection , um einen umschlossenen neo4j-rest-client GraphDatabase zu erhalten.

Ob Sie etwas verpassen: neo4django wurde geschrieben, um eine mächtige Entwicklerschnittstelle - das Django-ORM - wiederzuverwenden - so sollte es sich ähnlich wie das Schreiben von Modellen für Postgres anfühlen. Ich habe in der Vergangenheit ein bisschen über dieses seltsame Gefühl geschrieben. Ich denke, ein Teil des Problems könnte sein, dass die Bibliothek nicht die Graphterminologie hervorhebt, die neue graphinteressierte Entwickler erwarten - wie Traversalen und Mustervergleich - und kleidet stattdessen diese Techniken in Django-Abfragekleidung.

Ich würde deine Gedanken lieben oder etwas wissen, was die Bibliothek tun soll, was sie nicht tut :) Viel Glück!

    
Matt Luongo 14.02.2013, 21:49
quelle