Skip to content

Kokurcho/ToyShop

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Run venv + start server

cd C:\virtualenv
python -m venv venv
venv\Scripts\activate.bat
cd C:\django\toy_shop
python manage.py runserver

Django Admin

http://127.0.0.1:8000/admin/

Django ORM

python manage.py shell
>>> from toyshop.models import Toy
>>> from toyshop.models import Manufacturer

Первый способ создания записи - сделать объект и через save() сохранить его в БД

>>> Manufacturer(name = 'AliBaba', address = 'China Town 9 Street')
<Manufacturer: AliBaba>
>>> m1 = _
>>> m1
<Manufacturer: AliBaba>
>>> m1.save()

Второй способ создания записи - через object manager

>>> # objects
>>> Manufacturer.objects
<django.db.models.manager.Manager object at 0x000001A8BA2FDE70>
>>> m5 = Manufacturer.objects.create(name = 'ZID', address = 'Kovrov, Lenin Street')
>>> m5
<Manufacturer: ZID>

Обратиться к полю объекта через точку

>>> m[3].address
'Kovrov Degtiarev Street 6'

Вывести все объекты модели Manufacturer через all()

>>> Manufacturer.objects.all()
<QuerySet [<Manufacturer: OOO "Detskiy MIR">, <Manufacturer: OAO Aliexpress>, <Manufacturer: AliBaba>, <Manufacturer: OOO Signal>, <Manufacturer: ZID>]>

Вывести все объекты модели Manufacturer через цикл

>>> for mi in m:
...     print(mi.name)
...
OOO "Detskiy MIR"
OAO Aliexpress
AliBaba
OOO Signal
ZID

Фильтр по конкретному значению

>>> m6 = Manufacturer.objects.create(name = 'KMZ', address = 'Kovrov, Lenin Street')
>>> Manufacturer.objects.filter(address = 'Kovrov, Lenin Street')
<QuerySet [<Manufacturer: ZID>, <Manufacturer: KMZ>]>

Фильтр с условием pk >= 3

>>> Manufacturer.objects.filter(pk__gte=3)
<QuerySet [<Manufacturer: AliBaba>, <Manufacturer: OOO Signal>, <Manufacturer: ZID>, <Manufacturer: KMZ>]>

Фильтр с условием pk <= 3

>>> Manufacturer.objects.filter(pk__lte=3)
<QuerySet [<Manufacturer: OOO "Detskiy MIR">, <Manufacturer: OAO Aliexpress>, <Manufacturer: AliBaba>]>

Вывести все записи, у которых pk != 3

>>> Manufacturer.objects.exclude(pk=3)
<QuerySet [<Manufacturer: OOO "Detskiy MIR">, <Manufacturer: OAO Aliexpress>, <Manufacturer: OOO Signal>, <Manufacturer: ZID>, <Manufacturer: KMZ>]>

Получить запись по ключу через get

>>> Manufacturer.objects.get(pk=3)
<Manufacturer: AliBaba>

Два запроса подряд - фильтр и сортировка

>>> Manufacturer.objects.filter(pk__lte=4).order_by('name')
<QuerySet [<Manufacturer: AliBaba>, <Manufacturer: OAO Aliexpress>, <Manufacturer: OOO "Detskiy MIR">, <Manufacturer: OOO Signal>]>

Сортировка в обычном порядке

>>> Manufacturer.objects.order_by('name')
<QuerySet [<Manufacturer: AliBaba>, <Manufacturer: KMZ>, <Manufacturer: OAO Aliexpress>, <Manufacturer: OOO "Detskiy MIR">, <Manufacturer: OOO Signal>, <Manufacturer: ZID>]>

Сортировка в обратном порядке

>>> Manufacturer.objects.order_by('-name')
<QuerySet [<Manufacturer: ZID>, <Manufacturer: OOO Signal>, <Manufacturer: OOO "Detskiy MIR">, <Manufacturer: OAO Aliexpress>, <Manufacturer: KMZ>, <Manufacturer: AliBaba>]>

Изменение записи

>>> mu = Manufacturer.objects.get(pk=2)
>>> mu
<Manufacturer: OAO Aliexpress>
>>> mu.title = 'OAO Aliexpress 2'
>>> mu.address = 'Japanese Street, 7'
>>> mu.save()

Удаление записей

>>> md = Manufacturer.objects.filter(pk__gte=4)
>>> md
<QuerySet [<Manufacturer: OOO Signal>, <Manufacturer: ZID>, <Manufacturer: KMZ>]>
>>> md.delete()
(3, {'toyshop.Manufacturer': 3})

Выйти из Shell

>>> quit()

Обратиться через related_name

>>> from toyshop.models import Toy, Manufacturer
>>> Manufacturer(name = 'AliBaba', address = 'China Town 9 Street')
<Manufacturer: AliBaba>
>>> m1 = _
>>> m1.save()
>>> t1 = Toy.objects.create(name = 'Bear', material = 'Silk', manufacturer = m1)
>>> m = Manufacturer.objects.get(id=7)
>>> t = m.toys.first()
>>> print(t)
Bear

Releases

No releases published

Packages

No packages published