为什么一定要使用Form:

初识Form
1.views.py
原始
def info_add(request):
if request.method == "GET":
return render(request, "info_add.html")
# 获取用户提交的数据
user = request.POST.get("user")
pwd = request.POST.get("pwd")
age = request.POST.get("age")
#添加到数据库
UserInfo.objects.create(name=user, password=pwd, age=age)
# return HttpResponse("添加成功")
#自动跳转
return redirect("/info/list/")
改变 使用 Form

2.user_add.html

更简单,直接使用for循环

ModelForm(推荐使用)
models.py
class UserInfo(models.Model):
"""员工表"""
name = models.CharField(verbose_name="姓名", max_length=16)
password = models.CharField(verbose_name="密码", max_length=64)
age = models.IntegerField(verbose_name="年龄")
account = models.DecimalField("账户余额", max_digits=10, decimal_places=2, default=0) # 小数
create_time = models.DateTimeField(verbose_name="入职时间")
# 无约束
# depart_id = models.BigIntegerField(verbose_name="部门ID",)
# 有约束
# depart = models.ForeignKey(to="Department", to_field="id", null=True, blank=True, on_delete=models.SET_NULL)
# 置空
depart = models.ForeignKey(to="Department", to_field="id", on_delete=models.CASCADE)
# 在Django中做的约束
gender_choices = (
(1, "男"),
(2, "女"),
)
gender = models.SmallIntegerField(verbose_name="性别", choices=gender_choices)
views.py
直接使用models.py中的定义,不用像使用Form那样去重新引用。
更简洁

本文介绍了Django中如何使用Form和ModelForm来简化视图函数中的数据处理。通过示例展示了从原始手动获取POST数据的方式转变为使用Form类的改进,以及进一步使用ModelForm直接结合模型进行数据操作的便捷性。使用Form和ModelForm可以提高代码的可读性和维护性。
1216

被折叠的 条评论
为什么被折叠?



