Django

Jak používat sadu dotazů v Django

Jak používat sadu dotazů v Django
Většina webových aplikací je nyní implementována s databází. sada dotazů se používá v aplikaci Django k načítání záznamů filtrováním nebo krájením nebo objednáváním databázové tabulky beze změny původních dat. Model použil Django k vytvoření tabulky v databázi. Znalost používání modelu v Django je tedy nezbytná pro pochopení použití sady dotazů. Hlavní funkcí sady dotazů je iterace záznamů databázových tabulek jejich převodem na dotazy SQL. Lze jej použít z příkazového řádku pythonu nebo napsáním skriptu pythonu pro zobrazení výstupu prohlížeče. V tomto kurzu byla vysvětlena použití sady dotazů pro načítání dat z databázové tabulky různými způsoby.

Předpoklady:

Před procvičením skriptu tohoto tutoriálu musíte dokončit následující úkoly.

  1. Nainstalujte Django verze 3+ na Ubuntu 20+ (nejlépe)
  2. Vytvořte projekt Django
  3. Spusťte server Django a zkontrolujte, zda server funguje správně nebo ne.

Nastavení aplikace Django:

Spuštěním následujícího příkazu vytvořte aplikaci Django s názvem queryapp.

$ python3 spravovat.py startapp queryapp

Spuštěním následujícího příkazu vytvořte uživatele pro přístup k databázi Django. Pokud jste uživatele již dříve vytvořili, nemusíte tento příkaz spouštět.

$ python3 spravovat.py vytvoří superuživatele

Přidejte název aplikace do INSTALLED_APP část nastavení.py soubor.

INSTALLED_APPS = [

'queryapp'
]

Vytvořte složku s názvem šablony uvnitř queryapp složku a nastavte šablony umístění aplikace v ŠABLONY část nastavení.py soubor.

TEMPLATES = [

… .
'DIRS': ['/ home / fahmida / django_pro / queryapp / templates'],
… .
,
]

Vytvořte model pro databázovou tabulku:

Otevři modely.py soubor z queryapp složku a přidejte následující skript k definování struktury produkty tabulky. Produkt třída je definována pro vytvoření tabulky s názvem produkty s název, typ, značka, a cena pole. Tady, jméno, typ, a značka pole budou ukládat data znaků a cena pole uloží celočíselná data.

modely.py

# Modul importu modelů
od djanga.db modely importu
# Definujte třídu pro vytvoření tabulky produktů
třída Produkt (modely.Modelka):
name = modely.CharField (max_length = 100)
typ = modely.CharField (max_length = 30)
značka = modely.CharField (max_length = 50)
cena = modely.IntegerField ()

Spusťte makemigrace příkaz k vytvoření nové migrace na základě změn provedených modely.

$ python3 spravovat.py makemigrations queryapp

Spusťte migrovat příkaz k provedení příkazů SQL a vytvoření všech tabulek v databázi, které jsou definovány v modely.py soubor.

$ python3 spravovat.py migrovat

Upravit obsah souboru admin.py soubor s následujícím obsahem. Tady, třídy produktů modelůs je registrován pomocí Registrovat() způsob zobrazení produkty tabulky na řídicím panelu správy Django.

admin.py

# Importovat modul správce
od djanga.contrib import admin
# Importovat model produktu
z .modely importují produkt
# Zaregistrujte model produktu
admin.stránky.registrace (produkt)

Vytvořte soubor šablony s názvem seznam produktů.html uvnitř queryapp / šablony / s následujícím skriptem. Tento skript zobrazí všechna data uživatele produkty tabulka ve formě tabulky s vyhledávacím polem. Uživatel bude moci vyhledávat konkrétní záznamy z tabulky produktů pomocí vyhledávacího formuláře. pro ve skriptu se používá smyčka k iteraci dat předávaných z pohledy.py soubor.

seznam produktů.html



<br>Výukový program Django QuerySet<br>



Hledání produktu



% csrf_token%
Hledat produkt:







% pro produkt v seznamu_objektů%



% endfor%
IDnázevZnačkaCena
produkt.id produkt.název produkt.značkastyle = "text-align: right"> $ produkt.cena



Upravit obsah souboru pohledy.py soubor s následujícím skriptem. Názvy modelů a šablon jsou definovány v Seznam produktů třída. get_queryset () ve skriptu je definována metoda třídy pro filtrování dat na základě obsahu odeslaného vyhledávacím polem šablony. Produkt.předměty.Všechno() metoda vrací všechny záznamy produkty stůl. žádost.DOSTAT.klávesy () ve skriptu se používá metoda ke kontrole veškerých údajů odeslaných vyhledávacím formulářem. Pokud se tato metoda vrátí skutečný, pak žádost.DOSTAT.get ('src') metoda se používá ke kontrole, že zadaná hodnota je prázdná nebo ne. Pokud tato metoda vrací neprázdnou hodnotu, bude hodnota uložena v proměnné, klíčové slovo, a bude použita pro filtrování dat na základě značka a typ pole z produkty stůl.

pohledy.py

# Import modulu ListView
od djanga.pohledy.obecný import ListView
# Importovat produktový modul
z .modely importují produkt
# Import Q modulu
od djanga.db.import modelů Q
# Definujte třídu pro dotazování na data
třída ProductList (ListView):
# Definujte model
model = Produkt
# Definujte šablonu
template_name = 'productList.html '
def get_queryset (self):
# Nastavit výchozí sadu dotazů
queryset = Produkt.předměty.Všechno()
# Zkontrolujte, zda je zadána hodnota formuláře
pokud já.žádost.DOSTAT.klávesy ():
# Zkontrolujte klíčové slovo pro vyhledávání
pokud já.žádost.DOSTAT.get ('src') != ":
klíčové slovo = já.žádost.DOSTAT.get ('src')
# Nastavte sadu dotazů na základě vyhledávacího klíčového slova
queryset = Produkt.předměty.filtr (Q (značka = klíčové slovo.velká písmena ()) | Q (typ = klíčové slovo.velká písmena ()))
návratová sada dotazů

Upravit obsah souboru adresy URL.py soubor s následujícím skriptem. Ve scénáři sesearchPro/ 'cesta je definována pro volání Seznam produktů.as_view () metoda, která odešle všechna data a filtrovaná data z produkty tabulku do souboru šablony.

adresy URL.py

# Importovat modul správce
od djanga.contrib import admin
# Importovat cestu a zahrnout modul
od djanga.cesta pro import adres URL
# Importujte modul SearchEmployee
z queryapp.zobrazení importovat ProductList
urlpatterns = [
# Definujte cestu pro administrátora
cesta ('admin /', admin.stránky.adresy URL),
# Definujte cestu k vyhledání produktu
cesta ('searchPro /', ProductList.as_view ()),

Přidejte záznamy do tabulky:

Otevřete stránku Správa Django a přidejte některé záznamy do produkty tabulku pro použití sady dotazů. Zde bylo vloženo pět záznamů.

Všechny záznamy o produktech s vyhledávacím polem se zobrazí v prohlížeči po provedení následující adresy URL.

http: // localhost: 8000 / searchPro


Všechny šamponové produkty zobrazené, pokud se jedná o typ produktu, 'šampon'bude hledán ve vyhledávacím poli.

Výrobky ze sušeného mléka čerstvý značka se zobrazí, pokud značka produktu, 'čerstvý'bude hledán ve vyhledávacím poli.

Závěr:

V tomto kurzu je vysvětlen způsob filtrování dat jednoduché databázové tabulky pomocí sady dotazů. Data lze filtrovat různými způsoby. Čtenáři pochopí použití sady dotazů k filtrování nebo vyhledávání dat v prohlížeči po přečtení tohoto kurzu.

Hry OpenTTD vs Simutrans
OpenTTD vs Simutrans
Vytvoření vlastní simulace dopravy může být zábavné, uvolňující a mimořádně lákavé. Proto se musíte ujistit, že vyzkoušíte co nejvíce her, abyste našl...
Hry Výukový program OpenTTD
Výukový program OpenTTD
OpenTTD je jednou z nejpopulárnějších her pro obchodní simulaci. V této hře musíte vytvořit skvělé dopravní podnikání. Začnete však na začátku kolem r...
Hry SuperTuxKart pro Linux
SuperTuxKart pro Linux
SuperTuxKart je skvělý titul navržený tak, aby vám ve vašem systému Linux přinesl zážitek Mario Kart zdarma. Je to docela náročné a zábavné hrát, je n...