【发布时间】:2017-01-29 16:32:23
【问题描述】:
总的来说,我对 django 和 web dev 非常陌生,所以请多多包涵。
我为我的本地足球队创建了一个带有 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:
url(r'^livegame_update', 'steelers_fc.players.views.livegame_update', name='livegame_update'),
哪个视图依次执行这个函数;
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 最终会变成: "更新 player_statistics 设置目标 = 目标 + 1 其中 id = 99"
我已经尝试了几件事:
- 执行 RAW SQL(根据此示例)
- 更新 Django 模型(根据注释掉的部分)
- 执行了一个外部 .py 脚本(在 Bash Comamnd 中运行良好)
- 看过使用“表单”..但从未真正理解。
最终,我觉得问题在于 URL 以及请求和视图之间的参数传递?!?!
任何帮助都将不胜感激,一些简单的例子会很棒。
谢谢
【问题讨论】:
-
你知道什么是sql注入吗? en.wikipedia.org/wiki/SQL_injection
-
是的,当然。但这真的不是什么重要的事情。对我来说只是一个培训课程,同时为一些朋友创造了一些半有用的东西:)
标签: javascript python html mysql django