What's the best way to access Neo4j from Django?
it seems that i found something that let me confused; i've found two Neo4j to download to python, the first one is:
- http://pypi.python.org/pypi/neo4j-embedded
and the second one is:
- https://svn.neo4j.org/components/neo4j.py/trunk/
what's the difference between the two? the first one seems to be big (size), so does this mean that if i use it i'll not need the neo4j community release (milestone)?
when i've installed the first one, and tried to test a django example, it seems that the directory named "model" https://svn.neo4j开发者_如何学运维.org/components/neo4j.py/trunk/src/main/python/neo4j/model/ is missing? so what's the difference, and who will be better to use with Django?
and what about that one?
- http://pypi.python.org/pypi/neo4django/
I'm part of the team that began updating neo4django from Tobias's original integration, but I'll try to be fair =)
You skipped another important library- neo4j-rest-client, the Python REST binding. neo4django is based on this library, and shares a bunch of its advantages and disadvantages. In particular, a REST client will always be slower than a native client, but it allows the easy use of a remote database.
neo4django is a pretty tight integration with Django. It's very similar to the standard ORM, and has some cool goodies like queries with index support and working alongside a relational DB. I like it alot, but if you aren't using a remote database, the performance penalty might be too high. I'm working on it, though, so keep posted!
I believe the svn link above (https://svn.neo4j.org/components/neo4j.py/trunk/) is the old native Python binding. The new one is way better from what I've seen (less of a headache, updated), so unless you want to give the old bundled Django integration a try, it'd be easier to avoid it.
The first link (http://pypi.python.org/pypi/neo4j-embedded) is the newer integration. I don't think 'model' is included in the distro, because it doesn't yet come with Django integration. If you need serious performance and you're okay with dropping the Django-style data-definition-language, it's the way to go.
In the future, I hope to get neo4django working with the native and REST clients... we'll see what happens!
精彩评论