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

Viv*_*k S 15 django django-models django-forms

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

Bla*_*air 39

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

from django import models

class Person(models.Model):
    name = models.CharField(max_length=100)
    age = models.PositiveIntegerField()
    height = models.FloatField()
    weight = models.FloatField()
Run Code Online (Sandbox Code Playgroud)

每当创建并保存模型实例时,Django都会将其存储在数据库中,供您在以后检索和使用.

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

from django import forms

class SearchForm(forms.Form):
    search_terms = forms.CharField(max_length=100)
    max_results = forms.IntegerField()
Run Code Online (Sandbox Code Playgroud)

提交时,Django负责验证用户输入的值并将其转换为Python类型(例如整数).然后你要做的就是编写用这些值做某事的代码.

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

from django.forms import ModelForm

class PersonForm(forms.ModelForm)
    class Meta:
        model = Person
Run Code Online (Sandbox Code Playgroud)

至于进一步阅读,我将从Django文档开始,其中包括有关创建和使用模型的教程,以及对表单的深入研究.还有很多Django书籍和在线教程可以帮助您.


Yuj*_*ita 8

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

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

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

教程4涵盖了表格.

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

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

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