ΠΠΎΠΊΠ°ΠΆΠ΅ΠΌ, ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°ΡΡ Π»ΠΈΡΠ½ΡΠΉ ΡΠ°ΠΉΡ Ρ Π°Π½ΠΈΠΌΠΈΡΠΎΠ²Π°Π½Π½ΡΠΌ ΠΏΠΎΡΡΡΠΎΠ»ΠΈΠΎ, ΡΠΎΡΡΠΈΡΠΎΠ²ΠΊΠΎΠΉ ΡΠ°Π±ΠΎΡ ΠΏΠΎ ΠΊΠ°ΡΠ΅Π³ΠΎΡΠΈΡΠΌ Π½Π° ΡΡΠΎΠ½ΡΠ΅Π½Π΄Π΅, ΠΊΠΎΠ½ΡΠ°ΠΊΡΠ½ΠΎΠΉ ΡΠΎΡΠΌΠΎΠΉ, ΡΠ΅Π·ΡΠΌΠ΅ ΠΈ ΠΎΡΠ·ΡΠ²Π°ΠΌΠΈ ΡΠ°Π±ΠΎΡΠΎΠ΄Π°ΡΠ΅Π»Π΅ΠΉ.
β Π§Π°ΡΡΡ 2
ORM ΠΈ ΠΎΡΠ½ΠΎΠ²Ρ ΡΠ°Π±ΠΎΡΡ Ρ Π±Π°Π·Π°ΠΌΠΈ Π΄Π°Π½Π½ΡΡ
ΠΠ±Π·ΠΎΡ ΠΏΡΠΎΠ΅ΠΊΡΠ°
ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΡΠΎΡΡΠΎΠΈΡ ΠΈΠ· 3 ΠΎΡΠ½ΠΎΠ²Π½ΡΡ ΡΠ°Π·Π΄Π΅Π»ΠΎΠ² β Π³Π»Π°Π²Π½ΠΎΠΉ ΡΡΡΠ°Π½ΠΈΡΡ, ΡΠ΅Π·ΡΠΌΠ΅ ΠΈ ΡΠ΅ΠΊΡΠΈΠΈ Β«ΠΠΎΠ½ΡΠ°ΠΊΡΡΒ». ΠΠ° Π³Π»Π°Π²Π½ΠΎΠΉ ΡΡΡΠ°Π½ΠΈΡΠ΅ Π²ΡΠ²ΠΎΠ΄ΡΡΡΡ Π²ΡΠ΅ ΡΠ°Π±ΠΎΡΡ, ΠΏΠ΅ΡΠ΅ΡΠ΅Π½Ρ ΡΡΠ»ΡΠ³ (ΡΠΎ ΡΠΏΠΈΡΠΊΠ°ΠΌΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠ²), ΠΈ ΠΎΡΠ·ΡΠ²Ρ Π·Π°ΠΊΠ°Π·ΡΠΈΠΊΠΎΠ²:
Π Π°Π·Π΄Π΅Π» Β«ΠΠ±ΠΎ ΠΌΠ½Π΅Β», ΠΏΠΎ ΡΡΡΠΈ, ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠ΅Π·ΡΠΌΠ΅ Π²Π»Π°Π΄Π΅Π»ΡΡΠ° ΠΏΠΎΡΡΡΠΎΠ»ΠΈΠΎ β Π·Π΄Π΅ΡΡ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ°Π·ΠΌΠ΅ΡΡΠΈΡΡ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΡΠ΅ ΡΠ²Π΅Π΄Π΅Π½ΠΈΡ ΠΎΠ± ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠΈ, ΠΎΠΏΡΡΠ΅ ΡΠ°Π±ΠΎΡΠ΅ ΠΈ ΡΡΠΎΠ²Π½Π΅ ΠΏΡΠΎΡΠ΅ΡΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΡ Π½Π°Π²ΡΠΊΠΎΠ²:
Π ΡΠ°Π·Π΄Π΅Π»Π΅ Β«ΠΠΎΠ½ΡΠ°ΠΊΡΡΒ» ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½Ρ Π²ΡΠ΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΠ΅ ΡΠΏΠΎΡΠΎΠ±Ρ ΡΠ²ΡΠ·ΠΈ Ρ Π²Π»Π°Π΄Π΅Π»ΡΡΠ΅ΠΌ ΠΏΠΎΡΡΡΠΎΠ»ΠΈΠΎ, Π½ΠΎ ΡΠ°ΠΌΠΎΠ΅ Π³Π»Π°Π²Π½ΠΎΠ΅ β ΡΠ°ΠΌ Π΅ΡΠ΅ Π΅ΡΡΡ ΡΠΎΡΠΌΠ° Π΄Π»Ρ ΠΎΡΠΏΡΠ°Π²ΠΊΠΈ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ:
ΠΠΎΠ΄ΡΠΎΠ±Π½Π°Ρ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΏΡΠΎΠ΅ΠΊΡΠ° Π²ΡΠ²ΠΎΠ΄ΠΈΡΡΡ Π½Π° ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎΠΉ ΡΡΡΠ°Π½ΠΈΡΠ΅. ΠΠ΄Π΅ΡΡ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΏΠΈΡΠ°ΡΡ ΠΎ Ρ ΠΎΠ΄Π΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ, ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΡΡ ΠΏΡΠΎΠ΅ΠΊΡΠ° ΠΈ Π΅Π³ΠΎ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΎΠΌ ΡΡΠ΅ΠΊΠ΅:
Π ΡΠ΅ΠΏΠ΅ΡΡ ΡΠ°ΡΡΠΊΠ°ΠΆΠ΅ΠΌ, ΠΊΠ°ΠΊ ΡΡΠΎ Π²ΡΠ΅ ΡΠ΄Π΅Π»Π°ΡΡ.
π ΠΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° ΠΏΠΈΡΠΎΠ½ΠΈΡΡΠ°
ΠΠΎΠ»ΡΡΠ΅ ΠΏΠΎΠ»Π΅Π·Π½ΡΡ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π»ΠΎΠ² Π²Ρ Π½Π°ΠΉΠ΄Π΅ΡΠ΅ Π½Π° Π½Π°ΡΠ΅ΠΌ ΡΠ΅Π»Π΅Π³ΡΠ°ΠΌ-ΠΊΠ°Π½Π°Π»Π΅ Β«ΠΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° ΠΏΠΈΡΠΎΠ½ΠΈΡΡΠ°Β»
ππ ΠΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° ΡΠΎΠ±Π΅ΡΠ° ΠΏΠΎ Python
ΠΠΎΠ΄ΡΡΠ½ΡΡΡ ΡΠ²ΠΎΠΈ Π·Π½Π°Π½ΠΈΡ ΠΏΠΎ Python Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π½Π° Π½Π°ΡΠ΅ΠΌ ΡΠ΅Π»Π΅Π³ΡΠ°ΠΌ-ΠΊΠ°Π½Π°Π»Π΅Β«ΠΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° ΡΠΎΠ±Π΅ΡΠ° ΠΏΠΎ PythonΒ»
π§©π ΠΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° Π·Π°Π΄Π°Ρ ΠΏΠΎ PythonΒ»
ΠΠ½ΡΠ΅ΡΠ΅ΡΠ½ΡΠ΅ Π·Π°Π΄Π°ΡΠΈ ΠΏΠΎ Python Π΄Π»Ρ ΠΏΡΠ°ΠΊΡΠΈΠΊΠΈ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡΠΈ Π½Π° Π½Π°ΡΠ΅ΠΌ ΡΠ΅Π»Π΅Π³ΡΠ°ΠΌ-ΠΊΠ°Π½Π°Π»Π΅Β«ΠΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° Π·Π°Π΄Π°Ρ ΠΏΠΎ PythonΒ»
Π₯ΠΎΠ΄ ΡΠ°Π±ΠΎΡΡ
ΠΠ΅ΡΡ ΠΊΠΎΠ΄ Π΅ΡΡΡ Π² ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΈ: ΠΏΡΠΎΡΡΠΎ ΡΠΊΠΎΠΏΠΈΡΡΠΉΡΠ΅, Π΅ΡΠ»ΠΈ ΡΡΠΎ-ΡΠΎ Π½Π΅ ΠΏΠΎΠ»ΡΡΠ°Π΅ΡΡΡ.
Π£ΡΡΠ°Π½ΠΎΠ²ΠΊΠ° Django, Pillow ΠΈ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ ΠΏΡΠΎΠ΅ΠΊΡΠ°
ΠΠ»Ρ Ρ ΡΠ°Π½Π΅Π½ΠΈΡ ΡΡΡΠ»ΠΎΠΊ Π½Π° ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ (ΠΈ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΉ Π·Π°Π³ΡΡΠ·ΠΊΠΈ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ Π² ΠΏΠ°ΠΏΠΊΡ media) Π½ΡΠΆΠ½Π° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° Pillow β ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΠ΅ Π΅Π΅ ΡΡΠ°Π·Ρ ΠΏΠΎΡΠ»Π΅ Django:
ΠΠΎΠ±Π°Π²ΡΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ portfolio Π² INSTALLED_APPS Π² config/settings.py:
Π’Π°ΠΊΠΆΠ΅ Π΄ΠΎΠ±Π°Π²ΡΡΠ΅ Π² config/settings.py Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ Π΄Π»Ρ Π²ΡΠ²ΠΎΠ΄Π° ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ:
Π ΠΏΡΡΠΈ ΠΊ ΠΏΠ°ΠΏΠΊΠ°ΠΌ static ΠΈ media:
ΠΠ»Ρ ΡΠ΄ΠΎΠ±ΡΡΠ²Π° Π΅ΡΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ ΡΠ·ΡΠΊ Π°Π΄ΠΌΠΈΠ½ΠΊΠΈ Π½Π° ΡΡΡΡΠΊΠΈΠΉ, Π° Π²ΡΠ΅ΠΌΡ β Π½Π° ΠΌΠΎΡΠΊΠΎΠ²ΡΠΊΠΎΠ΅:
Π§ΡΠΎΠ±Ρ Django ΠΌΠΎΠ³ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ ΠΏΠ°ΠΏΠΊΠ°ΠΌΠΈ static ΠΈ media, Π½ΡΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΡΡΠΈ ΠΏΡΡΠΈ Π² ΡΠ°ΠΉΠ» config/urls.py:
Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ ΠΈ Π°ΠΊΠΊΠ°ΡΠ½ΡΠ° Π°Π΄ΠΌΠΈΠ½Π°
ΠΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΡΠΉΡΠ΅ Π±Π°Π·Ρ ΠΈ ΡΠΎΠ·Π΄Π°ΠΉΡΠ΅ Π°ΠΊΠΊΠ°ΡΠ½Ρ ΡΡΠΏΠ΅ΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ:
Π’Π΅ΠΏΠ΅ΡΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΈΡΡΡΠΏΠΈΡΡ ΠΊ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π½ΡΠΆΠ½ΡΡ ΡΠ°Π±Π»ΠΈΡ Π² ΠΠ. Π‘ΠΎΡ ΡΠ°Π½ΠΈΡΠ΅ ΡΡΠΈ ΠΌΠΎΠ΄Π΅Π»ΠΈ Π² ΡΠ°ΠΉΠ»Π΅ portfolio/models.py:
Π Π·Π°ΡΠ΅ΠΌ ΠΏΠΎΠ΄Π³ΠΎΡΠΎΠ²ΡΡΠ΅ ΠΈ ΠΏΡΠΈΠΌΠ΅Π½ΠΈΡΠ΅ ΠΌΠΈΠ³ΡΠ°ΡΠΈΠΈ (ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π² ΡΡΡΡΠΊΡΡΡΠ΅ ΠΠ):
Π§ΡΠΎΠ±Ρ Ρ ΠΠ ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΠ»ΠΎ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π² Π°Π΄ΠΌΠΈΠ½ΠΊΠ΅, ΠΌΠΎΠ΄Π΅Π»ΠΈ Π½ΡΠΆΠ½ΠΎ Π·Π°ΡΠ΅Π³ΠΈΡΡΡΠΈΡΠΎΠ²Π°ΡΡ Π² ΡΠ°ΠΉΠ»Π΅ portfolio/admin.py:
Π Π°Π·Π±Π΅ΡΠ΅ΠΌΡΡ, ΡΡΠΎ ΠΈ ΠΊΠ°ΠΊ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡ ΡΡΠΈ ΠΌΠΎΠ΄Π΅Π»ΠΈ.
Skill β Π½Π°Π²ΡΠΊΠΈ. ΠΠ°Π·Π²Π°Π½ΠΈΠ΅ ΠΈ ΡΡΠΎΠ²Π΅Π½Ρ Π½Π°Π²ΡΠΊΠ° ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ ΡΠ΅Π½Π΄Π΅ΡΠΈΡΡ Π½Π° ΡΡΠΎΠ½ΡΠ΅Π½Π΄Π΅ ΡΡΠΈ Π΄Π°Π½Π½ΡΠ΅:
ΠΠ°Π½Π½ΡΠ΅ ΠΈΠ· Category ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ ΡΠΊΠ°Π·Π°Π½ΠΈΡ ΠΊΠ°ΡΠ΅Π³ΠΎΡΠΈΠΈ, ΠΊ ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΏΡΠΈΠ½Π°Π΄Π»Π΅ΠΆΠΈΡ ΠΏΡΠΎΠ΅ΠΊΡ, Π½ΠΎ ΠΈ Π΄Π»Ρ ΡΠΈΠ»ΡΡΡΠ°ΡΠΈΠΈ ΡΠ°Π±ΠΎΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΏΠ»Π°Π³ΠΈΠ½Π° Isotope.js:
Work, ΠΊΠ°ΠΊ ΠΈ ΠΌΠΎΠ΄Π΅Π»ΠΈ Author ΠΈ Testimony, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ImageField Π΄Π»Ρ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΉ Π·Π°Π³ΡΡΠ·ΠΊΠΈ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ Π² ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠ΅ ΠΏΠΎΠ΄Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΠΈ media, Π° ΡΠ°ΠΊΠΆΠ΅ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΈ Ρ ΡΠ°Π½Π΅Π½ΠΈΡ ΡΡΡΠ»ΠΎΠΊ Π½Π° ΡΡΠΈ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ. Π Π°Π±ΠΎΡΡ ImageField ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅Ρ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° Pillow:
ΠΠ»Ρ Ρ ΡΠ°Π½Π΅Π½ΠΈΡ ΡΡΡΠ»ΠΎΠΊ Π½Π° Π³ΠΎΡΠΎΠ²ΡΠ΅ ΡΠ°ΠΉΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΏΠΎΠ»Π΅ URLField.
Π ΠΌΠΎΠ΄Π΅Π»ΠΈ Service Ρ ΡΠ°Π½ΡΡΡΡ Π²ΠΈΠ΄Ρ ΡΡΠ»ΡΠ³. ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ Π² ΠΎΡΠΎΡΠΌΠ»Π΅Π½ΠΈΠΈ ΠΏΠΎΡΡΡΠΎΠ»ΠΈΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ ΠΈΠΊΠΎΠ½ΠΊΠΈ BoxIcons, Π² ΠΏΠΎΠ»Π΅ icon Π½ΡΠΆΠ½ΠΎ ΡΠΎΡ ΡΠ°Π½ΡΡΡ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ Π½ΡΠΆΠ½ΠΎΠΉ ΠΈΠΊΠΎΠ½ΠΊΠΈ Π² ΡΡΠΎΠΌ Π½Π°Π±ΠΎΡΠ΅, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, bx bx-laptop. ΠΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ Π΄ΡΡΠ³ΠΎΠ³ΠΎ Π½Π°Π±ΠΎΡΠ°, ΡΠΊΠ°ΠΆΠ΅ΠΌ, Font Awesome, Π½ΡΠΆΠ½ΠΎ Π²Π²ΠΎΠ΄ΠΈΡΡ Π½Π°Π·Π²Π°Π½ΠΈΡ ΠΈΠΊΠΎΠ½ΠΎΠΊ Π² ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠ΅ΠΌ ΡΡΠΎΠΌΡ Π½Π°Π±ΠΎΡΡ ΡΠΎΡΠΌΠ°ΡΠ΅.
Item β Π²ΠΈΠ΄ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ°, ΠΎΡΠ½ΠΎΡΡΡΠ΅Π³ΠΎΡΡ ΠΊ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠΌΡ Π²ΠΈΠ΄Ρ ΡΡΠ»ΡΠ³. Π‘ ΠΏΠΎΠΌΠΎΡΡΡ Π΄Π°Π½Π½ΡΡ ΠΈΠ· Item ΡΡΠ΅ΠΊ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠ² ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΅Π½Π΄Π΅ΡΠΈΡΡ Π² Π²ΠΈΠ΄Π΅ ΡΠΏΠΈΡΠΊΠ° Ρ ΠΈΠΊΠΎΠ½ΠΊΠ°ΠΌΠΈ:
ΠΡΡΠ³ΠΎΠΉ ΡΠΏΠΎΡΠΎΠ± ΠΎΡΡΠ΅Π½Π΄Π΅ΡΠΈΡΡ ΡΠΏΠΈΡΠΎΠΊ Π² Π½ΡΠΆΠ½ΠΎΠΌ ΡΡΠΈΠ»Π΅ β ΡΠΎΡ ΡΠ°Π½ΠΈΡΡ ΡΠΏΠΈΡΠΎΠΊ Ρ HTML-ΡΠ΅Π³Π°ΠΌΠΈ ΠΈ Bootstrap ΡΡΠΈΠ»ΡΠΌΠΈ Π² Π±Π°Π·Π΅, ΠΈ Π²ΡΠ²Π΅ΡΡΠΈ Π΅Π³ΠΎ Π² ΡΠ°Π±Π»ΠΎΠ½Π΅ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠ΅Π³Π° |safe:
Message ΡΠΎΡ ΡΠ°Π½ΡΠ΅Ρ ΠΈ ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ (Π² Π°Π΄ΠΌΠΈΠ½ΠΊΠ΅) Π²ΡΠ΅ ΠΏΠΎΠ»ΡΡΠ΅Π½Π½ΡΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ. Π§ΡΠΎΠ±Ρ ΠΏΠΎΠ»ΡΡΠ°ΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ Π½Π° ΠΏΠΎΡΡΡ, Π½ΡΠΆΠ½ΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠΈΡΡ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠΉ (ΡΠ»ΠΎΠΆΠ½Π΅Π΅) ΠΈΠ»ΠΈ ΡΡΠΎΡΠΎΠ½Π½ΠΈΠΉ (Π³ΠΎΡΠ°Π·Π΄ΠΎ ΠΏΡΠΎΡΠ΅) SMTP-ΡΠ΅ΡΠ²Π΅Ρ. ΠΠ΄Π΅ΡΡ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ, ΠΊΠ°ΠΊ ΠΏΠΎΠ»ΡΡΠ°ΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ SMTP Π―Π½Π΄Π΅ΠΊΡΠ°.
ΠΡΠ·ΡΠ²Ρ Π·Π°ΠΊΠ°Π·ΡΠΈΠΊΠΎΠ² ΡΠΎΡ ΡΠ°Π½ΡΡΡΡΡ Π² ΡΠ°Π±Π»ΠΈΡΠ΅ Testimony, Π° Π΄Π°Π½Π½ΡΠ΅ ΠΎ Π²Π»Π°Π΄Π΅Π»ΡΡΠ΅ ΠΏΠΎΡΡΡΠΎΠ»ΠΈΠΎ β Π² Author.
Π‘ΡΠ°ΡΡΡ ΠΏΠΎ ΡΠ΅ΠΌΠ΅
ππ Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ ΡΠ΅ΠΊΡΡΡΠΈΠ½Π³ΠΎΠ²ΡΠΉ ΠΏΠΎΡΡΠ°Π» Π½Π° Django: ΡΠ°ΡΡΡ 1
ΠΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΈ ΠΌΠ°ΡΡΡΡΡΡ
ΠΡΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΡ Π² ΡΡΠΎΠΌ ΠΏΡΠΎΠ΅ΠΊΡΠ΅ β ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΠ΅. ΠΠ°ΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠΉ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΠΊΠ»Π°ΡΡΠΎΠ² ΠΌΡ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ Π² ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· ΠΏΠΎΡΠ»Π΅Π΄ΡΡΡΠΈΡ ΡΡΠ°ΡΠ΅ΠΉ. ΠΡΠΈ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΡ Π½ΡΠΆΠ½ΠΎ ΡΠΎΡ ΡΠ°Π½ΠΈΡΡ Π² ΡΠ°ΠΉΠ»Π΅ portfolio/views.py:
ΠΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ index ΠΏΠ΅ΡΠ΅Π΄Π°Π΅Ρ Π² ΡΠ°Π±Π»ΠΎΠ½ index.html Π²ΡΠ΅ Π·Π°ΠΏΠΈΡΠΈ, ΡΠΎΡ ΡΠ°Π½Π΅Π½Π½ΡΠ΅ Π² ΡΠ°Π±Π»ΠΈΡΠ°Ρ Work, Category, Service ΠΈ Testimony, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ Π½Π° Π³Π»Π°Π²Π½ΠΎΠΉ ΡΡΡΠ°Π½ΠΈΡΠ΅ Π²ΡΠ²ΠΎΠ΄ΡΡΡΡ Π²ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅, Π±Π΅Π· ΡΠΎΠΊΡΠ°ΡΠ΅Π½ΠΈΠΉ. ΠΡΠ»ΠΈ ΠΏΠΎΡΡΡΠΎΠ»ΠΈΠΎ ΠΎΠ±ΡΠ΅ΠΌΠ½ΠΎΠ΅, ΠΈΠΌΠ΅Π΅Ρ ΡΠΌΡΡΠ» ΠΎΠ³ΡΠ°Π½ΠΈΡΠΈΡΡ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΠ°Π±ΠΎΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΠ΅Π·Π° works = Work.objects.all()[:3], Π° Π²ΡΠ΅ ΡΠ°Π±ΠΎΡΡ Π²ΡΠ²Π΅ΡΡΠΈ Π½Π° ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎΠΉ ΡΡΡΠ°Π½ΠΈΡΠ΅ Ρ ΠΏΠ°Π³ΠΈΠ½Π°ΡΠΈΠ΅ΠΉ. Π ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌ ΠΏΡΠΎΠ΅ΠΊΡΠ΅, ΠΏΠΎΡΠ²ΡΡΠ΅Π½Π½ΠΎΠΌ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ΅ Π±Π»ΠΎΠ³Π°, ΠΌΡ ΡΠ°Π·Π±Π΅ΡΠ΅ΠΌ ΠΏΡΠΎΡΠ΅ΡΡ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΏΠ°Π³ΠΈΠ½Π°ΡΠΈΠΈ.
Π ΡΠ°Π±Π»ΠΈΡΠ΅ Author Ρ ΡΠ°Π½ΠΈΡΡΡ Π²ΡΠ΅Π³ΠΎ ΠΎΠ΄Π½Π° Π·Π°ΠΏΠΈΡΡ, ΠΏΠΎΡΡΠΎΠΌΡ Π΄Π»Ρ Π΅Π΅ ΠΈΠ·Π²Π»Π΅ΡΠ΅Π½ΠΈΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π·Π°ΠΏΡΠΎΡ author = Author.objects.get(). Π ΡΠ»ΡΡΠ°Π΅ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π½Π΅ΠΊΠΎΠΉ ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ Π΄Π»Ρ ΡΠ°Π·ΠΌΠ΅ΡΠ΅Π½ΠΈΡ ΠΏΠΎΡΡΡΠΎΠ»ΠΈΠΎ, Π³Π΄Π΅ Π°Π²ΡΠΎΡΠΎΠ² ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ, Π² ΡΡΡ ΡΡΠ½ΠΊΡΠΈΡ Π½ΡΠΆΠ½ΠΎ ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°ΡΡ id ΠΈΠ»ΠΈ username ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠ³ΠΎ Π²Π»Π°Π΄Π΅Π»ΡΡΠ°.
ΠΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ work_detail Π²ΡΠ²ΠΎΠ΄ΠΈΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΠΏΡΠΎΠ΅ΠΊΡΠ΅ Π² ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎΡΡΠΈ, ΠΏΡΠΈΡΠ΅ΠΌ Π΄Π»Ρ ΠΈΠ·Π²Π»Π΅ΡΠ΅Π½ΠΈΡ Π΄Π°Π½Π½ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π½Π΅ id ΡΠ°Π±ΠΎΡΡ, Π° ΡΠ»Π°Π³:
ΠΠ»Π°Π³ΠΎΠ΄Π°ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΡΠ»Π°Π³Π°, ΡΡΡΠ»ΠΊΠ° Π²ΡΠ³Π»ΡΠ΄ΠΈΡ ΠΊΠ°ΠΊ http://site.com/work/design-studio/, Π° ΠΏΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ id ΠΎΠ½Π° Π±Ρ Π²ΡΠ³Π»ΡΠ΄Π΅Π»Π° ΠΊΠ°ΠΊ http://site.com/work/5/.
ΠΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ contact ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΡ Π΄Π°Π½Π½ΡΡ ΠΈΠ· ΠΊΠΎΠ½ΡΠ°ΠΊΡΠ½ΠΎΠΉ ΡΠΎΡΠΌΡ. Π ΠΏΡΠΎΠ΅ΠΊΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΎΠ±ΡΡΠ½Π°Ρ HTML-ΡΠΎΡΠΌΠ°, ΠΊΠΎΡΠΎΡΠ°Ρ ΡΠ°ΠΌΠΎΡΡΠΎΡΡΠ΅Π»ΡΠ½ΠΎ ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°Π΅Ρ Π·Π°ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΏΠΎΠ»Π΅ΠΉ ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ ΡΠ΅Π³Π° required. Π Django Π΅ΡΡΡ ΠΎΡΠ»ΠΈΡΠ½ΡΠΉ ΠΌΠΎΠ΄ΡΠ»Ρ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ ΡΠΎΡΠΌΠ°ΠΌΠΈ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ Π²ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΡ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΡ Π΄Π»Ρ Π²Π°Π»ΠΈΠ΄Π°ΡΠΈΠΈ Π΄Π°Π½Π½ΡΡ (ΠΎΠ΄Π½Π°ΠΊΠΎ ΠΎΡΠΎΡΠΌΠ»Π΅Π½ΠΈΠ΅ ΡΠΎΡΠΌΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΡ Π²ΡΠ΅ ΡΠ°Π²Π½ΠΎ ΠΏΡΠΈΠ΄Π΅ΡΡΡ Π΄Π΅Π»Π°ΡΡ ΡΠ°ΠΌΠΎΡΡΠΎΡΡΠ΅Π»ΡΠ½ΠΎ). Π ΠΎΠ΄Π½ΠΎΠΌ ΠΈΠ· ΠΏΠΎΡΠ»Π΅Π΄ΡΡΡΠΈΡ ΠΏΡΠΎΠ΅ΠΊΡΠΎΠ² ΠΌΡ ΡΠ°Π·Π±Π΅ΡΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Django-ΡΠΎΡΠΌ ΠΈ Π²ΡΠ΅ ΡΠΏΠΎΡΠΎΠ±Ρ ΠΏΡΠΈΠ΄Π°Π½ΠΈΡ ΠΈΠΌ ΠΏΡΠΈΠ²Π»Π΅ΠΊΠ°ΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ Π²Π½Π΅ΡΠ½Π΅Π³ΠΎ Π²ΠΈΠ΄Π°.
Π§ΡΠΎΠ±Ρ Django ΠΌΠΎΠ³ ΠΎΠ±ΡΠ°Π±ΠΎΡΠ°ΡΡ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΡ ΡΠΎΡΠΌΡ (Π² ΡΠ»ΡΡΠ°Π΅, Π΅ΡΠ»ΠΈ ΠΈΡ Π½Π° ΡΡΡΠ°Π½ΠΈΡΠ΅ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ), Π½ΡΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΡΡΡΠ»ΠΊΡ Π½Π° Π½ΡΠΆΠ½ΠΎΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π² form action:
ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, Django ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ Π½ΡΠΆΠ΅Π½ ΡΠΎΠΊΠ΅Π½ Π²Π½ΡΡΡΠΈ ΡΠΎΡΠΌΡ:
ΠΡΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΏΡΠΈΠ²ΠΎΠ΄ΡΡΡΡ Π² Π΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ ΠΌΠ°ΡΡΡΡΡΠ°ΠΌΠΈ. Π‘ΠΎΡ ΡΠ°Π½ΠΈΡΠ΅ ΡΡΠΈ ΠΌΠ°ΡΡΡΡΡΡ Π² portfolio/urls.py:
Π Π½Π΅ Π·Π°Π±ΡΠ΄ΡΡΠ΅ Π²ΠΊΠ»ΡΡΠΈΡΡ ΠΌΠ°ΡΡΡΡΡΡ portfolio Π² config/urls.py:
Π¨Π°Π±Π»ΠΎΠ½Ρ
ΠΠ»Ρ Π²ΡΠ²ΠΎΠ΄Π° Π΄Π°Π½Π½ΡΡ Π½Π° ΡΡΠΎΠ½ΡΠ΅Π½Π΄Π΅ ΠΏΠΎΡΡΡΠΎΠ»ΠΈΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ°Π±Π»ΠΎΠ½ΠΎΠ²:
- base.html β ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΉ ΡΠ°Π±Π»ΠΎΠ½ ΠΏΡΠΎΠ΅ΠΊΡΠ°. ΠΠ΄Π΅ΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Ρ Π½Π°Π²ΠΈΠ³Π°ΡΠΈΡ ΠΈ ΡΡΡΠ΅Ρ (ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΎΠ½ΠΈ Π²ΡΠ³Π»ΡΠ΄ΡΡ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΠΎ Π½Π° Π²ΡΠ΅Ρ ΡΡΡΠ°Π½ΠΈΡΠ°Ρ ΡΠ°ΠΉΡΠ°), Π° ΡΠ°ΠΊΠΆΠ΅ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½Ρ Π²ΡΠ΅ Π½ΡΠΆΠ½ΡΠ΅ ΡΠΊΡΠΈΠΏΡΡ Π½Π° JavaScript, HTML/CSS-ΡΡΠΈΠ»ΠΈ Bootstrap, ΡΡΠΈΡΡ Google, favicon ΠΈ Ρ. Π΄.
- index.html β ΠΊΠ°ΠΊ ΠΈ Π²ΡΠ΅ ΠΏΠΎΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΡΠ°Π±Π»ΠΎΠ½Ρ, Π½Π°ΡΠ»Π΅Π΄ΡΠ΅Ρ Π²ΡΠ΅ ΡΡΠΈΠ»ΠΈ base.html Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠ΅Π³Π° {% extends 'base.html' %}. ΠΡΠ²ΠΎΠ΄ΠΈΡ Π΄Π°Π½Π½ΡΠ΅ ΠΎΠ±ΠΎ Π²ΡΠ΅Ρ ΠΏΡΠΎΠ΅ΠΊΡΠ°Ρ , ΡΡΠ»ΡΠ³Π°Ρ , ΠΊΠ°ΡΠ΅Π³ΠΎΡΠΈΡΡ ΠΈ ΠΎΡΠ·ΡΠ²Π°Ρ .
- work_detail.html β ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎΡΡΠΈ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠ°.
- about.html β ΡΠ΅Π·ΡΠΌΠ΅ Π²Π»Π°Π΄Π΅Π»ΡΡΠ°.
- contact.html β Π²ΡΠ΅ ΠΊΠΎΠ½ΡΠ°ΠΊΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ° ΠΈ ΡΠΎΡΠΌΠ° Π΄Π»Ρ ΠΎΡΠΏΡΠ°Π²ΠΊΠΈ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ.
ΠΠΎΠ΄Π²Π΅Π΄Π΅ΠΌ ΠΈΡΠΎΠ³ΠΈ
ΠΡΠΈ ΠΆΠ΅Π»Π°Π½ΠΈΠΈ Π³ΠΎΡΠΎΠ²ΠΎΠ΅ ΠΏΠΎΡΡΡΠΎΠ»ΠΈΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΊΡΠΏΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ Π² ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ HTML/CSS/JS-ΡΠ°ΠΉΠ»Ρ Ρ ΠΏΠΎΠΌΠΎΡΡΡ django-distill, Π° Π΄Π»Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΊΠΎΠ½ΡΠ°ΠΊΡΠ½ΠΎΠΉ ΡΠΎΡΠΌΡ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠΈΡΡ ΡΠ΅ΡΠ²ΠΈΡ Π²ΡΠΎΠ΄Π΅ Formspree. Π ΡΠ°ΠΊΠΎΠΌ Π²ΠΈΠ΄Π΅ ΠΏΠΎΡΡΡΠΎΠ»ΠΈΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΠ΄Π΅Ρ ΡΠ°Π·ΠΌΠ΅ΡΡΠΈΡΡ Π½Π° GitHub Pages. Π ΠΎΠ΄Π½ΠΎΠΌ ΠΈΠ· ΠΏΠΎΡΠ»Π΅Π΄ΡΡΡΠΈΡ ΠΏΡΠΎΠ΅ΠΊΡΠΎΠ² ΠΌΡ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ ΠΏΡΠΎΡΠ΅ΡΡ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΡ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ Django-ΡΠ°ΠΉΡΠ° Π² ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ.
***
Π‘ΠΎΠ΄Π΅ΡΠΆΠ°Π½ΠΈΠ΅ ΠΊΡΡΡΠ°
- ΠΡΠΎΠ΅ΠΊΡ 2: ΠΠΎΡΡΡΠΎΠ»ΠΈΠΎ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°