Предуслови
Пре него што увежбате примере овог водича, морате извршити следеће задатке:
- Инсталирајте Дјанго верзију 3+ на Убунту 20+ (пожељно)
- Направите Дјанго пројекат
- Покрените Дјанго сервер да бисте проверили да ли сервер исправно ради или не.
Подесите апликацију Дјанго
А. Покрените следећу команду да бисте креирали Дјанго апликацију са именом филтерапп.
$ питхон3 управља.пи стартапп филтераппБ. Покрените следећу наредбу да бисте креирали корисника за приступ Дјанго бази података. Ако сте већ креирали корисника, тада не треба да покрећете наредбу.
$ питхон3 управља.пи ствара корисничког корисникаЦ. Додајте име апликације у ИНСТАЛЛЕД_АПП део пи датотека.
ИНСТАЛЛЕД_АППС = […
'филтерапп'
]
Д. Направите фасциклу са именом предлошци унутар филтерапп и подесите предлошци локација апликације у ПРЕДЛОЗИ део пи датотека.
ПРЕДЛОЗИ = [… .
'ДИРС': ['/ хоме / фахмида / дјанго_про / филтерапп / темплатес'],
… .
,
]
Направите модел за табелу базе података
Отвори модели.пи датотека из филтерапп директоријум и додајте следећу скрипту да бисте дефинисали структуру запослени столови. Запослени класа је дефинисана за креирање табеле са именом запослени са име, пошта, е-пошта, одељење, и јоининг_дате поља. Ево, име, пошта, и одељење поља ће чувати податке о знаковима, е-маил поље ће сачувати адресу е-поште и јоининг_дате поље ће чувати податке о датуму.
модели.пи
# Увоз модула модулаод дјанго.дб модели увоза
# Дефинишите класу за креирање табеле запослених
разред Запослени (модели.Модел):
име = модели.ЦхарФиелд (мак_ленгтх = 50)
пост = модели.ЦхарФиелд (мак_ленгтх = 40)
емаил = модели.ЕмаилФиелд ()
одељење = модели.ЦхарФиелд (мак_ленгтх = 30)
јоиннинг_дате = модели.ДатеФиелд ()
Покренути макемигратионс наредба за креирање нове миграције на основу промена које су направили модели.
$ питхон3 управља.пи макемигратионс филтераппПокренути мигрирати наредба за извршавање СКЛ наредби и стварање свих табела у бази података које су дефинисане у модели.пи датотека.
$ питхон3 управља.пи мигриратиИзмените садржај админ.пи датотека следећег садржаја. Ево, запослени класа модела регистрована је помоћу регистар () метода за приказ евиденција запослених табеле на контролној табли администрације Дјанго.
админ.пи
# Увоз административног модулаод дјанго.допринос увоз админ
# Увоз модела запосленог
од .модели увоз Запослени
# Региструјте модел запослених
админ.сајт.регистар (запослени)
Покрените следећу УРЛ адресу да бисте отворили страницу за пријављивање администратора Дјанго. Наведите важеће корисничко име и лозинку за отварање Контролна табла администрације Дјанго за приступ табелама базе података.
Уметните два или више записа запослених да бисте применили филтер на податке. Овде је убачено пет записа.
Направите Претрага.хтмл датотека унутар филтерапп / предлошци / директоријум са следећом скриптом. Подаци из запослени табела ће бити приказана у овој датотеци предлошка. за петља се користи за читање садржаја објецт_лист променљива која ће бити прослеђена из датотеке приказа. Тхе име, пошта, и одељење вредности запослени табела ће се приказати помоћу листе.
Претрага.хтмл
Водич за Дјанго филтер
Списак запослених
емп.име (емп.пошта )
емп.одељење одељење
% за емп у објецт_лист%
% ендфор%
Отвори погледа.пи датотека из филтерапп директоријум и измените садржај датотеке помоћу следеће скрипте. Називи модела и шаблона дефинисани су у скрипти.
погледа.пи
# Увоз модула ЛистВиевод дјанго.погледа.генерички увоз ЛистВиев
# Увоз модула запослених
од .модели увоз Запослени
# Увоз К модула
од дјанго.дб.модели увоз К
# Дефинишите класу за филтрирање података
класа СеарцхЕффициее (ЛистВиев):
# Дефинишите модел
модел = Запослени
# Дефинишите шаблон
темплате_наме = 'претрага.хтмл '
Измените садржај урл адресе.пи датотека следећег садржаја. У сценарију, 'сеарцхЕмп'путања је дефинисана за позивање СеарцхЕ Емплоиее.ас_виев () метода која ће послати све податке и филтриране податке запослени табелу у датотеку предлошка.
урл адресе.пи
# Увоз административног модулаод дјанго.допринос увоз админ
# Увезите путању и укључите модул
од дјанго.УРЛ адреса путање увоза, укључи
# Увоз модула СеарцхЕффициее
фром филтерапп.прикази увози СеарцхЕффициее
урлпаттернс = [
# Дефинишите путању за администратора
патх ('админ /', админ.сајт.урлс),
# Дефинишите путању за претрагу
патх ('сеарцхЕмп /', СеарцхЕффициее.ас_виев ()),
]
Следећи излаз ће се појавити без примене било каквог филтрирања за следећу УРЛ адресу.
хттп: // лоцалхост: 8000 / СерацхЕмп
Филтрирање података једноставним филтрирањем
Додајте следећи ред на крају погледа.пи датотека за филтрирање записа запослени табела у којој је вредност пошта поље је 'Рачуновођа'.
# Примени основно филтрирањекуерисет = Запослени.предмета.филтер (пост = 'Рачуновођа')
Следећи излаз ће се појавити након примене основног филтрирања.
Филтрирајте податке са више поља
Додајте следећи ред на крају погледа.пи датотека за филтрирање записа запослени табела у којој је вредност одељење поље је 'ХТ' и имејл поље је '[заштићена е-поштом]'.
# Примени филтрирање са више пољакуерисет = Запослени.предмета.филтер (одељење = 'ХР', емаил = '[заштићен имејлом]')
Следећи излаз ће се појавити након примене вишеструког филтрирања.
Филтрирајте податке помоћу К објекта
Додајте следећи ред на крају погледа.пи датотеку за филтрирање записа запослени табела у којој је вредност пошта поље је 'Менаџерили вредност одељење поље је 'Продаја'.
# Примените филтрирање помоћу К објекатакуерисет = Запослени.предмета.филтер (К (пост = 'Менаџер') | К (одељење = 'Продаја'))
Следећи излаз ће се појавити након примене филтрирања К објекта.
Филтрирајте податке помоћу ланца филтера
Додајте следећи ред на крају погледа.пи датотека за филтрирање записа запослени табела у којој је вредност одељење поље ће се прво проверити, а ако врати труе, вредност поља име поље ће бити проверено.
# Примени филтрирање ланцемкуерисет = Запослени.предмета.филтер (одељење = 'ХР').филтер (наме = 'Мехраб Хоссаин')
Следећи излаз ће се појавити након примене ланца филтера.
Закључак
Подаци се у Дјанго могу филтрирати на више начина на основу захтева апликације. У овом упутству су објашњена четири различита начина филтрирања како би се разумеле основе Дјанго филтрирања. То су једноставно филтрирање, вишеструко филтрирање, филтрирање помоћу К објекта и уланчавање филтера.