π ΠΠ°ΠΊ ΠΎΠ±Π½ΠΎΠ²ΠΈΡΡ ΡΡΠ°ΡΠΈΠΊΡ Django: Π»Π΅Π³ΠΊΠΈΠΉ Π³Π°ΠΉΠ΄ Π΄Π»Ρ ΡΡΠΏΠ΅ΡΠ½ΠΎΠ³ΠΎ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ
Π§ΡΠΎΠ±Ρ ΠΎΠ±Π½ΠΎΠ²ΠΈΡΡ ΡΡΠ°ΡΠΈΠΊΡ Π² Django, ΡΠ»Π΅Π΄ΡΠΉΡΠ΅ ΡΡΠΈΠΌ ΡΠ°Π³Π°ΠΌ:
- Π£Π±Π΅Π΄ΠΈΡΠ΅ΡΡ, ΡΡΠΎ Ρ Π²Π°Ρ Π΅ΡΡΡ Π°ΠΊΡΡΠ°Π»ΡΠ½ΡΠΉ ΡΠ°ΠΉΠ» manage.py Π² ΠΊΠΎΡΠ½Π΅Π²ΠΎΠΉ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΠΈ ΠΏΡΠΎΠ΅ΠΊΡΠ° Django.
- ΠΡΠΊΡΠΎΠΉΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΡΡ ΡΡΡΠΎΠΊΡ ΠΈ ΠΏΠ΅ΡΠ΅ΠΉΠ΄ΠΈΡΠ΅ Π² Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡ ΠΏΡΠΎΠ΅ΠΊΡΠ° Django.
- ΠΡΠΏΠΎΠ»Π½ΠΈΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π΄Π»Ρ ΡΠ±ΠΎΡΠ° ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΡ ΡΠ°ΠΉΠ»ΠΎΠ²:
python manage.py collectstatic
ΠΡΠ° ΠΊΠΎΠΌΠ°Π½Π΄Π° ΡΠΎΠ±Π΅ΡΠ΅Ρ Π²ΡΠ΅ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΡΠ°ΠΉΠ»Ρ ΠΈΠ· Π²Π°ΡΠ΅Π³ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠ° ΠΈ ΠΏΠΎΠΌΠ΅ΡΡΠΈΡ ΠΈΡ Π² Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡ, ΡΠΊΠ°Π·Π°Π½Π½ΡΡ Π² Π½Π°ΡΡΡΠΎΠΉΠΊΠ°Ρ Π²Π°ΡΠ΅Π³ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠ°.
ΠΠΎΡΠ»Π΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΡΠΈΡ ΡΠ°Π³ΠΎΠ², Π²Π°ΡΠ° ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠ°Ρ ΡΡΠ°ΡΠΈΠΊΠ° Π±ΡΠ΄Π΅Ρ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½Π° Π² Django.
ΠΠ΅ΡΠ°Π»ΡΠ½ΡΠΉ ΠΎΡΠ²Π΅Ρ
ΠΠ°ΠΊ ΠΎΠ±Π½ΠΎΠ²ΠΈΡΡ ΡΡΠ°ΡΠΈΠΊΡ Django
ΠΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ ΡΡΠ°ΡΠΈΠΊΠΈ Π² Django - Π²Π°ΠΆΠ½Π°Ρ Π·Π°Π΄Π°ΡΠ° ΠΏΡΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ΅ Π²Π΅Π±-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. Π‘ΡΠ°ΡΠΈΠΊΠ°, ΡΠ°ΠΊΠ°Ρ ΠΊΠ°ΠΊ CSS-ΡΠ°ΠΉΠ»Ρ, JavaScript-ΡΠ°ΠΉΠ»Ρ ΠΈ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ, ΠΈΠ³ΡΠ°Π΅Ρ Π²Π°ΠΆΠ½ΡΡ ΡΠΎΠ»Ρ Π² ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ ΠΏΡΠΈΠ²Π»Π΅ΠΊΠ°ΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΎΠ³ΠΎ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° ΠΈ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΠΈ Π²Π΅Π±-ΡΠ°ΠΉΡΠ°. Π ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅ Ρ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎ ΡΠ°ΡΡΠΊΠ°ΠΆΡ ΠΎ ΡΠΎΠΌ, ΠΊΠ°ΠΊ ΠΎΠ±Π½ΠΎΠ²ΠΈΡΡ ΡΡΠ°ΡΠΈΠΊΡ Π² Django.
Π¨Π°Π³ 1: Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΡ ΡΠ°ΠΉΠ»ΠΎΠ²
ΠΠ΅ΡΠ²ΡΠΉ ΡΠ°Π³ ΠΏΠ΅ΡΠ΅Π΄ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ΠΌ ΡΡΠ°ΡΠΈΠΊΠΈ ΡΠΎΡΡΠΎΠΈΡ Π² ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΡ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΡ ΡΠ°ΠΉΠ»ΠΎΠ², ΡΠ°ΠΊΠΈΡ ΠΊΠ°ΠΊ CSS-ΡΠ°ΠΉΠ»Ρ, JavaScript-ΡΠ°ΠΉΠ»Ρ ΠΈ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ.
Π‘ΠΎΠ·Π΄Π°ΠΉΡΠ΅ ΠΏΠ°ΠΏΠΊΡ "static" Π² Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΠΈ Π²Π°ΡΠ΅Π³ΠΎ Django-ΠΏΡΠΎΠ΅ΠΊΡΠ°, Π΅ΡΠ»ΠΈ ΠΎΠ½Π° Π΅ΡΠ΅ Π½Π΅ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ. ΠΠ½ΡΡΡΠΈ ΠΏΠ°ΠΏΠΊΠΈ "static" ΡΠΎΠ·Π΄Π°ΠΉΡΠ΅ ΠΏΠΎΠ΄ΠΏΠ°ΠΏΠΊΠΈ Π΄Π»Ρ ΡΠ°Π·Π½ΡΡ ΡΠΈΠΏΠΎΠ² ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΡ ΡΠ°ΠΉΠ»ΠΎΠ², Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ "css" Π΄Π»Ρ CSS-ΡΠ°ΠΉΠ»ΠΎΠ², "js" Π΄Π»Ρ JavaScript-ΡΠ°ΠΉΠ»ΠΎΠ² ΠΈ "img" Π΄Π»Ρ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ.
ΠΠΎΠΌΠ΅ΡΡΠΈΡΠ΅ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠ΅ ΡΠ°ΠΉΠ»Ρ Π² ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠ΅ ΠΏΠΎΠ΄ΠΏΠ°ΠΏΠΊΠΈ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΠΎΠΌΠ΅ΡΡΠΈΡΠ΅ Π²ΡΠ΅ CSS-ΡΠ°ΠΉΠ»Ρ Π² ΠΏΠ°ΠΏΠΊΡ "static/css", Π²ΡΠ΅ JavaScript-ΡΠ°ΠΉΠ»Ρ Π² ΠΏΠ°ΠΏΠΊΡ "static/js" ΠΈ Π²ΡΠ΅ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ Π² ΠΏΠ°ΠΏΠΊΡ "static/img".
Π¨Π°Π³ 2: ΠΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ Π½Π°ΡΡΡΠΎΠ΅ΠΊ Django
ΠΠ»Ρ ΡΠΎΠ³ΠΎ ΡΡΠΎΠ±Ρ Django ΠΌΠΎΠ³ Π½Π°ΠΉΡΠΈ ΠΈ ΠΎΠ±ΡΠ»ΡΠΆΠΈΠ²Π°ΡΡ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΡΠ°ΠΉΠ»Ρ, Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π½Π°ΡΡΡΠΎΠΈΡΡ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ Π² ΡΠ°ΠΉΠ»Π΅ Π½Π°ΡΡΡΠΎΠ΅ΠΊ Π²Π°ΡΠ΅Π³ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠ°.
ΠΡΠΊΡΠΎΠΉΡΠ΅ ΡΠ°ΠΉΠ» "settings.py" Π² Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΠΈ Π²Π°ΡΠ΅Π³ΠΎ Django-ΠΏΡΠΎΠ΅ΠΊΡΠ° ΠΈ Π½Π°ΠΉΠ΄ΠΈΡΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ "STATIC_URL". Π£Π±Π΅Π΄ΠΈΡΠ΅ΡΡ, ΡΡΠΎ Π΅Π³ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΎ Π½Π° "/static/".
ΠΠ»Ρ ΡΠΎΠ³ΠΎ ΡΡΠΎΠ±Ρ Django ΠΌΠΎΠ³ Π½Π°ΠΉΡΠΈ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΡΠ°ΠΉΠ»Ρ Π² ΠΏΠ°ΠΏΠΊΠ΅ "static", Π΄ΠΎΠ±Π°Π²ΡΡΠ΅ ΡΠ»Π΅Π΄ΡΡΡΡΡ ΡΡΡΠΎΠΊΡ Π² ΡΠ°ΠΉΠ»Π΅ "settings.py":
STATICFILES_DIRS = [
os.path.join(BASE_DIR, 'static')
]
Π¨Π°Π³ 3: ΠΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ ΡΡΠ°ΡΠΈΠΊΠΈ
ΠΠΎΡΠ»Π΅ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΡ ΡΠ°ΠΉΠ»ΠΎΠ² ΠΈ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ Django, ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΈΡΡΡΠΏΠΈΡΡ ΠΊ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ ΡΡΠ°ΡΠΈΠΊΠΈ.
ΠΡΠΊΡΠΎΠΉΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΡΡ ΡΡΡΠΎΠΊΡ (ΡΠ΅ΡΠΌΠΈΠ½Π°Π») ΠΈ ΠΏΠ΅ΡΠ΅ΠΉΠ΄ΠΈΡΠ΅ Π² Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡ Π²Π°ΡΠ΅Π³ΠΎ Django-ΠΏΡΠΎΠ΅ΠΊΡΠ°. ΠΠ²Π΅Π΄ΠΈΡΠ΅ ΡΠ»Π΅Π΄ΡΡΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ:
python manage.py collectstatic
ΠΡΠ° ΠΊΠΎΠΌΠ°Π½Π΄Π° ΡΠΎΠ±Π΅ΡΠ΅Ρ Π²ΡΠ΅ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΡΠ°ΠΉΠ»Ρ ΠΈΠ· Π²ΡΠ΅Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π²Π°ΡΠ΅Π³ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠ° ΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΡΠΈΡ ΠΈΡ Π² ΠΏΠ°ΠΏΠΊΡ, ΡΠΊΠ°Π·Π°Π½Π½ΡΡ Π² Π½Π°ΡΡΡΠΎΠΉΠΊΠ°Ρ .
ΠΡΠ»ΠΈ Π²ΡΠ΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΎ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ, Π²Ρ ΡΠ²ΠΈΠ΄ΠΈΡΠ΅ Π²ΡΠ²ΠΎΠ΄ ΠΎ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ΅Π½ΠΈΠΈ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΡ ΡΠ°ΠΉΠ»ΠΎΠ² ΠΈ ΡΡΠΏΠ΅ΡΠ½ΠΎΠΌ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΈ ΡΡΠ°ΡΠΈΠΊΠΈ.
Π’Π΅ΠΏΠ΅ΡΡ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΡΠ°ΠΉΠ»Ρ Π΄ΠΎΡΡΡΠΏΠ½Ρ ΠΏΠΎ ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠΌΡ URL-Π°Π΄ΡΠ΅ΡΡ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π΅ΡΠ»ΠΈ URL-Π°Π΄ΡΠ΅Ρ Π²Π°ΡΠ΅Π³ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠ° - "http://example.com/", ΡΠΎ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΡΠ°ΠΉΠ»Ρ Π±ΡΠ΄ΡΡ Π΄ΠΎΡΡΡΠΏΠ½Ρ ΠΏΠΎ Π°Π΄ΡΠ΅ΡΡ "http://example.com/static/".
ΠΡΠΈ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΈ ΡΡΠ°ΡΠΈΠΊΠΈ Π² Django ΡΠ°ΠΊΠΆΠ΅ Π²Π°ΠΆΠ½ΠΎ ΠΏΠΎΠΌΠ½ΠΈΡΡ ΠΎ ΠΊΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ. ΠΡΠ»ΠΈ Π²Ρ Π²Π½ΠΎΡΠΈΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π² ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΡΠ°ΠΉΠ»Ρ, ΡΠ±Π΅Π΄ΠΈΡΠ΅ΡΡ, ΡΡΠΎ Π±ΡΠ°ΡΠ·Π΅ΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ ΠΏΠΎΠ»ΡΡΠ°ΡΡ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½Π½ΡΠ΅ Π²Π΅ΡΡΠΈΠΈ ΡΠ°ΠΉΠ»ΠΎΠ², Π° Π½Π΅ ΠΊΡΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΡ ΠΊΡΡ-ΠΈΠ½Π²Π°Π»ΠΈΠ΄Π°ΡΠΈΠΈ, ΡΠ°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΡΡ ΡΡΡΠΎΠΊ Π² URL-Π°Π΄ΡΠ΅ΡΠ° ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΡ ΡΠ°ΠΉΠ»ΠΎΠ² ΠΈΠ»ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΈΠΌΠ΅Π½ ΡΠ°ΠΉΠ»ΠΎΠ² ΠΏΡΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΈ.
ΠΠ°ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅
Π ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅ Ρ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎ ΡΠ°ΡΡΠΊΠ°Π·Π°Π» ΠΎ ΡΠΎΠΌ, ΠΊΠ°ΠΊ ΠΎΠ±Π½ΠΎΠ²ΠΈΡΡ ΡΡΠ°ΡΠΈΠΊΡ Π² Django. ΠΠ°ΠΆΠ½ΠΎ ΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΡ ΡΡΠΈΠΌ ΡΠ°Π³Π°ΠΌ, ΡΡΠΎΠ±Ρ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΡΠ°ΠΉΠ»Ρ Π²Π°ΡΠ΅Π³ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠ° Π±ΡΠ»ΠΈ Π΄ΠΎΡΡΡΠΏΠ½Ρ ΠΈ ΠΎΠ±Π½ΠΎΠ²Π»ΡΠ»ΠΈΡΡ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ. Π£ΡΡΠΈΡΠ΅ Π²Π°ΠΆΠ½ΠΎΡΡΡ ΠΊΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΈ Π½Π΅ Π·Π°Π±ΡΠ²Π°ΠΉΡΠ΅ ΠΎΠ±Π½ΠΎΠ²Π»ΡΡΡ URL-Π°Π΄ΡΠ΅ΡΠ° ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΡ ΡΠ°ΠΉΠ»ΠΎΠ² ΠΏΡΠΈ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ. ΠΠ°Π΄Π΅ΡΡΡ, ΡΡΠ° ΡΡΠ°ΡΡΡ ΠΏΠΎΠΌΠΎΠ³Π»Π° Π²Π°ΠΌ ΡΠ°Π·ΠΎΠ±ΡΠ°ΡΡΡΡ Ρ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ΠΌ ΡΡΠ°ΡΠΈΠΊΠΈ Π² Django.
Π£ΡΠΏΠ΅Ρ ΠΎΠ² Π² ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ΅!