缺少参数:预期参数:Flask Python Py2neo
Parameter Missing: Expected parameter(s): Flask Python Py2neo
我刚刚开始使用 Python、Flask 和 Neo4j。我正在努力尝试通过 py2neo 将参数从 url 传递给密码查询。
我尝试了 github 上论坛、教程和示例中的一些建议,但未能成功,希望有人能为我指明正确的方向。
这是views.py
#Single Comic
@app.route('/comic/<issue>/')
def comic(issue):
# Get comic
issue = comics.get_issue(issue)
return render_template('issue.html', issue=issue)
这是我的 models.py(如果我将问题编号硬编码到查询中,它会正确显示)
class comics:
def __init__(self, issue):
self.issue = issue;
def get_issue(issue):
query = '''
MATCH (c:Comic) WHERE c.Issue=$issue
RETURN c.Issue as issue, c.Title as title
'''
return graph.run(query)
这是 issue.html 模板
{% extends "base.html" %}
{% block content %}
{% for row in issue %}
<h1>{{ row.issue }}: {{ row.title }} </h1>
<img src="/static/comics/{{ row.issue }}.png" alt="{{ row.title }}">
{% endfor %}
{% endblock %}
当我尝试浏览 www.mydomain.com/comic/1 时,出现 "Parameter Missing: Expected parameter(s): issue" 错误
非常感谢
你快到了。
对于 Cypher 替换,您只需将参数作为关键字参数传递给 graph.run
。所以你最终会得到类似的东西:
class comics:
def __init__(self, issue):
self.issue = issue;
def get_issue(issue):
query = '''
MATCH (c:Comic) WHERE c.Issue=$issue
RETURN c.Issue as issue, c.Title as title
'''
return graph.run(query, issue=issue)
您似乎希望从封闭范围吸收变量,但这是一个远程查询,其中语句模板和参数都通过网络传输。所以驱动程序不进行替换,它发生在服务器上,在 Cypher 引擎中。为此,需要明确提供所有内容。
我刚刚开始使用 Python、Flask 和 Neo4j。我正在努力尝试通过 py2neo 将参数从 url 传递给密码查询。
我尝试了 github 上论坛、教程和示例中的一些建议,但未能成功,希望有人能为我指明正确的方向。
这是views.py
#Single Comic
@app.route('/comic/<issue>/')
def comic(issue):
# Get comic
issue = comics.get_issue(issue)
return render_template('issue.html', issue=issue)
这是我的 models.py(如果我将问题编号硬编码到查询中,它会正确显示)
class comics:
def __init__(self, issue):
self.issue = issue;
def get_issue(issue):
query = '''
MATCH (c:Comic) WHERE c.Issue=$issue
RETURN c.Issue as issue, c.Title as title
'''
return graph.run(query)
这是 issue.html 模板
{% extends "base.html" %}
{% block content %}
{% for row in issue %}
<h1>{{ row.issue }}: {{ row.title }} </h1>
<img src="/static/comics/{{ row.issue }}.png" alt="{{ row.title }}">
{% endfor %}
{% endblock %}
当我尝试浏览 www.mydomain.com/comic/1 时,出现 "Parameter Missing: Expected parameter(s): issue" 错误
非常感谢
你快到了。
对于 Cypher 替换,您只需将参数作为关键字参数传递给 graph.run
。所以你最终会得到类似的东西:
class comics:
def __init__(self, issue):
self.issue = issue;
def get_issue(issue):
query = '''
MATCH (c:Comic) WHERE c.Issue=$issue
RETURN c.Issue as issue, c.Title as title
'''
return graph.run(query, issue=issue)
您似乎希望从封闭范围吸收变量,但这是一个远程查询,其中语句模板和参数都通过网络传输。所以驱动程序不进行替换,它发生在服务器上,在 Cypher 引擎中。为此,需要明确提供所有内容。