django - 我可以轻松地在 Django 中直接进行数据库更新吗?
问题描述
我正在尝试编写一个 Web 应用程序,将数据库的内容显示为网站,例如以表格的形式,并让用户更新表格条目,这些条目应该自动反映在数据库中,以便在页面重新加载时,表格看起来与用户离开时完全一样。
由于我的 Web 开发技能已经过时,我想以此为借口尝试一些新东西。我非常了解 SQL 和 Python,所以我认为 Django 会是一个不错的选择。但是,我在 Javascript 方面没有很多经验。我已经完成了本教程,其中涵盖了经典的 HTML 表单,您可以在其中输入一堆数据,然后点击“提交”以推送到数据库。
我真正希望的是让我的整个表格可以自由编辑,或者立即将任何更改保存到数据库中(例如,每当我单击复选框或“聚焦”文本框时)。作为第二种选择,我考虑为整个页面设置一个“保存”按钮(可能很容易有几个屏幕大小)。
现在,对于第一个选项,我假设我可能不得不使用 Javascript 和 Ajax 技术,我对它们还不太熟悉,因此我目前不太热衷于编写更多的 Javascript 代码。
对于第二个选项,我可能会让我的整个表格成为一个巨大的、带有单个提交按钮的单一表单。我对此有点警惕,因为它对我来说似乎不是很强大。
所以我的问题归结为:有没有办法以一种强大而简单的方式完成我想要的,而不必重新发明轮子?据我了解,Django 不涵盖 HTML 的最终呈现,它只提供数据,所以我认为我需要一些第三方技术来处理那部分?
解决方案
是的,对于您的第二个想法,一次提交整个表,Django 有一个称为 a 的东西ModelFormSet
,您可以在其中定义一个 Web 表单,该表单对表中的每一行(或者,对于您选择的记录集)重复。你需要了解很多基本的东西才能做到这一点......例如。如何创建 Django 视图,如何设置 url,如何编写模板……但你说你想学习 Django……所以……这是一个很好的练习。Django 文档有一个很好的教程,可以引导您开发一个基本的工作应用程序,并且从那里开始做您正在寻找的事情并不多。
这是讨论ModelFormSet
s 的 Django 文档的一部分:
https ://docs.djangoproject.com/en/3.0/topics/forms/modelforms/#model-formsets
顺便说一句,Django 会检测哪些行已更改,因此即使您已全部提交,它也不会每次都写入每一行。
推荐阅读
- scala - Scala ConfigException 上 ConfigFactory.parseFile
- python-3.x - 如何使用 pycharm 安装 Orange3
- angular - 如何在角度不多次生成相同的颜色样式?
- mysql - “在 '?' 附近使用正确的语法?在第 1 行"错误。我正在使用节点将 csv 数据导入 mysql 数据库
- verilog - 如何在 SystemVerilog 覆盖组中指定样本延迟
- excel - 如何计算两个日期之间每月的天数?
- angular - 如何设置 nzBreadcrumb 翻译或自定义模板
- java - java获取测试注释
- python - 如何优化这个检查一个数字是否等于其数字总和乘以一个因子的 Python 脚本?
- javascript - 如何动态分配对象中键的名称?