py2neo和flask查询

企业社会责任

我的应用程序出现问题,我正在尝试使用py2neo在flask中运行代码。我有最新版本的NEO4j和python2.7

这是我在USER类中的功能代码

class User:
    def __init__(self, username):
            self.username = username
    def find(self):
            user = graph.find_one("User", "username", self.username)
    def add_challenge(self,challenge_title,total_question_per_user,challengecat,percentage_question,prize,ranks,challenge_status):
            query = '''
            MATCH (u:User),(p:Prize),(ca:Category)
            WHERE u.username = {username} and p.pid = {prize} and ca.catname = {challengecat}
            CREATE (ch:Challenge {chid: str(uuid.uuid4()),challenge_title: {challenge_title}, total_question_per_user: {total_question_per_user},challenge_status: {challenge_status},timestamp:timestamp(),date:date()}),
            (p)-[:BELONG {rank: {ranks} }]->(ch),(ca)-[:BELONG {percentage_question: {percentage_question} }]->(ch)
            '''

            return graph.run(query,username=self.username,prize=prize,challengecat=challengecat,challenge_title=challenge_title,total_question_per_user=total_question_per_user,challenge_status=challenge_status,ranks=ranks,percentage_question=percentage_question)

我正在从视图文件中调用,并且在视图文件中导入了用户类,但是当我运行此页面时,它将显示错误

这是代码f查看文件

@app.route('/admin/add/challenge', methods = ['GET', 'POST'])
def admin_add_challenge():
    if not session.get('username'):
            return redirect(url_for('admin_login'))
    if request.method == 'POST':
            challenge_title = request.form['challenge_title']
            total_question_per_user = request.form['total_question_per_user']
            challengecat = request.form['challengecat']
            percentage_question = request.form['percentage_question']
            prize = request.form['prize']
            ranks = request.form['ranks']
            challenge_status = request.form['challenge_status']

            if not challenge_title or not total_question_per_user or not ranks:
                    if not challenge_title:
                            flash('Please Enter Challenge')
                    if not total_question_per_user:
                            flash('Please Enter Number of question Per Player')
                    if not ranks:
                            flash('Please Enter Ranks for win this Challenge')
            else:
User(session['username']).add_challenge(challenge_title,total_question_per_user,challengecat,percentage_question,prize,ranks,challenge_status)
                    flash('Challenge Added successfully')
                    return redirect(url_for('admin_add_challenge'))

    categories = get_categories()
    prizes = get_prizes()
    return render_template('admin/admin_add_challenge.html',categories=categories,prizes=prizes)

当我在页面http:// sitename / admin / add / challenge提交挑战表格时,这是错误

ERROR in app: Exception on /admin/add/challenge [POST]
Traceback (most recent call last):
  File "/usr/local/lib/python2.7/site-packages/flask/app.py", line 1988, in wsgi_app
    response = self.full_dispatch_request()
  File "/usr/local/lib/python2.7/site-packages/flask/app.py", line 1641, in full_dispatch_request
    rv = self.handle_user_exception(e)
  File "/usr/local/lib/python2.7/site-packages/flask/app.py", line 1544, in handle_user_exception
    reraise(exc_type, exc_value, tb)
  File "/usr/local/lib/python2.7/site-packages/flask/app.py", line 1639, in full_dispatch_request
    rv = self.dispatch_request()
  File "/usr/local/lib/python2.7/site-packages/flask/app.py", line 1625, in dispatch_request
    return self.view_functions[rule.endpoint](**req.view_args)
  File "/root/gamepro/ddqcore/views.py", line 430, in admin_add_challenge
    User(session['username']).add_challenge(challenge_title,total_question_per_user,challengecat,percentage_question,prize,ranks,challenge_status)
  File "/root/gamepro/ddqcore/models.py", line 285, in add_challenge
    return graph.run(query,username=self.username,prize=prize,challengecat=challengecat,challenge_title=challenge_title,total_question_per_user=total_question_per_user,challenge_status=challenge_status,ranks=ranks,percentage_question=percentage_question)
  File "/usr/local/lib/python2.7/site-packages/py2neo/database/__init__.py", line 731, in run
    return self.begin(autocommit=True).run(statement, parameters, **kwparameters)
  File "/usr/local/lib/python2.7/site-packages/py2neo/database/__init__.py", line 1277, in run
    self.finish()
  File "/usr/local/lib/python2.7/site-packages/py2neo/database/__init__.py", line 1296, in finish
    self._sync()
  File "/usr/local/lib/python2.7/site-packages/py2neo/database/__init__.py", line 1286, in _sync
    connection.fetch()
  File "/usr/local/lib/python2.7/site-packages/py2neo/packages/neo4j/v1/bolt.py", line 337, in fetch
    self.acknowledge_failure()
  File "/usr/local/lib/python2.7/site-packages/py2neo/packages/neo4j/v1/bolt.py", line 284, in acknowledge_failure
    fetch()
  File "/usr/local/lib/python2.7/site-packages/py2neo/packages/neo4j/v1/bolt.py", line 337, in fetch
    self.acknowledge_failure()
  File "/usr/local/lib/python2.7/site-packages/py2neo/packages/neo4j/v1/bolt.py", line 284, in acknowledge_failure
    fetch()
  File "/usr/local/lib/python2.7/site-packages/py2neo/packages/neo4j/v1/bolt.py", line 322, in fetch
    raw.writelines(self.channel.chunk_reader())
  File "/usr/local/lib/python2.7/site-packages/py2neo/packages/neo4j/v1/bolt.py", line 173, in chunk_reader
    chunk_header = self._recv(2)
  File "/usr/local/lib/python2.7/site-packages/py2neo/packages/neo4j/v1/bolt.py", line 156, in _recv
    raise ProtocolError("Server closed connection")
ProtocolError: Server closed connection
49.32.44.55 - - [20/Aug/2016 06:49:05] "POST /admin/add/challenge HTTP/1.1" 500 -
企业社会责任

在python 2.7和py2neo版本3中,我们不能使用这样的查询,我们需要这样的查询

selector = NodeSelector(graph)
            selected_user = selector.select("User", username=user)
            selected_prize = selector.select("Prize", pid=prize)
            selected_cat = selector.select("Category",catname = challengecat)
            challenge = Node("Challenge",chid=str(uuid.uuid4()),challenge_title=challenge_title,total_question_per_user=total_question_per_user,challenge_status=challenge_status,timestamp=timestamp(),date=date())
            rel = Relationship(selected_user,"ADDED",challenge)
            rel1 = Relationship(selected_prize,"BELONG",challenge)
            rel2 = Relationship(selected_cat,"BELONG",challenge)
            graph.create(rel)
            graph.create(rel1)
            graph.create(rel2)

感谢企业社会责任

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

py2neo中的密码查询

来自分类Dev

使用py2neo和flask获取所有与我的输入节点连接的节点

来自分类Dev

参数缺失:预期参数:Flask Python Py2neo

来自分类Dev

py2neo从Cypher查询返回数据时出错

来自分类Dev

将py2neo查询输出为JSON

来自分类Dev

如何在py2neo中中止查询?

来自分类Dev

py2neo密码查询错误:neo4j.SyntaxException

来自分类Dev

在neo4j和py2neo中使用索引

来自分类Dev

py2neo的WriteBatch操作失败

来自分类Dev

在py2neo中批处理

来自分类Dev

Py2neo搜索错误

来自分类Dev

连接py2neo时出错

来自分类Dev

如何在py2neo中将参数传递给密码交易查询

来自分类Dev

如何使用py2neo或cypher查询语言计算所有关系属性

来自分类Dev

如何将列表传递给 Py2neo 密码查询

来自分类Dev

py2neo:各种命令的性能和返回值

来自分类Dev

无法在浏览器中使用密码查询查看我使用py2neo创建的节点

来自分类Dev

py2neo 2.0:错误:httpstream :!SocketError:超时

来自分类Dev

如何使用py2neo批量添加标签

来自分类Dev

可以在py2neo的标签上创建索引吗?

来自分类Dev

py2neo引发ConstraintViolation错误,shell没有

来自分类Dev

如何用py2neo声明唯一的约束

来自分类Dev

(py2neo)如何检查关系是否存在?

来自分类Dev

Py2Neo:graph.cypher.execute()

来自分类Dev

Py2neo:查找关系并返回节点

来自分类Dev

使用py2neo上传数据的最佳方法

来自分类Dev

在Py2neo上了解合并的问题

来自分类Dev

使用Py2neo插入属性值

来自分类Dev

在py2neo中批量创建或获取路径