в чем разница между моделями 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-форм.