使用带有apache的neo4django

时间:2013-07-10 07:30:28

标签: python django apache neo4j neo4django

我正在尝试在neo4j服务器上托管的django网站上使用Apache数据库。我正在使用neo4django。我遵循了http://neo4django.readthedocs.org/en/v0.1.8/index.html中给出的指示。在创建节点时,我收到以下错误:

error at /disk/ [Errno 111] Connection refused Request

我的models.py:

import django.db
from neo4django.db import models

class Person(django.db.models.Model):
name = django.db.models.CharField(max_length=50, null=True, blank=True)
username = django.db.models.CharField(max_length=50, null=True, blank=True)
password=django.db.models.CharField(max_length=50, null=True, blank=True)
email=django.db.models.CharField(max_length=50, null=True, blank=True)

    class Meta:
        db_table='lt_profile'

class Pnode(models.NodeModel):
    name=models.StringProperty()
    #more fields

class Anode(models.NodeModel):
    art_type=models.StringProperty(max_length=50)
    mtime=models.StringProperty(max_length=200)

#relation:

我的settings.py:

NEO4J_DATABASES = {
    'default' : {
        'HOST':'localhost',
        'PORT': 7474,
        'ENDPOINT':'/var/www/graph_db'
    }
}

DATABASE_ROUTERS = ['neo4django.utils.Neo4djangoIntegrationRouter']

错误发生的代码:

a = Anode.objects.create(art_type='py', mtime=str(file_mtime))
a.save()

我想我需要在Apache的port.conf文件中更改一些内容,但我不知道应该怎么做。我尝试过这样的事情:

ports.conf中收听7474,但没有运气。任何帮助将不胜感激。感谢

1 个答案:

答案 0 :(得分:1)

@Wes在评论中是正确的 - 您的端点应设置为相对URL,而不是文件路径。

From the docs,试试'ENDPOINT':'/db/data',这是Neo4j的默认设置。

编辑:

其他一些建议:

您绝对不需要在Apache配置中添加任何内容。 Apache从Django提供您的内容,但不控制您可以从Django访问哪些端口 - 其配置文件仅涵盖外部用户可以访问的端口。实际上,如果Apache配置为侦听7474并且它与Neo4j位于同一服务器上,则其中一个将无法使用该端口。

在您的代码中,您使用a = Anode.objects.create(...)后跟a.save()Anode.objects.create()

的快捷方式
a = Anode(...)
a.save()

所以你实际上节省了两次。我会使用其中一个来避免更频繁地访问数据库。