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