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

时间:2011-03-30 03:57:50

标签: django django-models django-forms

我是Django的新手,无法理解模型和表格。任何人都可以向我建议与他们相关的差异和教程。

2 个答案:

答案 0 :(得分:34)

基本上,模型封装有关某事物的信息(即模型它),并存储在数据库中。例如,我们可以为一个人建模:

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表单,即一组字段,呈现给最终用户以填充一些数据。表单可以完全独立于模型,例如搜索表单: / p>

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 documentation开始,其中包括有关创建和使用模型的教程,以及对表单的深入研究。还有很多Django书籍和在线教程可以帮助你。

答案 1 :(得分:8)

模型与教程1中所涵盖的数据库抽象层相关:

http://docs.djangoproject.com/en/dev/intro/tutorial01/

它涵盖了所有内容,包括它们是什么,它是什么,它是什么,它是抽象的(原始sql)。如果您有任何问题,请阅读并回来,因为它非常好。

教程4涵盖表格。

http://docs.djangoproject.com/en/dev/intro/tutorial04/

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