Специальная, подарочная акция получения доступа к Django4!
Как, я, начал код писать в Python? Смотрите, если уперлись и ничего не получается.
Посмотрите видео. Если нам кажется. что мы можем написать пару функций или классов по формам и будем понимать, как это делают в книгах - это не так. Нужен иной подход. Мы рассмотрим из чего состоит форма, изучим API в Jupyter и в реальности напишем чистые формы, разберём подробнее формы из моделей. Тогда мы можем рассчитывать на понимание документации.
С учётом того, что мы ранее изучили git + django + vs code. давайте использовать git, для облегчения повседневной работы.
НЕт смысла тренировать формы в нашем основной проекте, что бы не делать кавардак, создадим ветку и там будем тренироваться с формами.
Вот наш план работы с формами.
-
""" https://docs.djangoproject.com/en/4.0/#forms todo: Работа с формами. ? Создать приложение app_form. ? Увидеть из чего состоят формы. ? Понять поля форм. ? Понять виджеты форм. ? Разобраться с API форм: 1. В Jupyter 2. В реальной форме увидеть применение.. ? Разобраться с методами форм в двух ваиантах: 1. В Jupyter 2. В реальной форме увидеть применение. ? Глубже освоить формы из моделей. """
нам нужно подготовить все для нормального, подробного изучения form Django, создадим app и файл для jupyter notebook.
Как вы увидели, я немного тупанул и у нас в основную ветку затесались disscusions и forms_app(это прекрасно), вам необходимо это исправить, что бы больше не повторять. (домашнее задание. Сбросить в группу.
Как вы решили этот вопрос и в чём была причину и решение.
Прежде, чем начать детальное рассмотрение. хорошо бы осознать из чего состоит форма. что она есть, как устроена, что в ней основное.
Давайте поступим так.
Рассмотрим готовую форму, поймём отличия с моделью и разберём важные мелочи, почему в форму передаются именно аргументы (а допустим не называется, как в моделях, настройки полей).
И прогоним исходный код, через jupyter. я вам напомню Питон. что бы понимание уже стало на все 100. Это у нас будет отличный старт в формах - земля появится под ногами.
# """ def f(pos1, pos2, /, pos_or_kwd, *, kwd1, kwd2): pos = pos1 + pos2 p_or_k = 'argu' + pos_or_kwd kwd = kwd1 + kwd2 return pos, p_or_k, kwd """ "\ndef f(pos1, pos2, /, pos_or_kwd, *, kwd1, kwd2):\n pos = pos1 + pos2\n p_or_k = 'argu' + pos_or_kwd\n kwd = kwd1 + kwd2\n return pos, p_or_k, kwd\n " def f(pos1, pos2, /): pos = pos1 + pos2 return pos f(pos1 = 5, pos2=6) --------------------------------------------------------------------------- TypeError Traceback (most recent call last) /tmp/ipykernel_61037/258070995.py in <module> ----> 1 f(pos1 = 5, pos2=6) TypeError: f() got some positional-only arguments passed as keyword arguments: 'pos1, pos2' f(5, 6) 11 def f (pos_or_kwd): var = pos_or_kwd + "ork" return var f('w') 'work' f(pos_or_kwd="w") 'work' def f(*, kwd1, kwd2): kwd = kwd1 + kwd2 return kwd f('wo', 'rk') --------------------------------------------------------------------------- TypeError Traceback (most recent call last) /tmp/ipykernel_61037/442069058.py in <module> ----> 1 f('wo', 'rk') TypeError: f() takes 0 positional arguments but 2 were given f(kwd1='wo', kwd2='rk') 'work'
Откройте этот файл исходного кода django-form.
Откройте сейчас и до урока и посмотрите.
У вас есть ощущение, что это просто код и не понятно ни где начало ни где конец ни на что смотреть и как вообще в этом разобраться?
Как то в одном интервью создатель Линукс Линус сказал такую фразу (он часто на этом акцентирует внимание)
Цитата: -"мне нравятся программисты. которые видят слои кода."
Скорее всего вы не найдёте в Википедии многоуровневую архитектору кода - это немного нет.
Мы сейчас не говорим от том что нужно разделить к примеру бизнес логику и нечто другое.
Мы говорим о чтении кода в конкретном файле и умении выделять слои(архитектуру построения самого кода, как стиля).
Давайте научимся понимать исходный код слоями, что облегчит чтение кода, мы будем понимать с чего начинать читать код в файле, далее легко выстроить и эжу саму архитектуру.
Джанго в этом примере очень крут, он структурирован очень хорошо и очень понятно.
Так же я часто рекомендую смотреть исходный код
https://beeware.org
Вы почувствуете один и тот же почерк кода, да, да потому что Рассел Кейт Магги является ведущим разрабочиком Джанго.
Поэтому давайте учится у этих людей. как выстраивать код, что бы это было профессионально.
Но для начала давайте поймём м чего начать читать код.
Мы с вами сделаем круче, обратите внимание, как за пару минут понять смысл документации просто взглянув на исходный код, то что я объясню, многие не понимают.
на выходе мы должны чётко расставить в голове API.
Это важный момент, API в документации в куче.
Именно программист должен расставить в голове API (если этого не сделать, то мы конечно можем проделать API, но у нас будет постоянное ощущение не до понимания, плавания).
Мы с вами расставим в голове API, при помощи просмотра документации и просмотра исходного кода и нам будет понятно:
что передать как аргументы в поле формы. (из чего то оно состоит это поле тоже хорошо бы понять).
Что применять, как методы в представлении.
Ну и в конце концов домашнее задание. Посмотреть код toga. Вы уловите один и тот же стиль кодирования с него и учитесь.
1 2 3 ... 6 7 8 >
Просмотр всех сообщений c тегом: forms-django