Flask 缺少参数:预期参数:Py2neo

Flask 缺少参数:预期参数:Py2neo,flask,cypher,py2neo,Flask,Cypher,Py2neo,我刚刚开始学习Python、Flask和Neo4j。我正在努力通过py2neo将参数从url传递到cypher查询 我在github上尝试了论坛、教程和示例中的许多建议,但都没有成功,希望有人能为我指明正确的方向 这是views.py #Single Comic @app.route('/comic/<issue>/') def comic(issue): # Get comic issue = comics.get_issue(issue) return

我刚刚开始学习Python、Flask和Neo4j。我正在努力通过py2neo将参数从url传递到cypher查询

我在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)
这是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 %}
{%extends“base.html”%}
{%block content%}
{问题%中的行为%1}
{{row.issue}}:{{row.title}
{%endfor%}
{%endblock%}
当我尝试浏览www.mydomain.com/comic/1时,我得到一个“参数缺失:预期参数:问题”错误

非常感谢

你就快到了

对于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引擎中。为此,一切都需要明确提供

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)