首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >连接到heroku上托管的Graphenedb时出错

连接到heroku上托管的Graphenedb时出错
EN

Stack Overflow用户
提问于 2017-04-25 18:53:48
回答 1查看 375关注 0票数 0

您好,我无法连接到7687端口上的本地主机-服务器正在运行吗?每当我的python代码执行时出错

代码语言:javascript
复制
import os
import json
from urllib.parse import urlparse, urlunparse

from django.shortcuts import render

# Create your views here.
from py2neo import Graph, authenticate
from bottle import get,run,request,response,static_file
from py2neo.packages import neo4j

url = urlparse(os.environ.get("GRAPHENEDB_GOLD_URL"))
url_without_auth = urlunparse((url.scheme, ("{0}:{1}").format(url.hostname, url.port), '', None, None, None))
user = url.username
password = url.password
authenticate(url_without_auth,user, password)
graph = Graph(url_without_auth, bolt = False)

#graph = Graph(password='vjsj56@vb')


@get("/")
def get_index():
    return static_file("index.html", root="static")


@get("/graph")
def get_graph(self):
    print("i was here" )
    print("graph start")
    results = graph.run(
        "MATCH (m:Movie)<-[:ACTED_IN]-(a:Person) "
        "RETURN m.title as movie, collect(a.name) as cast "
        "LIMIT {limit}", {"limit": 10})
    print("graph run the run")
    nodes = []
    rels = []
    i = 0
    for movie, cast in results:
        #print("i am here")
        nodes.append({"title": movie, "label": "movie"})
        target = i
        i += 1
        for name in cast:
            print(name)
            actor = {"title": name, "label": "actor"}
            try:
                source = nodes.index(actor)
            except ValueError:
                nodes.append(actor)
                source = i
                i += 1
            rels.append({"source": source, "target": target})
    return {"nodes": nodes, "links": rels}


@get("/search")
def get_search():
    try:
        q = request.query["q"]
    except KeyError:
        return []
    else:
        results = graph.run(
            "MATCH (movie:Movie) "
            "WHERE movie.title =~ {title} "
            "RETURN movie", {"title": "(?i).*" + q + ".*"})
        response.content_type = "application/json"
        return json.dumps([{"movie": dict(row["movie"])} for row in results])


@get("/movie/<title>")
def get_movie(title):
    results = graph.run(
        "MATCH (movie:Movie {title:{title}}) "
        "OPTIONAL MATCH (movie)<-[r]-(person:Person) "
        "RETURN movie.title as title,"
        "collect([person.name, head(split(lower(type(r)),'_')), r.roles]) as cast "
        "LIMIT 1", {"title": title})
    row = results.next()
    return {"title": row["title"],
            "cast": [dict(zip(("name", "job", "role"), member)) for member in row["cast"]]}

此代码在我的本地系统上运行良好,但在heroku和graphenedb上部署时出现连接错误

异常位置:连接中的/app/.heroku/python/lib/python3.6/site-packages/py2neo/packages/neo4j/v1/connection.py,第387行

EN

回答 1

Stack Overflow用户

发布于 2017-04-26 03:59:34

我是胡安卓,来自GrapheneDB。

你能检查一下你的GRAPHENEDB_GOLD_URL变量吗?

你可以这样做:

代码语言:javascript
复制
$ heroku config:get GRAPHENEDB_GOLD_URL

它应该是这样的:

代码语言:javascript
复制
http://<user>:<pass>@XXX.graphenedb.com:24789/db/data

(请不要在此分享您的URL )

如果您的变量为空,请阅读有关检索GrapheneDB环境变量的更多here

如果这不是你的问题,或者问题仍然存在,你可以通过我们管理面板上的支持链接联系我们吗?Heroku团队将把支持票转发给我们,我们会将与您的数据库相关的所有信息注入到票中。

谢谢,

胡安卓

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43608686

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档