ΠΠ΅ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ Π·Π°ΠΏΡΠΎΡΡ ΠΈΠ·Π²Π»Π΅ΠΊΠ°ΡΡ ΠΈΠ· ΠΠ Π³ΠΎΡΠ°Π·Π΄ΠΎ Π±ΠΎΠ»ΡΡΠ΅ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ, ΡΠ΅ΠΌ Π½ΡΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ. Π§ΡΠΎΠ±Ρ ΡΡΠΎΠ³ΠΎ ΠΈΠ·Π±Π΅ΠΆΠ°ΡΡ, ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΌΠ΅ΡΠΎΠ΄Ρ defer(), only() ΠΈ exclude(). Π ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅ ΠΌΡ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ, ΠΊΠ°ΠΊ ΠΈΡ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡ Π½Π° ΠΏΡΠΈΠΌΠ΅ΡΠ΅ Π²Π΅Π±-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π΄Π»Ρ Π°Π³Π΅Π½ΡΡΡΠ²Π° Π½Π΅Π΄Π²ΠΈΠΆΠΈΠΌΠΎΡΡΠΈ.
Π‘ΡΠ°ΡΡΡ ΠΎΡΠ½ΠΎΠ²Π°Π½Π° Π½Π° ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΠΈ Β«Django Query Optimization β Defer, Only, and ExcludeΒ».
ΠΡΠΎΠ±Π»Π΅ΠΌΡ Ρ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡΡ Π²Π΅Π±-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΡΠ°ΡΠ΅ Π²ΡΠ΅Π³ΠΎ Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡΡ ΠΈΠ·-Π·Π° Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ : ΡΠ΅ΠΌ Π±ΠΎΠ»ΡΡΠ΅ Π΄Π°Π½Π½ΡΡ Π·Π°ΠΏΡΠ°ΡΠΈΠ²Π°ΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΠΈ, ΡΠ΅ΠΌ Π΄ΠΎΠ»ΡΡΠ΅ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ Π·Π°ΠΏΡΠΎΡ, Π° Π·Π½Π°ΡΠΈΡ, ΡΠ΅ΠΌ ΠΌΠ΅Π΄Π»Π΅Π½Π½Π΅Π΅ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π²ΡΡ ΡΠΈΡΡΠ΅ΠΌΠ°.
Π§ΡΠΎΠ±Ρ ΡΡΠΊΠΎΡΠΈΡΡ ΡΠ°Π±ΠΎΡΡ Ρ Π±Π°Π·ΠΎΠΉ Π΄Π°Π½Π½ΡΡ Π² Django, ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΌΠ΅ΡΠΎΠ΄Ρ defer(), only() ΠΈ exclude(), ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΎΠΌΠΎΠ³Π°ΡΡ ΡΠΌΠ΅Π½ΡΡΠΈΡΡ ΠΎΠ±ΡΠ΅ΠΌ ΠΈΠ·Π²Π»Π΅ΠΊΠ°Π΅ΠΌΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ. ΠΠ°Π»Π΅Π΅ ΠΌΡ ΡΠ°Π·Π±Π΅ΡΠ΅ΠΌΡΡ, ΠΊΠ°ΠΊ ΠΎΠ½ΠΈ ΡΠ°Π±ΠΎΡΠ°ΡΡ, Π½ΠΎ ΡΠ½Π°ΡΠ°Π»Π° ΠΎΠ±ΡΡΠ΄ΠΈΠΌ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΠΈ ΠΏΡΠΎΠ΅ΠΊΡΠ° ΠΈ ΡΠ΄Π΅Π»Π°Π΅ΠΌ ΡΠ΅ΡΡ ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠΉ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ.
ΠΠ°ΡΡΡΠΎΠΉΠΊΠΈ ΠΏΡΠΎΠ΅ΠΊΡΠ°
Π ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΏΡΠΈΠΌΠ΅ΡΠ° ΠΌΡ Π²ΠΎΠ·ΡΠΌΠ΅ΠΌ Π²Π΅Π±-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π΄Π»Ρ Π°Π³Π΅Π½ΡΡΡΠ²Π° Π½Π΅Π΄Π²ΠΈΠΆΠΈΠΌΠΎΡΡΠΈ. Π Π½Π΅ΠΌ Π΅ΡΡΡ Π΄Π²Π΅ ΠΌΠΎΠ΄Π΅Π»ΠΈ: Property (Π½Π΅Π΄Π²ΠΈΠΆΠΈΠΌΠΎΡΡΡ) ΠΈ Location (ΠΌΠ΅ΡΡΠΎΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅).
Π€Π°ΠΉΠ» models.py:
ΠΠ±Π° ΠΌΠΎΠ΄Π΅Π»ΠΈ ΡΠΎΠ΄Π΅ΡΠΆΠ°Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΠΎΠ»Π΅ΠΉ ΠΈ Π²ΠΊΠ»ΡΡΠ°ΡΡ ΠΌΠ΅ΡΠΎΠ΄ to_json(), ΠΊΠΎΡΠΎΡΡΠΉ ΡΠ΅ΡΠΈΠ°Π»ΠΈΠ·ΡΠ΅Ρ Π²ΡΠ΅ Π°ΡΡΠΈΠ±ΡΡΡ ΠΌΠΎΠ΄Π΅Π»ΠΈ Π² ΡΠ»ΠΎΠ²Π°ΡΡ Python. Π ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Ρ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ API-ΡΠ½Π΄ΠΏΠΎΠΈΠ½ΡΡ:
- / β Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΠΊΠΎΡΠΎΡΠΊΠΈΠΉ ΡΠΏΠΈΡΠΎΠΊ Π²ΡΠ΅Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² Π½Π΅Π΄Π²ΠΈΠΆΠΈΠΌΠΎΡΡΠΈ.
- / / β Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠΌ ΠΎΠ±ΡΠ΅ΠΊΡΠ΅.
- / /amenities/ β Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΡΠΏΠΈΡΠΎΠΊ ΡΠ΄ΠΎΠ±ΡΡΠ² (Π±Π°ΡΡΠ΅ΠΉΠ½, Π±Π°Π»ΠΊΠΎΠ½ ΠΈ Ρ.ΠΏ.) Π΄Π»Ρ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠ³ΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠ°.
Π’Π΅ΡΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ
ΠΡΠ΅ΠΆΠ΄Π΅ ΡΠ΅ΠΌ ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ Π²Π΅Π±-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, Π²Π°ΠΆΠ½ΠΎ ΠΈΠ·ΠΌΠ΅ΡΠΈΡΡ, Π½Π°ΡΠΊΠΎΠ»ΡΠΊΠΎ Π±ΡΡΡΡΠΎ ΠΎΠ½ΠΎ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π² ΡΠ΅ΠΊΡΡΠ΅ΠΌ ΡΠΎΡΡΠΎΡΠ½ΠΈΠΈ. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ ΠΌΡ Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΡ Django Silk β ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠΌ Π΄Π»Ρ ΠΈΠ·ΠΌΠ΅ΡΠ΅Π½ΠΈΡ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ HTTP-Π·Π°ΠΏΡΠΎΡΠΎΠ² ΠΈ Π·Π°ΠΏΡΠΎΡΠΎΠ² ΠΊ Π±Π°Π·Π΅ Π΄Π°Π½Π½ΡΡ .
ΠΠ°ΠΏΡΡΡΠΈΡΠ΅ ΡΠ΅ΡΠ²Π΅Ρ ΠΈ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΠ΅ HTTP-Π·Π°ΠΏΡΠΎΡΡ ΠΊ API Π² Π±ΡΠ°ΡΠ·Π΅ΡΠ΅ ΠΈΠ»ΠΈ ΡΠ΅ΡΠ΅Π· curl:
- http://127.0.0.1:8000/
- http://127.0.0.1:8000/1/
- http://127.0.0.1:8000/1/amenities/
ΠΡΠΎΡΠΌΠΎΡΡΠΈΡΠ΅ ΠΎΡΡΠ΅ΡΡ Π½Π° ΡΡΡΠ°Π½ΠΈΡΠ΅ Silk β http://127.0.0.1:8000/silk/requests/.
Π Π½Π°ΡΠ΅ΠΌ ΡΠ»ΡΡΠ°Π΅ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΡ Π²ΡΠ³Π»ΡΠ΄ΡΡ ΡΠ°ΠΊ:
- Π€ΠΎΡΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠΏΠΈΡΠΊΠ° ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² / Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ 765 ΠΌΡ, ΠΈΠ· Π½ΠΈΡ 301 ΠΌΡ ΡΡΠ°ΡΠΈΡΡΡ Π½Π° Π·Π°ΠΏΡΠΎΡΡ ΠΊ Π±Π°Π·Π΅ Π΄Π°Π½Π½ΡΡ .
- ΠΡΠ΄Π°ΡΠ° Π΄Π°Π½Π½ΡΡ ΠΏΠΎ Π΄Π΅ΡΠ°Π»ΡΠΌ /1/ ΠΈ ΡΠ΄ΠΎΠ±ΡΡΠ²Π°ΠΌ /1/amenities/ΠΎΠ±ΡΠ΅ΠΊΡΠ° Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ Π·Π° 11 ΠΌΡ (ΠΈΠ· Π½ΠΈΡ ~1 ΠΌΡ Π½Π° Π±Π°Π·Ρ).
ΠΡΠ»ΠΈ ΠΏΠΎΡΠΌΠΎΡΡΠ΅ΡΡ SQL-Π·Π°ΠΏΡΠΎΡΡ, Π²ΠΈΠ΄Π½ΠΎ, ΡΡΠΎ Π²ΡΠ΅ ΡΡΠΈ ΡΠ½Π΄ΠΏΠΎΠΈΠ½ΡΠ° Π·Π°ΠΏΡΠ°ΡΠΈΠ²Π°ΡΡ Π²ΡΠ΅ ΠΏΠΎΠ»Ρ ΠΈΠ· ΡΠ°Π±Π»ΠΈΡΡ Property, Π΄Π°ΠΆΠ΅ Π΅ΡΠ»ΠΈ ΠΎΠ½ΠΈ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ Π² Π²ΡΠ²ΠΎΠ΄Π΅.
SQL-Π·Π°ΠΏΡΠΎΡ Π΄Π»Ρ ΡΠΏΠΈΡΠΊΠ° ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² /:
SQL-Π·Π°ΠΏΡΠΎΡ Π΄Π»Ρ Π΄Π΅ΡΠ°Π»Π΅ΠΉ /1/:
SQL-Π·Π°ΠΏΡΠΎΡ Π΄Π»Ρ ΡΠ΄ΠΎΠ±ΡΡΠ² /1/amenities/:
Π§ΡΠΎ Π·Π΄Π΅ΡΡ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ»ΡΡΡΠΈΡΡ:
- Π‘ΠΏΠΈΡΠΎΠΊ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² / Π·Π°Π³ΡΡΠΆΠ°Π΅Ρ Π²ΡΠ΅ ΠΏΠΎΠ»Ρ, Ρ ΠΎΡΡ Π½ΡΠΆΠ΅Π½ ΡΠΎΠ»ΡΠΊΠΎ Π½Π΅Π±ΠΎΠ»ΡΡΠΎΠΉ ΠΈΡ Π½Π°Π±ΠΎΡ.
- ΠΠ°ΠΏΡΠΎΡ Π½Π° ΡΠ΄ΠΎΠ±ΡΡΠ²Π° /1/amenities/ ΠΏΠΎΠ»ΡΡΠ°Π΅Ρ Π²ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎΠ± ΠΎΠ±ΡΠ΅ΠΊΡΠ΅, Ρ ΠΎΡΡ ΡΠ°ΠΌ ΠΎΠ±ΡΠ΅ΠΊΡ ΡΠΆΠ΅ ΠΈΠ·Π²Π΅ΡΡΠ΅Π½.
- ΠΠ΅ΡΠ°Π»ΡΠ½ΡΠΉ Π·Π°ΠΏΡΠΎΡ /1/ ΡΠ°ΠΊΠΆΠ΅ Π·Π°Π³ΡΡΠΆΠ°Π΅Ρ Π²ΡΠ΅ ΠΏΠΎΠ»Ρ, Π΄Π°ΠΆΠ΅ Π΅ΡΠ»ΠΈ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΠ· Π½ΠΈΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΊΠ»ΡΡΠΈΡΡ ΠΏΡΠΈ ΠΏΠ΅ΡΠ²ΠΈΡΠ½ΠΎΠΌ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΈ.
Π§ΡΠΎΠ±Ρ ΡΡΠΊΠΎΡΠΈΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π·Π°ΠΏΡΠΎΡΠΎΠ², ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ:
- ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ only() ΠΈΠ»ΠΈ defer(), ΡΡΠΎΠ±Ρ Π·Π°Π³ΡΡΠΆΠ°ΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π½ΡΠΆΠ½ΡΠ΅ ΠΏΠΎΠ»Ρ.
- ΠΡΠΈΠΌΠ΅Π½ΠΈΡΡ select_related() ΠΈ prefetch_related() Π΄Π»Ρ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ JOIN-Π·Π°ΠΏΡΠΎΡΠΎΠ².
- ΠΡΠΎΠ²Π΅ΡΠΈΡΡ, Π½ΡΠΆΠ½Ρ Π»ΠΈ Π²ΡΠ΅ Π·Π°Π³ΡΡΠΆΠ°Π΅ΠΌΡΠ΅ Π΄Π°Π½Π½ΡΠ΅.
ΠΠ°Π»Π΅Π΅ ΠΌΡ ΡΠ°Π·Π±Π΅ΡΠ΅ΠΌ, ΠΊΠ°ΠΊ Π²Π½Π΅Π΄ΡΠΈΡΡ ΡΡΠΈ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ.
Π‘ΡΠ°ΡΡΡ ΠΏΠΎ ΡΠ΅ΠΌΠ΅
ππΈ ΠΡΡΡ Django. Π§Π°ΡΡΡ 2: ORM ΠΈ ΠΎΡΠ½ΠΎΠ²Ρ ΡΠ°Π±ΠΎΡΡ Ρ Π±Π°Π·Π°ΠΌΠΈ Π΄Π°Π½Π½ΡΡ
ΠΠ΅ΡΠΎΠ΄ defer() Π² Django
ΠΠ΅ΡΠΎΠ΄ defer() ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΈΡΠΊΠ»ΡΡΠΈΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠ΅ ΠΏΠΎΠ»Ρ ΠΏΡΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ Π·Π°ΠΏΡΠΎΡΠ° ΠΊ Π±Π°Π·Π΅ Π΄Π°Π½Π½ΡΡ . ΠΡΠΎ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ, ΠΊΠΎΠ³Π΄Π° Π½Π°ΠΌ Π½Π΅ Π½ΡΠΆΠ½Ρ Π²ΡΠ΅ ΠΏΠΎΠ»Ρ ΠΌΠΎΠ΄Π΅Π»ΠΈ, ΠΈ ΠΌΡ Ρ ΠΎΡΠΈΠΌ ΡΡΠΊΠΎΡΠΈΡΡ Π·Π°ΠΏΡΠΎΡ, Π·Π°Π³ΡΡΠΆΠ°Ρ ΡΠΎΠ»ΡΠΊΠΎ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΠ΅ Π΄Π°Π½Π½ΡΠ΅.
ΠΠ°ΠΊ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ defer()
ΠΠΎΠ³Π΄Π° ΠΌΡ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌ Π·Π°ΠΏΡΠΎΡ ΠΊ Π±Π°Π·Π΅ Π΄Π°Π½Π½ΡΡ , Django ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Π·Π°Π³ΡΡΠΆΠ°Π΅Ρ Π²ΡΠ΅ ΠΏΠΎΠ»Ρ ΠΌΠΎΠ΄Π΅Π»ΠΈ:
ΠΡΠ»ΠΈ ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ defer(), Django ΠΈΡΠΊΠ»ΡΡΠ°Π΅Ρ ΡΠΊΠ°Π·Π°Π½Π½ΡΠ΅ ΠΏΠΎΠ»Ρ ΠΈ Π·Π°Π³ΡΡΠΆΠ°Π΅Ρ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΡΡΠ°Π²ΡΠΈΠ΅ΡΡ:
ΠΠΎΠΏΡΡΡΠΈΠΌ, Ρ Π½Π°Ρ Π΅ΡΡΡ ΡΠΏΠΈΡΠΎΠΊ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² Π½Π΅Π΄Π²ΠΈΠΆΠΈΠΌΠΎΡΡΠΈ, Π½ΠΎ ΠΌΡ Π½Π΅ Ρ ΠΎΡΠΈΠΌ Π·Π°Π³ΡΡΠΆΠ°ΡΡ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ description, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΠΎΠ½ΠΎ ΠΌΠΎΠΆΠ΅Ρ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ Π΄Π»ΠΈΠ½Π½ΡΠΉ ΡΠ΅ΠΊΡΡ.
Π‘ΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠΉ Π·Π°ΠΏΡΠΎΡ Π±Π΅Π· defer()
ΠΡΠΎΡ Π·Π°ΠΏΡΠΎΡ Π·Π°Π³ΡΡΠΆΠ°Π΅Ρ Π²ΡΠ΅ ΠΏΠΎΠ»Ρ, Π²ΠΊΠ»ΡΡΠ°Ρ description, ΡΡΠΎ ΠΌΠΎΠΆΠ΅Ρ Π·Π°ΠΌΠ΅Π΄Π»ΡΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅:
ΠΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ Π·Π°ΠΏΡΠΎΡ Ρ defer():
ΠΡΠ»ΠΈ ΡΠ΅ΠΏΠ΅ΡΡ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΡΠ΅ΡΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ, ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΌΠ΅ΡΠΈΡΡ, ΡΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ defer("description") ΡΠΌΠ΅Π½ΡΡΠΈΠ»ΠΎ Π²ΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π·Π°ΠΏΡΠΎΡΠ° Ρ 765 ΠΌΡ Π΄ΠΎ 184 ΠΌΡ, Ρ.Π΅. Π² 4 ΡΠ°Π·Π°!
ΠΠΎΠ³Π΄Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ defer():
- ΠΠ»Ρ ΡΠ΅ΠΊΡΡΠΎΠ²ΡΡ TextField ΠΈ JSON-ΠΏΠΎΠ»Π΅ΠΉ, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠΎΠ΄Π΅ΡΠΆΠ°Ρ ΠΌΠ½ΠΎΠ³ΠΎ Π΄Π°Π½Π½ΡΡ .
- ΠΡΠ»ΠΈ ΠΏΠΎΠ»Π΅ ΡΠ΅Π΄ΠΊΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ, Π° Π΅Π³ΠΎ Π·Π°Π³ΡΡΠ·ΠΊΠ° Π·Π°ΠΌΠ΅Π΄Π»ΡΠ΅Ρ Π·Π°ΠΏΡΠΎΡ.
- ΠΡΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ ΡΠΏΠΈΡΠΊΠΎΠ² ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ², ΠΊΠΎΠ³Π΄Π° Π½Π΅ Π½ΡΠΆΠ½Ρ Π²ΡΠ΅ Π΄Π΅ΡΠ°Π»ΠΈ.
ΠΠ΅ΡΠΎΠ΄ only() Π² Django
ΠΠ΅ΡΠΎΠ΄ only() β ΡΡΠΎ ΠΏΡΠΎΡΠΈΠ²ΠΎΠΏΠΎΠ»ΠΎΠΆΠ½ΠΎΡΡΡ ΠΌΠ΅ΡΠΎΠ΄Π° defer(). ΠΠΌΠ΅ΡΡΠΎ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ ΠΈΡΠΊΠ»ΡΡΠ°ΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠ΅ ΠΏΠΎΠ»Ρ, ΠΎΠ½ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠ²Π½ΠΎ ΡΠΊΠ°Π·Π°ΡΡ, ΠΊΠ°ΠΊΠΈΠ΅ ΠΏΠΎΠ»Ρ Π½ΡΠΆΠ½ΠΎ Π·Π°Π³ΡΡΠ·ΠΈΡΡ ΠΈΠ· Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ . ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ only() ΠΏΠΎΠ»Π΅Π·Π½ΠΎ, ΠΊΠΎΠ³Π΄Π° Π½Π°ΠΌ Π½ΡΠΆΠ΅Π½ ΡΠΎΠ»ΡΠΊΠΎ Π½Π΅Π±ΠΎΠ»ΡΡΠΎΠΉ Π½Π°Π±ΠΎΡ ΠΏΠΎΠ»Π΅ΠΉ, Π° Π·Π°Π³ΡΡΠΆΠ°ΡΡ ΠΎΡΡΠ°Π»ΡΠ½ΡΠ΅ Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ ΡΠΌΡΡΠ»Π°.
ΠΠ°ΠΊ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ only()
ΠΠ±ΡΡΠ½ΡΠΉ SQL-Π·Π°ΠΏΡΠΎΡ Π±Π΅Π· only() Π·Π°Π³ΡΡΠΆΠ°Π΅Ρ Π²ΡΠ΅ ΠΊΠΎΠ»ΠΎΠ½ΠΊΠΈ ΡΠ°Π±Π»ΠΈΡΡ:
Π Ρ only() Π·Π°Π³ΡΡΠΆΠ°ΡΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΡΠΊΠ°Π·Π°Π½Π½ΡΠ΅ ΠΊΠΎΠ»ΠΎΠ½ΠΊΠΈ:
ΠΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠΌΠ΅Π½ΡΡΠΈΡΡ ΠΎΠ±ΡΠ΅ΠΌ Π΄Π°Π½Π½ΡΡ , Π·Π°Π³ΡΡΠΆΠ°Π΅ΠΌΡΡ ΠΈΠ· Π±Π°Π·Ρ, ΠΈ ΡΡΠΊΠΎΡΠΈΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π·Π°ΠΏΡΠΎΡΠ°.
ΠΠΎΠΏΡΡΡΠΈΠΌ, Ρ Π½Π°Ρ Π΅ΡΡΡ ΡΠΏΠΈΡΠΎΠΊ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² Π½Π΅Π΄Π²ΠΈΠΆΠΈΠΌΠΎΡΡΠΈ, Π½ΠΎ Π΄Π»Ρ Π²ΡΠ²ΠΎΠ΄Π° Π² ΡΠΏΠΈΡΠΊΠ΅ Π½Π°ΠΌ Π½ΡΠΆΠ½Ρ ΡΠΎΠ»ΡΠΊΠΎ ID, Π½Π°Π·Π²Π°Π½ΠΈΠ΅ name, ΠΌΠ΅ΡΡΠΎΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ location ΠΈ ΡΠ΅Π½Π° price.
Π‘ΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠΉ Π·Π°ΠΏΡΠΎΡ Π±Π΅Π· only()
ΠΡΠΎΡ Π·Π°ΠΏΡΠΎΡ Π·Π°Π³ΡΡΠΆΠ°Π΅Ρ Π²ΡΠ΅ ΠΏΠΎΠ»Ρ ΠΌΠΎΠ΄Π΅Π»ΠΈ Property, Π΄Π°ΠΆΠ΅ Π΅ΡΠ»ΠΈ ΠΎΠ½ΠΈ Π½Π°ΠΌ Π½Π΅ Π½ΡΠΆΠ½Ρ:
ΠΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ Π·Π°ΠΏΡΠΎΡ Ρ only():
Π’Π΅ΠΏΠ΅ΡΡ Django Π±ΡΠ΄Π΅Ρ Π·Π°Π³ΡΡΠΆΠ°ΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΡΠΊΠ°Π·Π°Π½Π½ΡΠ΅ ΠΏΠΎΠ»Ρ. Π’Π΅ΡΡ ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ, ΡΡΠΎ Π²ΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π·Π°ΠΏΡΠΎΡΠ° ΡΠΌΠ΅Π½ΡΡΠΈΠ»ΠΎΡΡ Ρ 184 ΠΌΡ Π΄ΠΎ 154 ΠΌΡ, Π½Π° 30 ΠΌΡ Π±ΡΡΡΡΠ΅Π΅ ΠΏΠΎ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ Ρ defer().
ΠΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ only():
- ΠΠΎΠΆΠ½ΠΎ Π·Π°Π³ΡΡΠΆΠ°ΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠ΅ ΠΏΠΎΠ»Ρ ΠΈΠ· ΡΠ²ΡΠ·Π°Π½Π½ΡΡ ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ. ΠΡΠ»ΠΈ Π½Π°ΠΌ Π½ΡΠΆΠ΅Π½ ΡΠΎΠ»ΡΠΊΠΎ Π³ΠΎΡΠΎΠ΄ city ΠΈΠ· ΠΌΠΎΠ΄Π΅Π»ΠΈ Location, ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°ΡΡ ΡΠ°ΠΊ:
ΠΠΎΠ³Π΄Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ only(), Π° ΠΊΠΎΠ³Π΄Π° defer()
ΠΡΡΡΠΈΠΉ Π²Π°ΡΠΈΠ°Π½Ρ Π·Π°Π²ΠΈΡΠΈΡ ΠΎΡ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠ³ΠΎ Π·Π°ΠΏΡΠΎΡΠ° ΠΈ ΡΡΡΡΠΊΡΡΡΡ ΠΌΠΎΠ΄Π΅Π»ΠΈ:
- only() ΠΏΠΎΠ»Π΅Π·Π΅Π½, ΠΊΠΎΠ³Π΄Π° Π½Π°ΠΌ Π½ΡΠΆΠ½Ρ ΡΠΎΠ»ΡΠΊΠΎ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΠΎΠ»Π΅ΠΉ.
- defer() Π»ΡΡΡΠ΅, Π΅ΡΠ»ΠΈ ΠΌΡ Π·Π½Π°Π΅ΠΌ, ΠΊΠ°ΠΊΠΈΠ΅ ΠΏΠΎΠ»Ρ ΠΈΡΠΊΠ»ΡΡΠΈΡΡ.
π ΠΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° ΠΏΠΈΡΠΎΠ½ΠΈΡΡΠ°
ΠΠΎΠ»ΡΡΠ΅ ΠΏΠΎΠ»Π΅Π·Π½ΡΡ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π»ΠΎΠ² Π²Ρ Π½Π°ΠΉΠ΄Π΅ΡΠ΅ Π½Π° Π½Π°ΡΠ΅ΠΌ ΡΠ΅Π»Π΅Π³ΡΠ°ΠΌ-ΠΊΠ°Π½Π°Π»Π΅ Β«ΠΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° ΠΏΠΈΡΠΎΠ½ΠΈΡΡΠ°Β»
ππ ΠΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° Python Π΄Π»Ρ ΡΠΎΠ±Π΅ΡΠ°
ΠΠΎΠ΄ΡΡΠ½ΡΡΡ ΡΠ²ΠΎΠΈ Π·Π½Π°Π½ΠΈΡ ΠΏΠΎ Python Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π½Π° Π½Π°ΡΠ΅ΠΌ ΡΠ΅Π»Π΅Π³ΡΠ°ΠΌ-ΠΊΠ°Π½Π°Π»Π΅ Β«ΠΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° Python Π΄Π»Ρ ΡΠΎΠ±Π΅ΡΠ°Β»
ππ§© ΠΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° Π·Π°Π΄Π°Ρ ΠΏΠΎ Python
ΠΠ½ΡΠ΅ΡΠ΅ΡΠ½ΡΠ΅ Π·Π°Π΄Π°ΡΠΈ ΠΏΠΎ Python Π΄Π»Ρ ΠΏΡΠ°ΠΊΡΠΈΠΊΠΈ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡΠΈ Π½Π° Π½Π°ΡΠ΅ΠΌ ΡΠ΅Π»Π΅Π³ΡΠ°ΠΌ-ΠΊΠ°Π½Π°Π»Π΅ Β«ΠΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° Π·Π°Π΄Π°Ρ ΠΏΠΎ PythonΒ»
ΠΠ΅ΡΠΎΠ΄ exclude() Π² Django
ΠΠ΅ΡΠΎΠ΄ exclude() β ΡΡΠΎ ΠΏΡΠΎΡΠΈΠ²ΠΎΠΏΠΎΠ»ΠΎΠΆΠ½ΠΎΡΡΡ ΠΌΠ΅ΡΠΎΠ΄Π° filter(). ΠΡΠ»ΠΈ filter() Π²ΡΠ±ΠΈΡΠ°Π΅Ρ ΠΎΠ±ΡΠ΅ΠΊΡΡ, ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠ΅ ΡΡΠ»ΠΎΠ²ΠΈΡΠΌ, ΡΠΎ exclude() ΠΈΡΠΊΠ»ΡΡΠ°Π΅Ρ ΠΈΡ ΠΈΠ· Π²ΡΠ±ΠΎΡΠΊΠΈ.
ΠΠ°ΠΆΠ½ΠΎ ΠΎΡΠΌΠ΅ΡΠΈΡΡ, ΡΡΠΎ defer() ΠΈ only() ΡΠ°Π±ΠΎΡΠ°ΡΡ Π½Π° ΡΡΠΎΠ²Π½Π΅ ΠΏΠΎΠ»Π΅ΠΉ (ΡΡΠΎΠ»Π±ΡΠΎΠ²), Π° exclude() ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΡΡΡ Π½Π° ΡΡΠΎΠ²Π½Π΅ ΡΡΡΠΎΠΊ, ΠΎΡΡΠΈΠ»ΡΡΡΠΎΠ²ΡΠ²Π°Ρ Π½Π΅Π½ΡΠΆΠ½ΡΠ΅ Π·Π°ΠΏΠΈΡΠΈ.
ΠΠ°ΠΊ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ exclude()
ΠΠΎΠΏΡΡΡΠΈΠΌ, Ρ Π½Π°Ρ Π΅ΡΡΡ ΠΌΠΎΠ΄Π΅Π»Ρ Π½Π΅Π΄Π²ΠΈΠΆΠΈΠΌΠΎΡΡΠΈ Property, ΠΈ ΠΌΡ Ρ ΠΎΡΠΈΠΌ ΠΎΡΠΎΠ±ΡΠ°ΡΡ Π²ΡΠ΅ ΠΊΠ²Π°ΡΡΠΈΡΡ:
ΠΡΠΎΡ ΠΊΠΎΠ΄ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ SQL-Π·Π°ΠΏΡΠΎΡ:
Π ΡΠ΅ΠΏΠ΅ΡΡ Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΡ exclude() Π΄Π»Ρ Π²ΡΠ±ΠΎΡΠ° Π²ΡΠ΅Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ ΠΠ ΡΠ²Π»ΡΡΡΡΡ ΠΊΠ²Π°ΡΡΠΈΡΠ°ΠΌΠΈ:
Π’Π΅ΠΏΠ΅ΡΡ ΠΊΠΎΠ΄ Π±ΡΠ΄Π΅Ρ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ ΡΡΠΎΡ SQL-Π·Π°ΠΏΡΠΎΡ, ΠΈ Π² Π²ΡΠ±ΠΎΡΠΊΠ΅ Π±ΡΠ΄ΡΡ Π²ΡΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΡ, ΠΊΡΠΎΠΌΠ΅ ΠΊΠ²Π°ΡΡΠΈΡ:
ΠΠΎΠΌΠ±ΠΈΠ½ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΡΡΠ»ΠΎΠ²ΠΈΠΉ Ρ exclude()
ΠΠ°ΠΊ ΠΈ filter(), exclude() ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΠΌΠΈ ΡΡΠ»ΠΎΠ²ΠΈΡΠΌΠΈ. ΠΠΎΠΏΡΡΡΠΈΠΌ, Π½Π°ΠΌ Π½ΡΠΆΠ½Ρ Π²ΡΠ΅ Π·Π΄Π°Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠ΅:
- ΠΠ΅ ΡΠ²Π»ΡΡΡΡΡ Π·Π΅ΠΌΠ΅Π»ΡΠ½ΡΠΌΠΈ ΡΡΠ°ΡΡΠΊΠ°ΠΌΠΈ.
- ΠΠΌΠ΅ΡΡ ΠΏΠ»ΠΎΡΠ°Π΄Ρ Π±ΠΎΠ»Π΅Π΅ 1000 ΠΊΠ²Π°Π΄ΡΠ°ΡΠ½ΡΡ ΡΡΡΠΎΠ².
SQL-Π·Π°ΠΏΡΠΎΡ Π±ΡΠ΄Π΅Ρ ΡΠ°ΠΊΠΈΠΌ:
ΠΠΎΠ³Π΄Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ exclude():
- ΠΠΎΠ³Π΄Π° Π½ΡΠΆΠ½ΠΎ ΡΠ±ΡΠ°ΡΡ Π½Π΅Π½ΡΠΆΠ½ΡΠ΅ Π·Π°ΠΏΠΈΡΠΈ ΠΈΠ· Π²ΡΠ±ΠΎΡΠΊΠΈ.
- ΠΠΎΠ³Π΄Π° ΡΠ΄ΠΎΠ±Π½Π΅Π΅ ΡΠ±ΡΠ°ΡΡ Π»ΠΈΡΠ½ΠΈΠ΅ Π·Π°ΠΏΠΈΡΠΈ, ΡΠ΅ΠΌ ΠΈΡΠΊΠ°ΡΡ Π½ΡΠΆΠ½ΡΠ΅ Ρ ΠΏΠΎΠΌΠΎΡΡΡ filter().
- ΠΡΠΈ ΡΠ»ΠΎΠΆΠ½ΡΡ ΡΠΈΠ»ΡΡΡΠ°ΡΠΈΡΡ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π²ΡΠ±ΡΠ°ΡΡ Π²ΡΠ΅, ΠΊΡΠΎΠΌΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΡ ΠΊΠ°ΡΠ΅Π³ΠΎΡΠΈΠΉ).
Π‘ΡΠ°ΡΡΡ ΠΏΠΎ ΡΠ΅ΠΌΠ΅
ππ Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ ΡΠ΅ΠΊΡΡΡΠΈΠ½Π³ΠΎΠ²ΡΠΉ ΠΏΠΎΡΡΠ°Π» Π½Π° Django: ΡΠ°ΡΡΡ 1
ΠΠΎΠ΄Π²ΠΎΠ΄Π½ΡΠ΅ ΠΊΠ°ΠΌΠ½ΠΈ defer() ΠΈ only() Π² Django
ΠΠ΅ΡΠΎΠ΄Ρ defer() ΠΈ only() ΠΏΠΎΠΌΠΎΠ³Π°ΡΡ ΡΡΠΊΠΎΡΠΈΡΡ Π·Π°ΠΏΡΠΎΡΡ, Π½ΠΎ Π½Π΅ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎΠ΅ ΠΈΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ ΡΠΈΠ»ΡΠ½ΠΎ ΡΡ ΡΠ΄ΡΠΈΡΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ.
ΠΠ»Π°Π²Π½Π°Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°: Ρ ΠΎΡΡ defer() ΠΈ only() ΠΈΡΠΊΠ»ΡΡΠ°ΡΡ ΠΏΠΎΠ»Ρ ΠΈΠ· ΠΏΠ΅ΡΠ²ΠΎΠ½Π°ΡΠ°Π»ΡΠ½ΠΎΠ³ΠΎ SQL-Π·Π°ΠΏΡΠΎΡΠ°, Django Π½Π΅ Π·Π°ΠΏΡΠ΅ΡΠ°Π΅Ρ Π΄ΠΎΡΡΡΠΏ ΠΊ ΡΡΠΈΠΌ ΠΏΠΎΠ»ΡΠΌ Π² Π΄Π°Π»ΡΠ½Π΅ΠΉΡΠ΅ΠΌ. ΠΡΠ»ΠΈ ΠΏΠΎΠ·ΠΆΠ΅ Π² ΠΊΠΎΠ΄Π΅ ΠΎΠ±ΡΠ°ΡΠΈΡΡΡΡ ΠΊ ΠΈΡΠΊΠ»ΡΡΠ΅Π½Π½ΡΠΌ ΠΏΠΎΠ»ΡΠΌ, Django ΡΠΎΠ·Π΄Π°ΡΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ SQL-Π·Π°ΠΏΡΠΎΡΡ, ΠΈ Π² ΠΈΡΠΎΠ³Π΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π±ΡΠ΄Π΅Ρ ΡΠ°Π±ΠΎΡΠ°ΡΡ ΠΌΠ΅Π΄Π»Π΅Π½Π½Π΅Π΅, ΡΠ΅ΠΌ Π΅ΡΠ»ΠΈ Π±Ρ Π²ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ Π·Π°Π³ΡΡΠ·ΠΈΠ»ΠΈΡΡ ΡΡΠ°Π·Ρ.
ΠΡΠΈΠΌΠ΅Ρ ΠΎΡΠΈΠ±ΠΊΠΈ Ρ only()
Π ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠΈ property_amenities_view() ΡΠ½Π°ΡΠ°Π»Π° Π·Π°ΠΏΡΠ°ΡΠΈΠ²Π°ΡΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π½ΡΠΆΠ½ΡΠ΅ ΠΏΠΎΠ»Ρ:
SQL-Π·Π°ΠΏΡΠΎΡ Π²ΡΠ³Π»ΡΠ΄ΠΈΡ ΡΠ°ΠΊ:
ΠΠ΄Π΅ΡΡ Π²ΡΠ΅ ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°Π½ΠΎ: Π·Π°Π³ΡΡΠΆΠ°ΡΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π½ΡΠΆΠ½ΡΠ΅ ΠΏΠΎΠ»Ρ, Π½ΠΈΡΠ΅Π³ΠΎ Π»ΠΈΡΠ½Π΅Π³ΠΎ. ΠΠΎ Π΅ΡΠ»ΠΈ ΠΌΡ Π΄ΠΎΠ±Π°Π²ΠΈΠΌ Π½ΠΎΠ²ΡΠ΅ ΠΏΠΎΠ»Ρ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠΏΠ°Π»ΡΠ½ΠΈ bedrooms ΠΈ Π²Π°Π½Π½ΡΠ΅ bathrooms, Django ΡΠ΄Π΅Π»Π°Π΅Ρ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ SQL-Π·Π°ΠΏΡΠΎΡΡ Π΄Π»Ρ ΠΈΡ Π·Π°Π³ΡΡΠ·ΠΊΠΈ:
Π’Π΅ΠΏΠ΅ΡΡ SQL-Π·Π°ΠΏΡΠΎΡΡ Π±ΡΠ΄ΡΡ ΡΠ°ΠΊΠΈΠΌΠΈ:
Π’Π΅ΠΏΠ΅ΡΡ Ρ Π½Π°Ρ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ ΡΡΠΈ Π·Π°ΠΏΡΠΎΡΠ° Π²ΠΌΠ΅ΡΡΠΎ ΠΎΠ΄Π½ΠΎΠ³ΠΎ, ΠΈ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ ΡΡ ΡΠ΄ΡΠΈΠ»Π°ΡΡ.
ΠΠ°ΠΊ ΠΈΠ·Π±Π΅ΠΆΠ°ΡΡ ΡΡΠΎΠΉ ΠΎΡΠΈΠ±ΠΊΠΈ:
- ΠΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ only() Π·Π°ΡΠ°Π½Π΅Π΅ ΡΡΠΈΡΡΠ²Π°ΠΉΡΠ΅, ΠΊΠ°ΠΊΠΈΠ΅ ΠΏΠΎΠ»Ρ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΡΡΡΡ.
- ΠΡΠ»ΠΈ Π΅ΡΡΡ Π²Π΅ΡΠΎΡΡΠ½ΠΎΡΡΡ, ΡΡΠΎ ΠΊ ΠΏΠΎΠ»Ρ ΠΌΠΎΠ³ΡΡ ΠΎΠ±ΡΠ°ΡΠΈΡΡΡΡ ΠΏΠΎΠ·ΠΆΠ΅ β Π»ΡΡΡΠ΅ ΡΡΠ°Π·Ρ Π²ΠΊΠ»ΡΡΠΈΡΡ Π΅Π³ΠΎ Π² Π·Π°ΠΏΡΠΎΡ.
- Π‘Π»Π΅Π΄ΠΈΡΠ΅ Π·Π° SQL-Π·Π°ΠΏΡΠΎΡΠ°ΠΌΠΈ Π² Django Silk ΠΈΠ»ΠΈ Django Debug Toolbar, ΠΎΠ½ΠΈ ΠΏΠΎΠΌΠΎΠ³ΡΡ Π²ΠΎΠ²ΡΠ΅ΠΌΡ Π·Π°ΠΌΠ΅ΡΠΈΡΡ Π½Π΅ΠΎΠΆΠΈΠ΄Π°Π½Π½ΡΠ΅ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ Π·Π°ΠΏΡΠΎΡΡ.
- ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ django_assert_num_queries Π² ΡΠ΅ΡΡΠ°Ρ β ΡΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΎΠ±Π½Π°ΡΡΠΆΠΈΠ²Π°ΡΡ ΠΏΠΎΡΠ²Π»Π΅Π½ΠΈΠ΅ Π½ΠΎΠ²ΡΡ SQL-Π·Π°ΠΏΡΠΎΡΠΎΠ².
Π‘ΡΠ°ΡΡΡ ΠΏΠΎ ΡΠ΅ΠΌΠ΅
ΠΠΎΠ΄Π²Π΅Π΄Π΅ΠΌ ΠΈΡΠΎΠ³ΠΈ
Π§ΡΠΎΠ±Ρ ΡΡΠΊΠΎΡΠΈΡΡ Π·Π°ΠΏΡΠΎΡΡ Π² Django, Π½ΡΠΆΠ½ΠΎ ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ ΠΎΠ±ΡΠ΅ΠΌ Π΄Π°Π½Π½ΡΡ , ΠΊΠΎΡΠΎΡΡΠ΅ Π·Π°Π³ΡΡΠΆΠ°ΡΡΡΡ ΠΈΠ· Π±Π°Π·Ρ. ΠΡΠΎ ΠΊΠ°ΡΠ°Π΅ΡΡΡ ΠΈ ΡΡΡΠΎΠΊ (ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² ΠΌΠΎΠ΄Π΅Π»ΠΈ), ΠΈ ΡΡΠΎΠ»Π±ΡΠΎΠ² (Π°ΡΡΠΈΠ±ΡΡΠΎΠ² ΠΌΠΎΠ΄Π΅Π»ΠΈ):
- ΠΠ»Ρ ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ Π·Π°Π³ΡΡΠΆΠ°Π΅ΠΌΡΡ Π°ΡΡΠΈΠ±ΡΡΠΎΠ² ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ defer() ΠΈ only().
- ΠΠ»Ρ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ Π½Π΅Π½ΡΠΆΠ½ΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ exclude().
ΠΠ°ΠΆΠ½ΠΎ ΡΠ°ΠΊΠΆΠ΅ ΡΠ»Π΅Π΄ΠΈΡΡ Π·Π° SQL-Π·Π°ΠΏΡΠΎΡΠ°ΠΌΠΈ (Ρ ΠΏΠΎΠΌΠΎΡΡΡ Django Silk ΠΈΠ»ΠΈ Django Debug Toolbar) ΠΈ Π½Π΅ Π΄ΠΎΠΏΡΡΠΊΠ°ΡΡ ΠΎΡΠΈΠ±ΠΎΠΊ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠ³ΡΡ ΠΏΡΠΈΠ²Π΅ΡΡΠΈ ΠΊ ΡΠ²Π΅Π»ΠΈΡΠ΅Π½ΠΈΡ ΠΈΡ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Π°.