в чем разница между моделями Django и форм?

Я новичок в Django и не могу понять модели и формы. Может ли кто-нибудь предложить мне различия и учебники, связанные с ними.

2 ответов


в принципе, модель инкапсулирует информацию о чем-то (т. е. модели it), и хранится в базе данных. Например, мы могли бы моделировать человека:

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, который включает в себя учебник по созданию и использованию моделей и довольно глубокий взгляд на формы. Есть также много книг Django и онлайн-учебники, чтобы помочь вам.


модели связаны со слоем абстракции базы данных, описанным в учебнике 1:

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

Он охватывает все от того, что они есть, что такое философия, что она абстрагирует (raw sql). Прочитайте его и вернуться, если у вас есть какие-либо вопросы, потому что это действительно хорошо.

учебник 4 обложки формы.

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

фреймворк forms - это просто помощник для HTML-форм. Существуют также ModelForms, основанные на Forms framework, которые связывают модели вместе с формами, но ядро этого является основой для работы с отображением, проверкой и обработкой HTML-форм.