Дјанго

Употреба подразумеване вредности НУЛЛ у Дјанго моделу

Употреба подразумеване вредности НУЛЛ у Дјанго моделу
Модел је један од значајних делова Дјанго апликације засноване на бази података. Модел дефинише структуру базе података. Тип података табеле базе података и начин уметања података на основу различитих атрибута описани су у моделу. Валидација података се такође може контролисати коришћењем модела. Свака табела у бази садржи одређени број поља или колона. Модел дефинише тип сваког поља табеле. Задани атрибут се користи у моделу за постављање задате вредности за одређено подручје ако корисник за то поље не унесе податке. Подразумевана вредност поља може бити празно или било која одређена вредност. Тхе нула и празно вредности нису исте. нула користи се за дефинисање да ли је празна вредност дозвољена или не за одређено поље. Ако је нула је подешен на Нетачно, тада празан низ неће бити дозвољен у пољу уписаног целобројним бројем, али празан низ може се доделити у пољу укупаном низом. Ако је нула је подешен на Истинито, тада ће се у целобројном пољу уместо празног низа дати НУЛЛ вредност. бланк се користи углавном за валидацију обрасца и не проверава тип података поља. Начин употребе Уобичајено и нула атрибути у Дјанго моделу приказани су у овом упутству.

Предуслови:

Пре него што увежбате скрипту овог водича, морате извршити следеће задатке.

А. Инсталирајте Дјанго верзију 3+ на Убунту 20+ (пожељно)
Б. Направите Дјанго пројекат
Ц. Покрените Дјанго сервер да бисте проверили да ли сервер исправно ради или не.

Подесите апликацију Дјанго:

А. Покрените следећу команду да бисте креирали Дјанго апликацију са именом датабасеапп.

$ питхон3 управља.пи стартапп датабасеапп

Б. Покрените следећу наредбу да бисте креирали корисника за приступ Дјанго бази података. Ако сте већ довршили корисника, тада не морате покретати команду.

$ питхон3 управља.пи ствара корисничког корисника

Ц. Додајте име апликације у ИНСТАЛЛЕД_АПП део подешавања.пи датотека.

ИНСТАЛЛЕД_АППС = [

'валидатионапп'
]

Д. Направите фасциклу са именом предлошци унутар датабасеапп и подесите предлошци локација апликације у ПРЕДЛОЗИ део подешавања.пи датотека.

ПРЕДЛОЗИ = [

… .
'ДИРС': ['/ хоме / фахмида / дјанго_про / датабасеапп / темплатес'],
… .
,
]

Дизајн модел са подразумеваним и нулти атрибутима:

Измените модели.пи датотека са следећом скриптом за креирање табеле са именом производи који ће садржати четири поља без поља ид. Ове имена, цена, датум производње и датум истека. Вредност нула атрибут је постављен на Тачно за сва поља. Вредност празно атрибут је постављен на Тачно и за сва поља. То значи да корисник може да задржи поља празна пре него што пошаље образац који ће користити овај модел. Тхе Уобичајено Вредност атрибута је постављена за цену, датум_производње и датум истека.

модели.пи

# Увоз модула модула
од дјанго.дб модели увоза
# Креирајте разред да бисте дефинисали структуру табеле учитеља
разред Производ (модели.Модел):
име = модели.ЦхарФиелд (мак_ленгтх = 50, нулл = Труе, бланк = Труе)
цена = модели.ИнтегерФиелд (нулл = Труе, дефаулт = ", бланк = Труе)
датум_производње = модели.ДатеФиелд (нулл = Труе, подразумевано = '0000-00-00', бланк = Труе)
датум истека = модели.ДатеФиелд (нулл = Труе, подразумевано = '0000-00-00', бланк = Труе)

Покрените следеће наредбе за миграцију да бисте креирали потребне датотеке за миграцију и табелу базе података СКЛите базе података.

$ питхон3 управља.пи макемигратионс датабасеапп
$ питхон3 управља.пи мигрирати

Уметање података помоћу контролне табле Дјанго Администратион:

Измените садржај админ.пи датотека са следећом скриптом за регистрацију модела у бази података.

админ.пи
Измените урл адресе.пи датотека са следећом скриптом за дефинисање путање до отварања Дјанго административне контролне табле.

урл адресе.пи

# Увоз административног модула
од дјанго.допринос увоз админ
# Увоз модула путање
од дјанго.путања за увоз УРЛ адреса
# Дефинишите путању за купца и администратора
урлпаттернс = [
патх ('админ /', админ.сајт.урлс)
]

Сада покрените Дјанго сервер и идите на Дјанго административну контролну таблу користећи следећу УРЛ адресу.

хттп: // лоцалхист: 8000 / админ

отворите образац за унос производа кликом Додајте производ. Ако корисник преда образац без уметања података, у претраживачу ће се појавити следећи излаз. Овде се у два поља са датумима приказују грешке јер задата вредност поља са датумом није у важећем формату.

Следећи излаз ће се појавити након додавања важећих података о датуму. Ево, Цена поље је празно за коришћење подразумеваног атрибута.

Уметање података помоћу шаблона:

Начин уметања података у производи табела која користи ХТМЛ образац приказана је у овом одељку. Овде ће се елементи обрасца генерисати на основу претходно креираног модела.

облици.пи

# Увоз модула образаца
из образаца за увоз дјанго
# Увоз модела купца
фром дбапп.модели увозе Производ
# Дефинишите класу за образац за купца
класа ПродуцтФорм (обрасци.МоделФорм):
класа Мета:
модел = Производ
поља = '__све__'

Креирајте ХТМЛ датотеку са именом производа.хтмл унутар предлошци директоријум апликације са следећом скриптом. Подаци обрасца биће послати када корисник кликне на сачувати дугме.

производа.хтмл

Образац за пријаву купца



% цсрф_токен%
образац.као_п

Измените погледа.пи датотеку са следећом скриптом за уметање података у производи табела након валидације обрасца. АддПродуцт () функција је дефинисана у скрипти за проверу да ли је образац поднет или не, а ако је образац достављен, тада ће проверити да ли су подаци обрасца важећи или неваљани. Ако је важећа() функција се враћа истинито, тада ће подаци бити уметнути у производи табела, а у прегледачу ће се приказати порука о успеху.

погледа.пи

# Увоз модула ХттпРеспонсе
од дјанго.хттп.одговор увоз ХттпРеспонсе
# Увоз модула приказа
од дјанго.пречице импорт рендер
# Увези образац производа
фром дбапп.обрасци увоз ПродуцтФорм
# Дефинишите функцију за додавање уноса производа
деф АддПродуцт (захтев):
ако захтев.метода == "ПОСТ":
форм = ПродуцтФорм (захтев.ПОШТА)
# Ако су подаци обрасца валидни или не
ако облик.је важећа():
покушати:
# Спремите податке обрасца у базу података
облик.сачувати()
# Дефинишите поруку за корисника
подаци = ['

Производ је додат.

']
# Врати одговор
врати ХттпРеспонсе (подаци)
осим:
проћи
иначе:
# Дефинишите објекат обрасца
форм = ПродуцтФорм ()
# Прикажите образац за унос производа
ретурн рендер (захтев, 'производ.хтмл ', ' образац ': образац)

Измените урл адресе.пи датотека са следећом скриптом да дефинише путању за позивање функције приказа.

урл адресе.пи

# Увоз административног модула
од дјанго.допринос увоз админ
# Увоз модула путање
од дјанго.путања за увоз УРЛ адреса
# Увоз погледа
из приказа дбапп импорт
# Дефинишите путању за купца и администратора
урлпаттернс = [
патх (", прикази.АддПродуцт),
патх ('админ /', админ.сајт.урлс)
]

Сада покрените Дјанго сервер и отворите основни УРЛ у прегледачу.

хттп: // лоцалхист: 8000 /

Појавиће се следећи образац.

Следеће ВалуеЕррор појавиће се ако корисник пошаље образац без додавања података у образац. Ево, Цена поље је цео број који не може бити празан низ.

Ако корисник унесе важеће податке попут доњег обрасца и притисне сачувати дугме, нови запис производа биће уметнут у базу података.

Следећа слика ће се појавити ако отворите ново уметнути запис са Дјанго контролне табле.

Закључак:

Модел је дизајниран коришћењем нулл и дефаулт атрибута у овом упутству. Даље, начини уметања података у ова поља у позадини и предњем делу приказани су овде како би читаоцу помогли да зна употребу задатих и нултих атрибута у Дјанго бази података.

Најбољи емулатори играће конзоле за Линук
Овај чланак ће навести популарни софтвер за емулацију играће конзоле доступан за Линук. Емулација је слој компатибилности софтвера који опонаша хардве...
Најбољи Линук Дистрос за игре у 2021
Линук оперативни систем далеко је превалио свој изворни, једноставни изглед заснован на серверима. Овај ОС се изузетно побољшао последњих година и сад...
Како снимити и стримовати своју играћу сесију на Линук-у
У прошлости се играње игара сматрало само хобијем, али с временом је играчка индустрија забележила огроман раст у погледу технологије и броја играча. ...