在Django Proj中使用“onclick”按钮命令更新MySQL

2024-10-02 20:40:30 发布

您现在位置:Python中文网/ 问答频道 /正文

总体而言,我对django和web开发非常陌生,所以请容忍我。在

我已经为我的本地足球队创建了一个带有MySQL后端的简单站点,并希望创建一个页面来更新游戏的分数(存储在表中),只需单击一个按钮(将当前分数增加+1)。 我毫不怀疑,这是超简单的,但经过几个星期的类似帖子,似乎没有什么对我有用(至少我无法理解)。在

我有一个模板,可以创建一个按钮,该按钮包含需要更新的记录的ID:

<a href="{% url livegame_update %}?value={{stat.id}}?updatetype=goals" class="btn btn-success" role="button" onclick="alert({{stat.id}})" id={{stat.id}}>Goal</a>

指向以下URL:

^{pr2}$

反过来执行这个功能的视图

def livegame_update(request):
StatID = request.GET.get('value','1')
StatType = request.GET.get('updatetype','1')
SQL = "update players_statistics set " + StatType + " = " + StatType + " + 1 where id = " + StatID + ";"
#stat_edit = statistics.objects.get(id=StatID)
#stat_edit.goals = stat_edit.goals + 1
#stat_edit.save() # save object

cursor = connection.cursor ()
cursor.execute (SQL)
connection.commit()
cursor.close ()
connection.close ()

return render_to_response

最终,上面的SQL最终将是: “更新球员统计数据set goals=goals+1,其中id=99

我试过几种方法:

  • 执行原始SQL(按照这个例子)
  • 更新Django模型(根据注释部分)
  • 执行了一个external.py脚本(在Bash命令中运行得非常好)
  • 看了看用“表格”…但从来没有真正理解过。在

最终,我觉得问题出在URL和请求与视图之间的参数传递上?!?!在

任何帮助将不胜感激,一些简单的例子将是惊人的。在

谢谢


Tags: idsqlgetrequestupdateconnectionedit按钮
1条回答
网友
1楼 · 发布于 2024-10-02 20:40:30

嗯。。。首先,我不明白你为什么要创建光标之类的东西。在

我会用我能想象得到的最简单的方式来帮助你。在

创建模型

class Match(models.Model):
    goals = models.IntegerField(default=)
    # Add as many fields as you need, eg. Teams / Scorer / and other stuff

    def __str___(self):
    return self.goals

第2步-网址.py/有,但有些零件不见了

^{pr2}$

说明:如您所见,您的url现在将match_id作为传递到视图的参数。带有[\d]+的部分表示它必须是一个数字,加上表示不限数量。在

第3步-您的视图(更新)

def livegame_update(request, match_id):
    try:
        match = Match.objects.get(id=match_id)
    except Match.DoesNotExist():
        return render(request, 'your_template.html', {'error': 'match with given id dosnt exist})
    match.goals += 1
    match.save()

    return render(request, 'your_template.html', {'msg': 'incremented score'})

所以简单地说就是:找到一个匹配对象,其id在参数(Match\u id)中给出。如果找不到它,请返回到模板,并传递带错误的dict。如果它存在,将你的目标字段增加一个。然后保存对象。最后回到你的模板按钮和东西。在

清楚了吗?你需要用上面的代码解释什么吗?在

相关问题 更多 >