Django模型和表单之间有什么区别?

Django模型和表单之间有什么区别?,django,django-models,django-forms,Django,Django Models,Django Forms,我是Django的新手,不能理解模型和表单。任何人都可以向我推荐与它们相关的区别和教程。模型与教程1中介绍的数据库抽象层相关: 它涵盖了一切,从它们是什么,哲学是什么,抽象什么(原始sql)。阅读它,如果你有任何问题,请回来,因为它真的很好 教程4包括表单。 表单框架只是HTML表单的助手。还有基于表单框架的ModelForms,它将模型与表单联系在一起,但它的核心是一个用于处理HTML表单显示、验证和处理的框架。基本上,模型封装了关于某个东西的信息(即,它对它建模),并存储在数据库中。例如

我是Django的新手,不能理解模型和表单。任何人都可以向我推荐与它们相关的区别和教程。

模型与教程1中介绍的数据库抽象层相关:

它涵盖了一切,从它们是什么,哲学是什么,抽象什么(原始sql)。阅读它,如果你有任何问题,请回来,因为它真的很好

教程4包括表单。


表单框架只是HTML表单的助手。还有基于表单框架的ModelForms,它将模型与表单联系在一起,但它的核心是一个用于处理HTML表单显示、验证和处理的框架。

基本上,模型封装了关于某个东西的信息(即,它对它建模),并存储在数据库中。例如,我们可以模拟一个人:

from django import models

class Person(models.Model):
    name = models.CharField(max_length=100)
    age = models.PositiveIntegerField()
    height = models.FloatField()
    weight = models.FloatField()
无论何时创建和保存模型实例,Django都会将其存储在数据库中,以便您在以后检索和使用

另一方面,表单对应于HTML表单,即一组字段,提供给最终用户以填充某些数据。表单可以完全独立于模型,例如搜索表单:

from django import forms

class SearchForm(forms.Form):
    search_terms = forms.CharField(max_length=100)
    max_results = forms.IntegerField()
提交时,Django负责验证用户输入的值并将其转换为Python类型(如整数)。然后,您所要做的就是编写代码,用这些值执行某些操作

当然,如果您已经创建了一个模型,您通常会希望允许用户通过表单创建这些模型。Django不必复制所有字段名并自己创建表单,而是为此提供了一个快捷方式,
ModelForm

from django.forms import ModelForm

class PersonForm(forms.ModelForm)
    class Meta:
        model = Person
至于进一步阅读,我将从开始,其中包括一个关于创建和使用模型的教程,以及对表单的相当深入的了解。还有大量的Django书籍和在线教程可以帮助您学习。

是的,但“表单”实际上只是HTML的助手。模型与django的核心相关,django将关系数据库数据转换为python对象的数据库抽象层(ORM——对象关系映射器)。