Π€ΠΎΡΠΌΠ° ΠΎΠ±ΡΠ°ΡΠ½ΠΎΠ³ΠΎ Π·Π²ΠΎΠ½ΠΊΠ° Π΄Π»Ρ ΡΠ°ΠΉΡΠ° ΡΠ²ΠΎΠΈΠΌΠΈ ΡΡΠΊΠ°ΠΌΠΈ
Π€ΠΎΡΠΌΠ° ΠΎΠ±ΡΠ°ΡΠ½ΠΎΠ³ΠΎ Π·Π²ΠΎΠ½ΠΊΠ° Π΄Π»Ρ ΡΠ°ΠΉΡΠ°
ΠΡΠ»ΠΈ Ρ Π²Π°Ρ Π΅ΡΡΡ ΡΠ²ΠΎΠΉ ΡΠ°ΠΉΡ ΠΈΠ»ΠΈ ΠΈΠ½ΡΠ΅ΡΠ½Π΅Ρ ΠΌΠ°Π³Π°Π·ΠΈΠ½, ΡΠΎ Π²Ρ Π½Π°Π²Π΅ΡΠ½ΡΠΊΠ° Ρ ΠΎΡΠ΅Π»ΠΈ Π±Ρ Π²ΡΡΡΠΎΠΈΡΡ Π² Π½Π΅Π³ΠΎ ΡΡΠ½ΠΊΡΠΈΡ ΠΎΠ±ΡΠ°ΡΠ½ΠΎΠ³ΠΎ Π·Π²ΠΎΠ½ΠΊΠ° Π½Π° ΡΠ²ΠΎΠ΅ΠΌ ΡΠ°ΠΉΡΠ΅, ΠΏΠΎΡΠ»Π΅ ΠΎΠ±ΡΠ°ΡΠ΅Π½ΠΈΡ ΠΊ ΠΊΠΎΡΠΎΡΠΎΠΌΡ, Π²Ρ Π±Ρ ΠΏΠΎΠ»ΡΡΠΈΠ»ΠΈ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ Π½Π° ΡΠ²ΠΎΡ ΠΏΠΎΡΡΡ. Π Π΅ΡΠ»ΠΈ Π²Ρ Π΅ΡΠ΅ Π½Π΅ Π·Π½Π°Π΅ΡΠ΅, ΡΡΠΎ ΡΠ°ΠΊΠΎΠ΅ ΠΎΠ±ΡΠ°ΡΠ½ΡΠΉ Π·Π²ΠΎΠ½ΠΎΠΊ, ΠΌΡ Π²Π°ΠΌ ΡΠ°ΡΡΠΊΠ°ΠΆΠ΅ΠΌ ΠΈ Π²Ρ ΡΠ±Π΅Π΄ΠΈΡΠ΅ΡΡ Π² Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ ΠΊΠ½ΠΎΠΏΠΊΠΈ ΠΎΠ±ΡΠ°ΡΠ½ΠΎΠ³ΠΎ Π²ΡΠ·ΠΎΠ²Π° Π΄Π»Ρ Π²Π°ΡΠ΅Π³ΠΎ ΡΠ°ΠΉΡΠ°.
Π‘ΠΎΠ΄Π΅ΡΠΆΠ°Π½ΠΈΠ΅:- PHP + AJAX β ΠΠ΅ΡΠΏΠ»Π°ΡΠ½ΡΠΉ ΠΈ Π³ΠΈΠ±ΠΊΠΈΠΉ ΡΠΊΡΠΈΠΏΡ Π΄Π»Ρ ΡΠΎΡΠΌΡ ΠΎΠ±ΡΠ°ΡΠ½ΠΎΠ³ΠΎ Π·Π²ΠΎΠ½ΠΊΠ°
- Π‘Π΅ΡΠ²ΠΈΡ RedConnect
ΠΠ½ΠΎΠΏΠΊΠ° Π°ΠΊΡΠΈΠ²ΠΈΡΡΠ΅ΡΡΡ ΠΏΠΎΠ»Π΅ Π²Π²ΠΎΠ΄Π°, Π² ΠΊΠΎΡΠΎΡΡΠΌ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π²Π²ΠΎΠ΄ΠΈΡ ΡΠ²ΠΎΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ Π² ΡΠΎΡΠΌΡ ΠΎΠ±ΡΠ°ΡΠ½ΠΎΠ³ΠΎ Π·Π²ΠΎΠ½ΠΊΠ° Π΄Π»Ρ ΠΎΡΠΏΡΠ°Π²ΠΊΠΈ Π²Π°ΠΌ, ΠΎΠ±ΡΡΠ½ΠΎ ΡΠ΅Π»Π΅ΡΠΎΠ½ ΠΈ Π€ΠΠ. ΠΡΠΎ Π½ΡΠΆΠ½ΠΎ, ΡΡΠΎΠ±Ρ Π²Ρ ΠΌΠΎΠ³Π»ΠΈ ΠΏΠ΅ΡΠ΅Π·Π²ΠΎΠ½ΠΈΡΡ Π΅ΠΌΡ ΠΈ ΡΠ΅ΡΠΈΡΡ Π²ΠΎΠ·Π½ΠΈΠΊΡΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ ΠΈΠ»ΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΠ°ΡΡ Π΅Π³ΠΎ Π·Π°ΠΊΠ°Π·. Π‘ΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΎ Π·Π°ΡΠ²ΠΊΠ΅ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈΠΉΡΠΈ Π²Π°ΠΌ Π½Π° ΡΠ»Π΅ΠΊΡΡΠΎΠ½Π½ΡΡ ΠΏΠΎΡΡΡ ΠΈΠ»ΠΈ Π½Π° ΡΠ΅Π»Π΅ΡΠΎΠ½ (Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ ΠΏΡΠΈΠ΄Π΅ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΠΎΡΠΎΠ½Π½ΠΈΠ΅ ΡΠ΅ΡΠ²ΠΈΡΡ).
Π‘ΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ Π±ΠΎΠ»ΡΡΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΠ΅ΡΠ²ΠΈΡΠΎΠ², ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΡΡΠΈΡ
ΡΡΠ»ΡΠ³ΠΈ ΠΏΠΎ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΈ ΡΠΎΡΠΌ ΠΎΠ±ΡΠ°ΡΠ½ΠΎΠ³ΠΎ Π·Π²ΠΎΠ½ΠΊΠ°, Π½ΠΎ Π΅ΡΠ΅ Π±ΠΎΠ»ΡΡΠ΅ Π½Π° ΠΏΡΠΎΡΡΠΎΡΠ°Ρ
ΠΈΠ½ΡΠ΅ΡΠ½Π΅ΡΠ° ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡΠΈ Π°Π±ΡΠΎΠ»ΡΡΠ½ΠΎ Π±Π΅ΡΠΏΠ»Π°ΡΠ½ΡΡ
ΡΠΊΡΠΈΠΏΡΠΎΠ².
ΠΠ±ΡΡΠ½ΠΎ ΡΠ΅ΡΠ²ΠΈΡΡ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΡΡ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ Π³ΠΎΡΠΎΠ²ΡΠ΅ ΡΠ°ΠΉΠ»Ρ ΠΈΠ»ΠΈ Π²ΠΈΠ΄ΠΆΠ΅ΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ΅Π³ΡΠ»ΡΡΠ½ΠΎ ΠΎΠ±Π½ΠΎΠ²Π»ΡΡΡΡΡ ΠΈ ΡΠ»ΡΡΡΠ°ΡΡΡΡ, ΡΠ°ΠΊ ΠΆΠ΅ Π²Ρ ΠΏΠΎΠ»ΡΡΠΈΡΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΡΠ΄ΠΎΠ±Π½ΠΎΠΉ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ ΡΠΎΡΠΌΡ ΠΈ ΠΏΠΎΠ»Π΅ΠΉ Π²Π²ΠΎΠ΄Π° ΠΏΠΎΠ΄ ΡΠ²ΠΎΠΈ Π½ΡΠΆΠ΄Ρ. Π Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²Π΅ ΡΠ»ΡΡΠ°Π΅Π² Π²Π°ΠΌ Π΄Π°Π΄ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΈΠ½ΡΠ΅Π³ΡΠΈΡΠΎΠ²Π°ΡΡ ΡΠ°Ρ, ΡΡΠΎΠ±Ρ ΠΎΠ±ΡΠ°ΡΡΡΡ Ρ ΠΊΠ»ΠΈΠ΅Π½ΡΠΎΠΌ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ. ΠΡΠ΅ ΠΎΠ΄Π½ΠΈΠΌ ΡΠ΅ΡΠ°ΡΡΠΈΠΌ ΠΌΠΎΠΌΠ΅Π½ΡΠΎΠΌ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΡΠ΅ΡΠ²ΠΈΡΠΎΠΌ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠΎΠ², ΡΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ Π²ΡΠ΅ ΠΎΠ±ΡΠ·Π°Π½Π½ΠΎΡΡΠΈ ΠΏΠΎ ΠΎΠ±ΡΠ΅Π½ΠΈΡ Ρ ΠΊΠ»ΠΈΠ΅Π½ΡΠΎΠΌ ΠΎΠ½ΠΈ Π±Π΅ΡΡΡ Π½Π° ΡΠ΅Π±Ρ, Π²Π°ΠΌ Π½Π΅ ΠΏΡΠΈΠ΄Π΅ΡΡΡ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ Π·Π°ΡΠ²ΠΊΠΈ. ΠΠΎΠΌΠΈΠΌΠΎ ΡΠ²ΠΎΠΈΡ ΠΎΡΠ½ΠΎΠ²Π½ΡΡ ΡΡΠ½ΠΊΡΠΈΠΉ ΠΎΠ½ΠΈ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΡΡ Π±ΠΎΠ»ΡΡΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠ΅ΠΉ, ΠΊΠΎΡΠΎΡΡΠ΅ Π±ΡΠ²Π°ΡΡ ΠΎΡΠ΅Π½Ρ ΠΏΠΎΠ»Π΅Π·Π½ΡΠΌΠΈ. ΠΠΎ ΡΠ°ΠΊΠΎΠ΅ ΡΠ΄ΠΎΠ²ΠΎΠ»ΡΡΡΠ²ΠΈΠ΅ ΡΡΠΎΠΈΡ Π΄Π΅Π½Π΅Π³.
ΠΡΠ»ΠΈ Π²Ρ ΡΠΎΠ»ΡΠΊΠΎ Π½Π°ΡΠΈΠ½Π°Π΅ΡΠ΅ ΡΠ°Π±ΠΎΡΡ ΠΈ Ρ
ΠΎΡΠΈΡΠ΅ ΠΏΠΎΡΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½ΡΠΈΡΠΎΠ²Π°ΡΡ Ρ ΡΠΎΡΠΌΠ°ΠΌΠΈ ΠΎΠ±ΡΠ°ΡΠ½ΠΎΠ³ΠΎ Π·Π²ΠΎΠ½ΠΊΠ°, ΡΠΎ Π²Π°ΠΌ ΡΠ΅Π»Π΅ΡΠΎΠΎΠ±ΡΠ°Π·Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π±Π΅ΡΠΏΠ»Π°ΡΠ½ΡΠΉ ΡΠΊΡΠΈΠΏΡ. ΠΠ΄Π΅ΡΡ Π²ΡΠ΅ Π½Π΅ ΡΠ°ΠΊ ΠΏΡΠΎΡΡΠΎ ΠΈ ΠΊΡΠ°ΡΠΎΡΠ½ΠΎ. ΠΠ±ΡΡΠ½ΠΎ ΡΠ°ΠΊΠΈΠ΅ ΡΠΊΡΠΈΠΏΡΡ ΠΈΠΌΠ΅ΡΡ Π½Π΅ ΠΏΠΎΠ»Π½ΡΠΉ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π» ΠΈ, ΡΡΠΎΠ±Ρ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ ΡΠ°ΠΊΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ, Π²Π°ΠΌ ΠΏΡΠΈΠ΄Π΅ΡΡΡ ΠΏΠΎΡΡΠ°ΡΠΈΡΡ Π½Π΅ΠΊΠΎΡΠΎΡΠΎΠ΅ Π²ΡΠ΅ΠΌΡ Π½Π° ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΡΠ°ΠΉΠ»ΠΎΠ² ΠΈ Π΄Π΅ΡΠ°Π»ΡΠ½ΡΡ Π½Π°ΡΡΡΠΎΠΉΠΊΡ Π΄Π»Ρ Π²Π°ΡΠ΅Π³ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠ°.
Π’Π΅ΠΏΠ΅ΡΡ ΠΏΠΎΠ³ΠΎΠ²ΠΎΡΠΈΠΌ ΠΎΠ± ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΡ ΡΠ΅ΡΠ²ΠΈΡΠ°Ρ ΠΈ Π²Π°ΡΠΈΠ°Π½ΡΠ°Ρ Π±Π΅ΡΠΏΠ»Π°ΡΠ½ΡΡ ΡΠΊΡΠΈΠΏΡΠΎΠ² Π΄Π»Ρ Π²Π°ΡΠ΅Π³ΠΎ ΡΠ°ΠΉΡΠ°.
ΠΊ ΠΎΠ³Π»Π°Π²Π»Π΅Π½ΠΈΡ βPHP + AJAX β ΠΠ΅ΡΠΏΠ»Π°ΡΠ½ΡΠΉ ΠΈ Π³ΠΈΠ±ΠΊΠΈΠΉ ΡΠΊΡΠΈΠΏΡ Π΄Π»Ρ ΡΠΎΡΠΌΡ ΠΎΠ±ΡΠ°ΡΠ½ΠΎΠ³ΠΎ Π·Π²ΠΎΠ½ΠΊΠ°
Π Π΄Π°Π½Π½ΠΎΠΉ ΡΡΠ°ΡΡΠ΅ ΠΏΡΠΈΠΊΠ»Π°Π΄ΡΠ²Π°ΡΡΡΡ ΡΠ°ΠΉΠ»Ρ Ρ ΡΠ°Π±ΠΎΡΠΈΠΌ ΡΠΊΡΠΈΠΏΡΠΎΠΌ ΠΎΠ±ΡΠ°ΡΠ½ΠΎΠ³ΠΎ Π·Π²ΠΎΠ½ΠΊΠ°. Π‘ΠΊΠ°ΡΠ°ΡΡ Π·Π΄Π΅ΡΡ!
ΠΡΠ»ΠΈ Π²Ρ ΡΠΎΠ²ΡΠ΅ΠΌ Π½Π΅ ΡΠ°Π·Π±ΠΈΡΠ°Π΅ΡΠ΅ΡΡ Π² ΠΏΡΠ΅ΠΌΡΠ΄ΡΠΎΡΡΡΡ Π²Π΅Π± ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ, ΡΠΎ Π½Π΅ Π±ΠΎΠΉΡΠ΅ΡΡ, Π² ΡΠ°ΠΉΠ»Π΅ index.html Π΅ΡΡΡ Π³ΠΎΡΠΎΠ²ΡΠ΅ ΠΈ ΡΠ΄ΠΎΠ±Π½ΡΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΡ. ΠΠ°Π½Π½ΡΠΉ ΡΠΊΡΠΈΠΏΡ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π²ΡΠ²ΠΎΠ΄ΠΈΡΡ ΠΌΠΎΠ΄Π°Π»ΡΠ½ΡΠ΅ ΠΎΠΊΠ½Π° (PopUP) β ΡΡΠΎ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΡΠΌ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ΠΌ Π΄Π»Ρ ΡΠΎΡΠΌ ΠΎΠ±ΡΠ°ΡΠ½ΠΎΠΉ ΡΠ²ΡΠ·ΠΈ β Π΅Π³ΠΎ ΠΌΡ ΠΈ Π±ΡΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ. ΠΡΠ»ΠΈ Π²Ρ ΡΠ°Π·Π±ΠΈΡΠ°Π΅ΡΠ΅ΡΡ Π² ΡΠ΅Π³ΡΠ»ΡΡΠ½ΡΡ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡΡ , js ΡΠΊΡΠΈΠΏΡΠ°Ρ , html, css ΠΈ php ΠΌΠ°ΡΡΠΈΠ²Π°Ρ , ΡΠΎ Π²Ρ ΡΠΌΠΎΠΆΠ΅ΡΠ΅ Π±Π΅Π· ΠΏΡΠΎΠ±Π»Π΅ΠΌ ΡΠΎΠ±ΡΠ°ΡΡ ΡΠΎΡΠΌΡ Π΄Π»Ρ ΠΎΡΠΏΡΠ°Π²ΠΊΠΈ Π·Π°ΡΠ²ΠΊΠΈ ΠΏΠΎΠ΄ ΡΠ΅Π±Ρ, Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ Π½Π°Ρ ΠΎΠ΄ΡΡΡΡ Π² ΡΠ°ΠΉΠ»Π΅ feedback\index.php.
ΠΡΠ°ΠΊ, ΠΎΡΠΊΡΡΠ²Π°Π΅ΠΌ index.html. Π ΡΠ΅Π³Π΅ head ΠΌΡ Π²ΠΈΠ΄ΠΈΠΌ Π²ΠΎΡ ΡΠ°ΠΊΠΈΠ΅ ΡΡΡΠΎΠΊΠΈ
ΠΡΡ ΡΡΠΎ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΏΡΠΈΡΡΡΡΡΠ²ΠΎΠ²Π°ΡΡ Π½Π° ΡΡΡΠ°Π½ΠΈΡΠ°Ρ Π²Π°ΡΠ΅Π³ΠΎ ΡΠ°ΠΉΡΠ°, Π²ΡΠ΅ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ°Π΅ΠΌΡΠ΅ ΡΠ°ΠΉΠ»Ρ Π΄ΠΎΠ»ΠΆΠ½Ρ ΡΠ°ΡΠΏΠΎΠ»Π°Π³Π°ΡΡΡΡ Π½Π° ΡΠ΅ΡΠ²Π΅ΡΠ΅ (ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ftp ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅)
Π index.
html ΠΌΠΎΠΆΠ΅ΡΠ΅ Π½Π°ΠΉΡΠΈ ΠΏΡΠΈΠΌΠ΅ΡΡ ΡΠΎΡΠΌ, Ρ Π±ΡΠ΄Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠ°ΠΌΡΡ ΠΏΠΎΠ»Π½ΡΡ ΠΈΠ· Π½ΠΈΡ
.
Π― Π½Π΅ ΡΠΏΡΠΎΡΡΠ° Π΄ΠΎΠ±Π°Π²ΠΈΠ» ΡΡΡ id=Β»my-formΒ». ΠΡΠΎ Π½ΡΠΆΠ½ΠΎ Π΄Π»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ ΠΏΡΠΈΠ²ΡΠ·Π°ΡΡ ΡΠΎΡΠΌΡ ΠΊ ΠΊΠ½ΠΎΠΏΠΊΠ΅, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΡ ΠΏΠΎΠΌΠ΅ΡΡΠΈΠΌ Π½Π° ΡΠ°ΠΉΡΠ΅.
ΠΡΠ»ΠΈΡΠ½ΠΎ, ΠΎΡΡΠ°Π»ΠΎΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΡΠΊΡΠΈΠΏΡ Π΄Π»Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΊΠ½ΠΎΠΏΠΊΠΈ ΠΈ Π²ΡΠ²ΠΎΠ΄Π° ΡΠΎΡΠΌΡ Ρ ΠΏΠΎΠ»ΡΠΌΠΈ Π²Π²ΠΎΠ΄Π°.
ΠΠΎΠ±Π°Π²Π»ΡΠ΅ΠΌ ΡΡΠΎΡ ΡΠΊΡΠΈΠΏΡ Π² ΡΠ΅Π³ head. ΠΡ Π²ΠΎΡ ΠΈ Π²ΡΡ. ΠΠΎΠΆΠ΅ΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ Π½Π°Π΄ΠΏΠΈΡΠΈ Π² ΡΠ°ΠΌΠΎΠΌ ΠΊΠΎΠ΄Π΅ ΡΠΎΡΠΌΡ, Π΅ΡΠ»ΠΈ ΠΏΡΠΈΡΠΌΠΎΡΡΠ΅ΡΡΡΡ, ΡΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π±Π΅Π· ΡΡΡΠ΄Π° Π½Π°ΠΉΡΠΈ ΠΌΠ΅ΡΡΠ°, Π³Π΄Π΅ ΡΠΊΠ°Π·ΡΠ²Π°ΡΡΡΡ Π½Π°Π·Π²Π°Π½ΠΈΡ ΡΠΎΡΠΌ ΠΈ ΡΠ΅ΠΊ Π±ΠΎΠΊΡΠΎΠ².
ΠΡΡΠ°Π»ΡΡ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΉ ΡΠ°Π³. ΠΠ°ΠΉΠ΄ΠΈΡΠ΅ Π² ΡΠ°ΠΉΠ» feedback\index.php. ΠΠ°ΠΉΠ΄ΠΈΡΠ΅ ΡΠ°ΠΌ ΠΌΠ°ΡΡΠΈΠ² Β«cfgΒ» ΠΈ ΡΠΊΠ°ΠΆΠΈΡΠ΅ ΠΏΠΎΡΡΡ, Π½Π° ΠΊΠΎΡΠΎΡΡΡ Ρ ΠΎΡΠΈΡΠ΅ ΠΏΠΎΠ»ΡΡΠ°ΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ ΠΎ Π·Π°ΡΠ²ΠΊΠ΅ ΠΈΠ· ΡΠΎΡΠΌΡ βto_emailβ => βΠ²Π°ΡΠ° ΠΏΠΎΡΡΠ°, Π²Π°ΡΠ° Π²ΡΠΎΡΠ°Ρ ΠΏΠΎΡΡΠ°β.
ΠΊ ΠΎΠ³Π»Π°Π²Π»Π΅Π½ΠΈΡ βΠ‘Π΅ΡΠ²ΠΈΡ RedConnect
RedConnect ΡΠ²Π»ΡΠ΅ΡΡΡ Π»ΠΈΠ΄Π΅ΡΠΎΠΌ Π² ΡΠ²ΠΎΠ΅ΠΌ Π΄Π΅Π»Π΅. Π‘Π΅ΡΠ²ΠΈΡ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΎΠ±ΡΠ°ΡΡΡΡ Ρ ΠΊΠ»ΠΈΠ΅Π½ΡΠΎΠΌ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ Π² ΡΠ°ΡΠ΅. Π’Π°ΠΊ ΠΆΠ΅ Π²ΡΠ±ΠΎΡ ΠΈΠ· ΡΡΠ΅Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΡ Π²Π°ΡΠΈΠ°Π½ΡΠΎΠ² ΠΊΠ½ΠΎΠΏΠΎΠΊ ΠΎΠ±ΡΠ°ΡΠ½ΠΎΠ³ΠΎ Π·Π²ΠΎΠ½ΠΊΠ°.
ΠΠ΅ΡΠ²ΡΠΉ β ΡΡΠΎ ΠΏΠΎΠ»Π΅ Π²Π²ΠΎΠ΄Π° Π² Π½ΠΈΠΆΠ½Π΅ΠΌ ΠΏΡΠ°Π²ΠΎΠΌ ΡΠ³Π»Ρ ΡΠ°ΠΉΡΠ°, ΠΊΠΎΡΠΎΡΡΡ Π΄Π°ΠΆΠ΅ Π½Π΅ Π½ΡΠΆΠ½ΠΎ ΡΠ°ΡΠΊΡΡΠ²Π°ΡΡ Π΄Π»Ρ ΠΎΡΠΏΡΠ°Π²ΠΊΠΈ ΡΠ²ΠΎΠΈΡ
Π΄Π°Π½Π½ΡΡ
.
ΠΠ²Π΅Π» Π½ΠΎΠΌΠ΅Ρ, Π½Π°ΠΆΠ°Π» ΠΊΠ½ΠΎΠΏΠΊΡ, ΡΠ΅Π±Π΅ ΠΏΠ΅ΡΠ΅Π·Π²ΠΎΠ½ΠΈΠ»ΠΈ β ΡΡΠΎ ΠΎΡΠ΅Π½Ρ ΡΠ΄ΠΎΠ±Π½ΠΎ Π΄Π»Ρ ΠΊΠ»ΠΈΠ΅Π½ΡΠ° ΠΈ Π²ΡΠ³ΠΎΠ΄Π½ΠΎ Π²ΡΠ΄Π΅Π»ΡΠ΅Ρ ΡΠ΅ΡΠ²ΠΈΡ ΡΡΠ΅Π΄ΠΈ ΠΊΠΎΠ½ΠΊΡΡΠ΅Π½ΡΠΎΠ².
ΠΡΠΎΡΠΎΠΉ Π²Π°ΡΠΈΠ°Π½Ρ β ΠΎΠ±ΡΡΠ½Π°Ρ ΠΊΠ½ΠΎΠΏΠΊΠ°, ΡΠ°ΡΠΊΡΡΠ²Π°ΡΡΠ°Ρ ΡΠΎΡΠΌΡ Π΄Π»Ρ Π·Π°ΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ.
Π’ΡΠ΅ΡΠΈΠΉ Π²Π°ΡΠΈΠ°Π½Ρ β Π²ΡΠ΅ΠΌ ΠΏΡΠΈΠ²ΡΡΠ½ΡΠΉ PopUp. ΠΠ°ΠΆΠ½ΡΠΌ ΡΡΡ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠΎΡ ΡΠ°ΠΊΡ, ΡΡΠΎ Π²ΡΠ΅ ΡΡΠΈ Π²ΠΈΠ΄Ρ ΠΊΠ½ΠΎΠΏΠΎΠΊ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄ΠΎΠ±Π½ΠΎ Π½Π°ΡΡΡΠΎΠΈΡΡ, Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ Ρ ΡΠ΅ΡΠ²ΠΈΡΠ° Π΅ΡΡΡ ΡΠ΄ΠΎΠ±Π½ΡΠ΅ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ, ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΡΡΠΈΠ΅ ΡΠΈΡΠΎΠΊΠΈΠΉ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ Π½Π°ΡΡΡΠΎΠ΅ΠΊ.
ΠΠ»Π°Π²Π½Π°Ρ ΡΠΈΡΠΊΠ°, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ ΡΠ΅ΡΠΈΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ ΠΊΠ»ΠΈΠ΅Π½ΡΠ° ΠΏΠΎΡΠΎΠΉ Π² ΡΠ°Π·Ρ Π±ΡΡΡΡΠ΅Π΅ β ΡΡΠΎ ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½Π°Ρ, Π΄Π»Ρ ΡΠ΅ΡΠ²ΠΈΡΠΎΠ² ΠΎΠ±ΡΠ°ΡΠ½ΠΎΠ³ΠΎ Π·Π²ΠΎΠ½ΠΊΠ°, ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΡ ΡΠΎΠ²ΠΌΠ΅ΡΡΠ½ΠΎΠ³ΠΎ Π±ΡΠ°ΡΠ·Π΅ΡΠ°. Π€ΡΠ½ΠΊΡΠΈΡ ΠΏΡΠ΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅Ρ, ΡΡΠΎ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ, ΠΏΡΠΈ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΠΈ Π·Π°ΡΠ²ΠΊΠΈ, Ρ ΠΏΠΎΠ·Π²ΠΎΠ»Π΅Π½ΠΈΡ ΠΊΠ»ΠΈΠ΅Π½ΡΠ° ΡΠΌΠΎΠΆΠ΅Ρ ΡΠΏΡΠ°Π²Π»ΡΡΡ ΡΠ°ΠΉΡΠΎΠΌ Π² Π±ΡΠ°ΡΠ·Π΅ΡΠ΅ ΠΊΠ»ΠΈΠ΅Π½ΡΠ°, ΡΠ°ΠΊΠ°Ρ ΡΡΠ½ΠΊΡΠΈΡ ΡΠΊΠΎΠ½ΠΎΠΌΠΈΡ Π±ΠΎΠ»ΡΡΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ.
Π€ΠΎΡΠΌΠ° Π·Π°ΠΊΠ°Π·Π°ΡΡ Π·Π²ΠΎΠ½ΠΎΠΊ Ρ ΡΠ°ΠΉΡΠ°β callback ΡΠ΅ΡΠ²ΠΈΡ ΠΎΡ CallKeeper β ΠΠ»Π°ΡΡΠΎΡΠΌΠ° CallKeeper
- ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ
3 Π½ΠΎΡΠ±ΡΡ 2020
2296
Π€ΠΎΡΠΌΠ° Π·Π°ΠΊΠ°Π·Π° ΠΎΠ±ΡΠ°ΡΠ½ΠΎΠ³ΠΎ Π·Π²ΠΎΠ½ΠΊΠ° Π΄Π»Ρ ΡΠ°ΠΉΡΠ° β ΡΡΠΎ ΡΠ΄ΠΎΠ±Π½ΡΠΉ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ ΠΈΠ½ΡΠ΅ΡΠ½Π΅Ρ-ΠΌΠ°ΡΠΊΠ΅ΡΠΈΠ½Π³Π°, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠΈΠΉ ΡΠ²Π΅Π»ΠΈΡΠΈΠ²Π°ΡΡ ΠΊΠΎΠ½Π²Π΅ΡΡΠΈΡ ΠΈ ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡ Π±ΠΎΠ»ΡΡΠ΅ ΡΠ΅Π»Π΅Π²ΡΡ
Π·Π²ΠΎΠ½ΠΊΠΎΠ², Π½Π΅ ΡΠΏΡΡΠΊΠ°Ρ Π½ΠΈ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΊΠ»ΠΈΠ΅Π½ΡΠ°.
ΠΡ ΡΠ°Π·ΠΌΠ΅ΡΠ°Π΅ΡΠ΅ ΡΠΊΡΠΈΠΏΡ Π²ΠΈΠ΄ΠΆΠ΅ΡΠ° CallKeeper Π½Π° ΡΠ°ΠΉΡΠ΅ Π²Π°ΡΠ΅ΠΉ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ ΠΈ Π½Π°ΡΠΈΠ½Π°Π΅ΡΠ΅ ΠΏΠΎΠ»ΡΡΠ°ΡΡ Π·Π²ΠΎΠ½ΠΊΠΈ. Π€ΠΎΡΠΌΠ° Π·Π°ΠΊΠ°Π·Π° ΠΎΠ±ΡΠ°ΡΠ½ΠΎΠ³ΠΎ Π·Π²ΠΎΠ½ΠΊΠ° ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠ±ΠΎΠΉ Π²ΠΈΠ΄ΠΆΠ΅Ρ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΡΠ΅Π΄Π»Π°Π³Π°Π΅Ρ ΠΏΠΎΡΠ΅ΡΠΈΡΠ΅Π»Ρ ΡΠ°ΠΉΡΠ° Π·Π°ΠΊΠ°Π·Π°ΡΡ Π·Π²ΠΎΠ½ΠΎΠΊ ΠΈΠΌΠ΅Π½Π½ΠΎ Π² ΡΠΎΡ ΠΌΠΎΠΌΠ΅Π½Ρ, ΠΊΠΎΠ³Π΄Π° ΠΎΠ½ Π±ΠΎΠ»ΡΡΠ΅ Π²ΡΠ΅Π³ΠΎ Π³ΠΎΡΠΎΠ² ΠΊ ΡΡΠΎΠΌΡ. ΠΠ°ΠΆΠ°Π² Π½Π° ΠΊΠ½ΠΎΠΏΠΊΡ, ΠΊΠ»ΠΈΠ΅Π½Ρ ΠΎΡΠΏΡΠ°Π²Π»ΡΠ΅Ρ ΡΠ²ΠΎΠΈ Π΄Π°Π½Π½ΡΠ΅, Π·Π²ΠΎΠ½ΠΎΠΊ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΏΠΎΡΡΡΠΏΠ°Π΅Ρ Π²Π°ΡΠ΅ΠΌΡ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅ΡΡ ΠΈΠ»ΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΡ ΠΊΠΎΠ»Π»-ΡΠ΅Π½ΡΡΠ°. ΠΠ΅Π½Π΅Π΄ΠΆΠ΅ΡΡ ΠΏΡΠΎΠ³ΠΎΠ²Π°ΡΠΈΠ²Π°Π΅ΡΡΡ ΠΈΠΌΡ ΠΏΠΎΡΠ΅ΡΠΈΡΠ΅Π»Ρ, ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΡΡΡΠ΅ΠΌ ΡΠΎΠ²Π°ΡΠ΅ ΠΈΠ»ΠΈ ΡΡΠ»ΡΠ³Π΅, ΡΠ°ΠΉΡΠ΅, ΠΎΡΠΊΡΠ΄Π° ΠΏΠΎΡΡΡΠΏΠΈΠ» Π·Π²ΠΎΠ½ΠΎΠΊ. ΠΠΎΡΠ»Π΅ ΠΏΠΎΠ΄ΡΠ²Π΅ΡΠΆΠ΄Π΅Π½ΠΈΡ CallKeeper Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ Π·Π²ΠΎΠ½ΠΈΡ ΠΊΠ»ΠΈΠ΅Π½ΡΡ.
Π‘ΠΎΠ±ΠΈΡΠ°ΡΡ Π·Π°ΡΠ²ΠΊΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΠΊΡΡΠ³Π»ΠΎΡΡΡΠΎΡΠ½ΠΎ. ΠΡΠ»ΠΈ Π·Π²ΠΎΠ½ΠΎΠΊ Π·Π°ΠΊΠ°Π·Π°Π½ Π² Π½Π΅ΡΠ°Π±ΠΎΡΠ΅Π΅ Π²ΡΠ΅ΠΌΡ, ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠΈΡ ΠΏΠ΅ΡΠ΅Π·Π²ΠΎΠ½ΠΈΡΡ ΠΏΠΎΠ·ΠΆΠ΅. ΠΠ²ΠΎΠ½ΠΎΠΊ Π±ΡΠ΄Π΅Ρ Π·Π°ΠΏΡΡΠ΅Π½ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ Π² ΡΠ°Π±ΠΎΡΠ΅Π΅ Π²ΡΠ΅ΠΌΡ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ/ ΠΊΠΎΠ»Π»-ΡΠ΅Π½ΡΡΠ° ΠΈΠ»ΠΈ Π² ΡΠ΄ΠΎΠ±Π½ΠΎΠ΅ Π²ΡΠ΅ΠΌΡ, Π²ΡΠ±ΡΠ°Π½Π½ΠΎΠ΅ ΠΊΠ»ΠΈΠ΅Π½ΡΠΎΠΌ Π²ΠΎ Π²ΡΠ΅ΠΌΡ Π·Π°ΠΊΠ°Π·Π° ΠΎΠ±ΡΠ°ΡΠ½ΠΎΠ³ΠΎ Π·Π²ΠΎΠ½ΠΊΠ°.
Π ΠΎΠ±ΡΠ°ΡΠ½ΠΎΠΌΡ Π·Π²ΠΎΠ½ΠΊΡ Callkeeper ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠΈΡΡ Π²ΡΠ΅ Π²ΡΡΡΠΎΠ΅Π½Π½ΡΠ΅ ΡΠΎΡΠΌΡ ΠΎΠ±ΡΠ°ΡΠ½ΠΎΠΉ ΡΠ²ΡΠ·ΠΈ Π½Π° Π²Π°ΡΠ΅ΠΌ ΡΠ°ΠΉΡΠ΅:
- ΡΠΎΡΠΌΡ Π·Π°ΠΏΠΈΡΠΈ Π½Π° ΡΠ΅ΡΡ-Π΄ΡΠ°ΠΉΠ²;
- Π·Π°ΠΏΠΈΡΡ Π½Π° ΡΠ΅Ρ ΠΎΡΠΌΠΎΡΡ, ΡΠ°ΡΡΠ΅Ρ ΠΊΡΠ΅Π΄ΠΈΡΠ° ΠΎΠ½Π»Π°ΠΉΠ½;
- Π·Π°ΠΏΠΈΡΡ Π½Π° ΠΏΡΠΈΠ΅ΠΌ ΠΊ Π²ΡΠ°ΡΡ ΠΈ Π΄Ρ.
- ΠΠ° ΡΠ°ΠΉΡ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΡΡΡ ΡΠΊΡΠΈΠΏΡ (html-ΠΊΠΎΠ΄) CallKeeper. ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ Π΅Π³ΠΎ Π½Π°ΠΏΡΡΠΌΡΡ Π² ΠΊΠΎΠ΄ Π²Π°ΡΠ΅Π³ΠΎ ΡΠ°ΠΉΡΠ° ΠΈΠ»ΠΈ ΡΠ΅ΡΠ΅Π· Google Tag Manager.
- ΠΠ° ΡΠ°ΠΉΡΠ΅ ΠΏΠΎΡΠ²Π»ΡΠ΅ΡΡΡ ΡΡΡΠ±ΠΊΠ° ΠΈ ΡΠΎΡΠΌΠ° Π·Π°ΠΊΠ°Π·Π° ΠΎΠ±ΡΠ°ΡΠ½ΠΎΠ³ΠΎ Π·Π²ΠΎΠ½ΠΊΠ°. ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π½Π°ΡΡΡΠΎΠΈΡΡ ΠΏΠΎΡΠ²Π»Π΅Π½ΠΈΠ΅ ΡΠΎΡΠΌΡ Π½Π° ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΡΡΡΠ°Π½ΠΈΡΠ΅ ΡΠ°ΠΉΡΠ° ΠΈΠ»ΠΈ ΠΎΠ³ΡΠ°Π½ΠΈΡΠΈΡΡ Π½Π°ΡΡΡΠΎΠΉΠΊΠ°ΠΌΠΈ ΠΏΠΎΡΠ²Π»Π΅Π½ΠΈΠ΅ ΡΠΎΡΠΌΡ ΡΠΎΠ»ΡΠΊΠΎ Π½Π° ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠΉ ΡΡΡΠ°Π½ΠΈΡΠ΅.
- ΠΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠ²ΠΎΠΈ Π΄Π°Π½Π½ΡΠ΅ Π² ΡΠΎΡΠΌΠ΅ Π·Π°ΠΊΠ°Π·Π° ΠΎΠ±ΡΠ°ΡΠ½ΠΎΠ³ΠΎ Π·Π²ΠΎΠ½ΠΊΠ°/ Π²ΠΈΠ΄ΠΆΠ΅ΡΠ΅, CallKeeper Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ Π·Π²ΠΎΠ½ΠΈΡ Π²Π°ΡΠ΅ΠΌΡ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅ΡΡ ΠΈΠ»ΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΡ ΠΊΠΎΠ»Π»-ΡΠ΅Π½ΡΡΠ°, ΠΏΡΠΎΠ³ΠΎΠ²Π°ΡΠΈΠ²Π°Ρ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ ΠΏΠΎΡΠ΅ΡΠΈΡΠ΅Π»Π΅.
- ΠΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ ΠΈΠ»ΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ ΠΊΠΎΠ»Π»-ΡΠ΅Π½ΡΡΠ° ΠΏΠΎΠ΄ΡΠ²Π΅ΡΠΆΠ΄Π°Π΅Ρ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ Π³ΠΎΠ»ΠΎΡΠΎΠΌ ΠΈΠ»ΠΈ Π½Π°ΠΆΠ°ΡΠΈΠ΅ΠΌ ΠΊΠ½ΠΎΠΏΠΊΠΈ Π½Π° ΡΠ΅Π»Π΅ΡΠΎΠ½Π΅, ΠΏΠΎΡΠ»Π΅ ΡΠ΅Π³ΠΎ Callkeeper Π½Π°ΡΠΈΠ½Π°Π΅Ρ Π·Π²ΠΎΠ½ΠΈΡΡ ΠΊΠ»ΠΈΠ΅Π½ΡΡ, ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ Π²ΡΡΡΡΠ°ΠΈΠ²Π°Π΅Ρ ΡΠ°Π·Π³ΠΎΠ²ΠΎΡ Ρ ΠΊΠ»ΠΈΠ΅Π½ΡΠΎΠΌ, ΠΎΠΏΠΈΡΠ°ΡΡΡ Π½Π° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ, ΡΠΊΠ°Π·Π°Π½Π½ΡΡ Π² ΡΠΎΡΠΌΠ΅.

ΠΠΎΠΆΠ½ΠΎ Π½Π°ΡΡΡΠ°ΠΈΠ²Π°ΡΡ ΠΎΡΡΠ΅ΡΡ Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ Π·Π°Π΄Π°Ρ, Π½Π°ΡΡΡΠΎΠΈΡΡ ΠΎΡΠΏΡΠ°Π²ΠΊΡ ΠΎΡΡΠ΅ΡΠ° Π½Π° e-mail ΡΡΠΊΠΎΠ²ΠΎΠ΄ΠΈΡΠ΅Π»Ρ ΠΈΠ»ΠΈ Π²ΡΠ³ΡΡΠΆΠ°ΡΡ Π΄Π°Π½Π½ΡΠ΅ ΡΠ΄ΠΎΠ±Π½ΡΠΌ ΡΠΏΠΎΡΠΎΠ±ΠΎΠΌ.
ΠΠΈΠ·Π°ΠΉΠ½ Π²ΠΈΠ΄ΠΆΠ΅ΡΠ° Π½Π°ΡΡΡΠ°ΠΈΠ²Π°Π΅ΡΡΡ Π² ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠΈ Ρ ΠΠ°ΡΠΈΠΌ Π±ΡΠ΅Π½Π΄Π±ΡΠΊΠΎΠΌ, Π³ΠΈΠ±ΠΊΠΈΠ΅ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ ΠΏΠΎΠΌΠΎΠ³Π°ΡΡ ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ ΠΊΠ°ΠΌΠΏΠ°Π½ΠΈΠΈ, ΠΏΠΎΠ²ΡΡΠ°Ρ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎΡΡΡ.
ΠΠΎΠΌΡ Π±ΡΠ΄Π΅Ρ ΠΏΠΎΠ»Π΅Π·Π½Π° ΡΠΎΡΠΌΠ° Π·Π°ΠΊΠ°Π·Π° Π·Π²ΠΎΠ½ΠΊΠΎΠ²?
Π’Π°ΠΊΠ°Ρ ΡΡΠ½ΠΊΡΠΈΡ Π±ΡΠ΄Π΅Ρ ΠΏΠΎΠ»Π΅Π·Π½Π° Π»ΡΠ±ΠΎΠΉ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ Π² ΡΡΠ΅ΡΠ΅ Π°Π²ΡΠΎ, Π½Π΅Π΄Π²ΠΈΠΆΠΈΠΌΠΎΡΡΠΈ, ΠΌΠ΅Π΄ΠΈΡΠΈΠ½ΡΠΊΠΈΡ ΡΡΠ»ΡΠ³, ΡΠ»Π΅ΠΊΡΡΠΎΠ½Π½ΠΎΠΉ ΠΊΠΎΠΌΠΌΠ΅ΡΡΠΈΠΈ, ΠΎΠΊΠ°Π·ΡΠ²Π°ΡΡΠ΅ΠΉ ΡΡΠ»ΡΠ³ΠΈ ΠΎΠ½Π»Π°ΠΉΠ½ ΠΈΠ»ΠΈ Π·Π°Π½ΠΈΠΌΠ°ΡΡΠ΅ΠΉΡΡ ΠΏΡΠΎΠ΄Π°ΠΆΠ΅ΠΉ ΡΠΎΠ²Π°ΡΠΎΠ² Π² ΠΈΠ½ΡΠ΅ΡΠ½Π΅Ρ-ΠΌΠ°Π³Π°Π·ΠΈΠ½Π΅. Π‘Π΅ΡΠ²ΠΈΡ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠΎΠ±ΠΈΡΠ°ΡΡ Π»ΠΈΠ΄Ρ Π² ΡΠ΅ΠΆΠΈΠΌΠ΅ 24/7, Π΄Π°ΠΆΠ΅ ΠΊΠΎΠ³Π΄Π° Π²Π°Ρ Π½Π΅Ρ Π² ΠΎΡΠΈΡΠ΅.ΠΠ²ΠΎΠ½ΠΎΠΊ Π±ΡΠ΄Π΅Ρ Π·Π°ΠΏΡΡΠ΅Π½ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ Π² ΡΠ°Π±ΠΎΡΠ΅Π΅ Π²ΡΠ΅ΠΌΡ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ ΠΈΠ»ΠΈ Π² ΡΠ΄ΠΎΠ±Π½ΠΎΠ΅ Π²ΡΠ΅ΠΌΡ, Π²ΡΠ±ΡΠ°Π½Π½ΠΎΠ΅ ΠΊΠ»ΠΈΠ΅Π½ΡΠΎΠΌ.
ΠΡΠ»ΠΈ ΠΊΠ»ΠΈΠ΅Π½Ρ Π½Π΅ ΡΠΌΠΎΠ³ ΠΎΡΠ²Π΅ΡΠΈΡΡ Π½Π° ΠΎΠ±ΡΠ°ΡΠ½ΡΠΉ Π·Π²ΠΎΠ½ΠΎΠΊ, Π°Π±ΠΎΠ½Π΅Π½Ρ Π½Π΅ Π΄ΠΎΡΡΡΠΏΠ΅Π½ ΠΈΠ»ΠΈ Π·Π°Π½ΡΡ, ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π½Π°ΡΡΡΠΎΠΈΡΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΏΠΎΠ²ΡΠΎΡΠ½ΡΠ΅ Π·Π²ΠΎΠ½ΠΊΠΈ ΠΊΠ»ΠΈΠ΅Π½ΡΡ, ΡΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΡ ΠΎ Π·Π²ΠΎΠ½ΠΊΠ°Ρ
ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅ΡΠ°ΠΌ Π½Π° e-mail.
Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΠΊΠΎΠ½ΡΠ°ΠΊΡ Ρ ΠΏΠΎΡΠ΅Π½ΡΠΈΠ°Π»ΡΠ½ΡΠΌ ΠΊΠ»ΠΈΠ΅Π½ΡΠΎΠΌ ΡΠΎΡΡΠΎΠΈΡΡΡ Π² Π»ΡΠ±ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΈ Π½Π΅ ΠΏΠΎΡΠ΅ΡΡΠ΅ΡΡΡ.
3 Π½ΠΎΡΠ±ΡΡ 2020
2296
Π‘ΠΎΠ²Π΅Ρ Π΄Π½Ρ
ΠΠ°ΡΡΡΠΎΠΉΡΠ΅ Π² Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΊΠ»ΠΈΠΊΠΎΠ² ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΡ Ρ ΡΠΎΡΠΌΠ°ΠΌΠΈ ΡΠΈΠΏΠ° Lead Ads Facebook/Instagram, ΠΠΊΠΎΠ½ΡΠ°ΠΊΡΠ΅ ΠΈ myTarget.
- CallKeeper
- CallTracking
ΠΡ ΠΎΠ΄ Π² Π»ΠΈΡΠ½ΡΠΉ ΠΊΠ°Π±ΠΈΠ½Π΅Ρ
ΠΠΎΠ³ΠΈΠ½ / Π΅-mailΠΠ°ΡΠΎΠ»Ρ
ΠΠ°ΠΏΠΎΠΌΠ½ΠΈΡΡ ΠΌΠ΅Π½Ρ
ΠΠ°Π±ΡΠ»ΠΈ ΠΏΠ°ΡΠΎΠ»Ρ?
ΠΡ ΠΎΠ΄ Π² Π»ΠΈΡΠ½ΡΠΉ ΠΊΠ°Π±ΠΈΠ½Π΅Ρ
ΠΠΎΠ³ΠΈΠ½ / Π΅-mailΠΠ°ΡΠΎΠ»Ρ
ΠΠ°ΠΏΠΎΠΌΠ½ΠΈΡΡ ΠΌΠ΅Π½Ρ
ΠΠ°Π±ΡΠ»ΠΈ ΠΏΠ°ΡΠΎΠ»Ρ?
Π£Π²Π°ΠΆΠ°Π΅ΠΌΡΠΉ(Π°Ρ) !
ΠΠ»Π°Π³ΠΎΠ΄Π°ΡΠΈΠΌ ΠΠ°Ρ Π·Π° ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΡ!
ΠΡ ΠΎΡΠΏΡΠ°Π²ΠΈΠ»ΠΈ SMS Ρ 6-Π·Π½Π°ΡΠ½ΡΠΌ ΠΊΠΎΠ΄ΠΎΠΌ ΠΏΠΎΠ΄ΡΠ²Π΅ΡΠΆΠ΄Π΅Π½ΠΈΡ
Π½Π° Π½ΠΎΠΌΠ΅Ρ .
ΠΠ²Π΅Π΄ΠΈΡΠ΅ ΠΊΠΎΠ΄ ΠΈ Π²ΠΎΠΉΠ΄ΠΈΡΠ΅ Π² Π»ΠΈΡΠ½ΡΠΉ ΠΊΠ°Π±ΠΈΠ½Π΅Ρ.
ΠΡΠΏΡΠ°Π²ΠΈΡΡ ΠΊΠΎΠ΄ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎ
ΠΠ²Π΅Π΄ΠΈΡΠ΅ Π½ΠΎΠΌΠ΅Ρ ΡΠ΅Π»Π΅ΡΠΎΠ½Π° Π΄Π»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ ΠΌΡ ΠΎΡΠΏΡΠ°Π²ΠΈΠ»ΠΈ ΠΠ°ΠΌ SMS Ρ 6-Π·Π½Π°ΡΠ½ΡΠΌ ΠΊΠΎΠ΄ΠΎΠΌ ΠΏΠΎΠ΄ΡΠ²Π΅ΡΠΆΠ΄Π΅Π½ΠΈΡ.
ΠΠ»Π°Π³ΠΎΠ΄Π°ΡΠΈΠΌ ΠΠ°Ρ Π·Π° ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΡ! ΠΡ ΠΎΡΠΏΡΠ°Π²ΠΈΠ»ΠΈ ΠΏΠΈΡΡΠΌΠΎ Ρ ΠΏΠΎΠ΄ΡΠ²Π΅ΡΠΆΠ΄Π΅Π½ΠΈΠ΅ΠΌ Π½Π° ΠΠ°Ρ e-mail .
ΠΠ° ΠΠ°Ρ e-mail Π±ΡΠ»ΠΎ ΠΎΡΠΏΡΠ°Π²Π»Π΅Π½ΠΎ ΠΏΠΈΡΡΠΌΠΎ Ρ Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ΠΌ ΠΏΠ°ΡΠΎΠ»Ρ
Π¨Π°Π±Π»ΠΎΠ½ ΡΠΎΡΠΌΡ ΠΎΠ±ΡΠ°ΡΠ½ΠΎΠ³ΠΎ Π·Π²ΠΎΠ½ΠΊΠ°
- ΠΡΠ΅ ΡΠ°Π±Π»ΠΎΠ½Ρ
- βΠ€ΠΎΡΠΌΡ
- βΠΠΎΠ½ΡΠ°ΠΊΡΠ½ΡΠ΅ ΡΠΎΡΠΌΡ
- βΠ¨Π°Π±Π»ΠΎΠ½ ΡΠΎΡΠΌΡ ΠΎΠ±ΡΠ°ΡΠ½ΠΎΠ³ΠΎ Π·Π²ΠΎΠ½ΠΊΠ°
βΠΠΎΠ½ΡΠ°ΠΊΡΠ½ΡΠ΅ ΡΠΎΡΠΌΡ
ΠΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»ΡΠ½ΡΠΉ ΠΏΡΠΎΡΠΌΠΎΡΡ ΡΠ°Π±Π»ΠΎΠ½Π° 90 013
Π¨Π°Π±Π»ΠΎΠ½ ΠΏΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΡΠΌΠΎΡΡΠ°
- β ΠΡΠΎΡΡΠΎΠΉ Π² ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ (Π±Π΅Π· ΠΊΠΎΠ΄!)
- β Π‘ΠΎΡΠ½ΠΈ ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΠΉ
ΠΠ°ΠΌ Π½ΡΠΆΠ½ΠΎ ΠΏΠ΅ΡΠ΅Π·Π²ΠΎΠ½ΠΈΡΡ?
ΠΠΎ-ΠΏΠ΅ΡΠ²ΡΡ , ΠΊΠ°ΠΊ ΡΠ΅Π±Ρ Π·ΠΎΠ²ΡΡ?
ΠΠ΅ ΠΌΠΎΠ³Π»ΠΈ Π±Ρ Π²Ρ Π²ΠΊΡΠ°ΡΡΠ΅ ΠΎΠ±ΡΡΡΠ½ΠΈΡΡ Π½Π°ΠΌ, ΠΎ ΡΠ΅ΠΌ Π²Π°Ρ Π·Π°ΠΏΡΠΎΡ?
ΠΠΎ ΠΊΠ°ΠΊΠΎΠΌΡ Π½ΠΎΠΌΠ΅ΡΡ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ Ρ Π²Π°ΠΌΠΈ ΡΠ²ΡΠ·Π°ΡΡΡΡ, {{field:b2ca3b5f-81d6-4a19-8f46-03771898dd0b}}?
Π ΠΊΠ°ΠΊΠΎΠΉ Π΄Π΅Π½Ρ Π²Ρ Π΄ΠΎΡΡΡΠΏΠ½Ρ Π΄Π»Ρ ΡΠ°ΡΠ°?
Π ΠΊΠ°ΠΊΠΎΠ΅ Π²ΡΠ΅ΠΌΡ Π²Π°ΠΌ Π»ΡΡΡΠ΅ Π²ΡΠ΅Π³ΠΎ ΠΏΠΎΠ·Π²ΠΎΠ½ΠΈΡΡ?
ΠΠ° ΡΡΠΎΠΌ ΠΏΠΎΠΊΠ° Π²ΡΠ΅.
ΠΡ ΡΠΊΠΎΡΠΎ ΠΏΠΎΠ³ΠΎΠ²ΠΎΡΠΈΠΌ Ρ Π²Π°ΠΌΠΈ, {{field:b2ca3b5f-81d6-4a19-8f46-03771898dd0b}}.
Π‘ΠΏΠ°ΡΠΈΠ±ΠΎ Π·Π° Π·Π°ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΡΡΠΎΠΉ ΡΠΎΡΠΌΡ Π’Π΅ΠΏΠ΅ΡΡ *ΡΠΎΠ·Π΄Π°ΠΉΡΠ΅ ΡΠ²ΠΎΠΉ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠΉ* β ΡΡΠΎ Π±Π΅ΡΠΏΠ»Π°ΡΠ½ΠΎ, ΠΏΡΠΎΡΡΠΎ ΠΈ ΠΊΡΠ°ΡΠΈΠ²ΠΎ
ΠΡΠ΅Π½ΠΊΠ° 4,5 ΠΈΠ· 5 ΠΈΠ· Π±ΠΎΠ»Π΅Π΅ ΡΠ΅ΠΌ 500 ΠΎΡΠ·ΡΠ²ΠΎΠ² Π½Π° G2.com
ΠΠΎΠ»Π΅Π΅ Π±ΡΡΡΡΡΠ΅ ΠΎΠ±ΡΠ°ΡΠ½ΡΠ΅ Π²ΡΠ·ΠΎΠ²Ρ ΠΎΠ·Π½Π°ΡΠ°ΡΡ Π±ΠΎΠ»Π΅Π΅ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΡΡ ΠΊΠ»ΠΈΠ΅Π½ΡΠΎΠ²
Π Π΅ΡΠ°ΠΉΡΠ΅ Π·Π°ΠΏΡΠΎΡΡ ΠΊΠ»ΠΈΠ΅Π½ΡΠΎΠ² Π±ΡΡΡΡΠ΅Π΅ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠΎΡΠΌΡ ΠΎΠ±ΡΠ°ΡΠ½ΠΎΠ³ΠΎ Π·Π²ΠΎΠ½ΠΊΠ°, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΈΠ΄Π΅Π°Π»ΡΠ½ΠΎ Π²ΠΏΠΈΡΡΠ²Π°Π΅ΡΡΡ Π² Π²Π°Ρ ΡΠ°Π±ΠΎΡΠΈΠΉ ΠΏΡΠΎΡΠ΅ΡΡ. ΠΠ°ΡΡΡΠΎΠΉΡΠ΅ Π½Π°Ρ ΡΠ°Π±Π»ΠΎΠ½, Π΄ΠΎΠ±Π°Π²ΡΡΠ΅ ΡΠ²ΠΎΠΉ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠΉ Π±ΡΠ΅Π½Π΄ ΠΈ ΠΌΠ΅Π½ΡΠΉΡΠ΅ Π²ΠΎΠΏΡΠΎΡΡ Π·Π° ΡΡΠΈΡΠ°Π½Π½ΡΠ΅ ΠΌΠΈΠ½ΡΡΡ. ΠΠ°ΡΠ΅ΠΌ ΠΈΠ½ΡΠ΅Π³ΡΠΈΡΡΠΉΡΠ΅ ΡΠΎΡΠΌΡ Ρ Π²Π°ΡΠΈΠΌΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΠΌΠΈ Π΄Π»Ρ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄Π° β Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π½Π°ΡΡΡΠΎΠΈΡΡ ΠΌΠ³Π½ΠΎΠ²Π΅Π½Π½ΡΠ΅ ΡΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΡ, Π° ΡΡΠΎ Π·Π½Π°ΡΠΈΡ, ΡΡΠΎ Π²Ρ Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ ΠΏΡΠΎΠΏΡΡΡΠΈΡΠ΅ Π·Π°ΠΏΡΠΎΡ ΠΎΠ±ΡΠ°ΡΠ½ΠΎΠ³ΠΎ Π·Π²ΠΎΠ½ΠΊΠ°.
Π§Π°ΡΡΠΎ Π·Π°Π΄Π°Π²Π°Π΅ΠΌΡΠ΅ Π²ΠΎΠΏΡΠΎΡΡ ΠΏΠΎ ΡΠΎΡΠΌΠ΅ ΠΎΠ±ΡΠ°ΡΠ½ΠΎΠ³ΠΎ Π·Π²ΠΎΠ½ΠΊΠ°:
ΠΡΠ° ΠΏΡΠΎΡΡΠ°Ρ ΡΠΎΡΠΌΠ° ΠΎΠ±ΡΠ°ΡΠ½ΠΎΠ³ΠΎ Π·Π²ΠΎΠ½ΠΊΠ° Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΠΊΠΎΠ½ΠΎΠΌΠΈΡ Π²ΡΠ΅ΠΌΡ Π΄Π»Ρ Π³ΡΡΠΏΠΏ ΠΎΠ±ΡΠ»ΡΠΆΠΈΠ²Π°Π½ΠΈΡ ΠΊΠ»ΠΈΠ΅Π½ΡΠΎΠ². Π ΡΡΠΎ ΠΎΡΠ»ΠΈΡΠ½ΡΠΉ ΡΠΏΠΎΡΠΎΠ± ΡΠ΄Π΅Π»Π°ΡΡ ΠΊΠ»ΠΈΠ΅Π½ΡΠΎΠ² ΡΡΠ°ΡΡΠ»ΠΈΠ²ΡΠΌΠΈ. ΠΡΠ΅, ΡΡΠΎ Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°ΡΡ, ΡΡΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠΈΡΡ ΡΠΎΡΠΌΡ ΠΊ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΡΠ°ΡΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΠΌ, ΠΈ Π½ΡΠΆΠ½ΡΠΉ ΡΠ΅Π»ΠΎΠ²Π΅ΠΊ ΠΏΠΎΠ»ΡΡΠΈΡ ΡΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΠ΅, ΠΊΠ°ΠΊ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΠΎΡΡΡΠΏΠΈΡ Π·Π°ΠΏΡΠΎΡ ΠΎΠ±ΡΠ°ΡΠ½ΠΎΠ³ΠΎ Π²ΡΠ·ΠΎΠ²Π°.
ΠΡΠΎΡΡΠΎ Π²ΡΠ±Π΅ΡΠΈΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π΄Π»Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΈ ΠΊΠ»ΠΈΠ΅Π½ΡΠΎΠ² (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Freshdesk, Aircall ΠΈΠ»ΠΈ Zendesk) ΠΈ ΠΈΠ½ΡΠ΅Π³ΡΠΈΡΡΠΉΡΠ΅ Π΅Π³ΠΎ Ρ ΡΠΎΡΠΌΠΎΠΉ ΠΎΠ±ΡΠ°ΡΠ½ΠΎΠ³ΠΎ Π·Π²ΠΎΠ½ΠΊΠ°. ΠΠ°ΠΏΡΠΎΡΡ ΠΏΠΎΡΡΡΠΏΠ°ΡΡ ΠΏΡΡΠΌΠΎ Π² Π²Π°ΡΡ CRM-ΡΠΈΡΡΠ΅ΠΌΡ. ΠΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ Π°ΠΊΠΊΡΡΠ°ΡΠ½ΠΎ, ΠΏΡΠ°Π²Π΄Π°?
Π‘ΠΎΠ±Π΅ΡΠΈΡΠ΅ Π²ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ, Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΡ Π²Π°ΡΠΈΠΌ ΠΊΠΎΠΌΠ°Π½Π΄Π°ΠΌ Π΄Π»Ρ Π·Π²ΠΎΠ½ΠΊΠ°, ΠΎΡ ΠΈΡ Π΄ΠΎΡΡΡΠΏΠ½ΠΎΡΡΠΈ Π΄ΠΎ Ρ Π°ΡΠ°ΠΊΡΠ΅ΡΠ° ΠΈΡ Π·Π°ΠΏΡΠΎΡΠ°.
ΠΠΎ Π·Π°ΡΠ΅ΠΌ ΠΎΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°ΡΡΡΡ Π½Π° Π΄ΠΎΡΡΠΈΠ³Π½ΡΡΠΎΠΌ? ΠΡΠ»ΠΈ Π²Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅ ΡΡΠΎΡ ΡΠ°Π±Π»ΠΎΠ½ Π΄Π»Ρ ΠΏΡΠΈΠ²Π»Π΅ΡΠ΅Π½ΠΈΡ ΠΏΠΎΡΠ΅Π½ΡΠΈΠ°Π»ΡΠ½ΡΡ ΠΊΠ»ΠΈΠ΅Π½ΡΠΎΠ², Π΄ΠΎΠ±Π°Π²ΡΡΠ΅ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΡΠΎΡΠ½ΡΡΡΠΈΡ Π²ΠΎΠΏΡΠΎΡΠΎΠ². ΠΡΠΎ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ Π²Π°ΠΌ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΡΠ΅Π½Π½ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ ΠΊΠ»ΠΈΠ΅Π½ΡΠ°Ρ ΠΈ ββΠΏΠΎΠ²ΡΡΠΈΡΡ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎΡΡΡ ΡΠ°Π±ΠΎΡΡ ΠΎΡΠ΄Π΅Π»Π° ΠΏΡΠΎΠ΄Π°ΠΆ.
Π€ΠΎΡΠΌΠ° ΠΎΠ±ΡΠ°ΡΠ½ΠΎΠ³ΠΎ Π·Π²ΠΎΠ½ΠΊΠ° Π½Π΅ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΠΈΡ?
3200+ ΡΠ°Π±Π»ΠΎΠ½ΠΎΠ², 120+ ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΠΉ
Π¨Π°Π±Π»ΠΎΠ½ ΡΠΎΡΠΌΡ ΠΎΠ½Π»Π°ΠΉΠ½-Π·Π°ΠΊΠ°Π·Π°
ΠΡΠΎΠ΄Π°ΠΆΠ° ΡΠΎΠ²Π°ΡΠΎΠ² ΠΈ Π²Π°ΡΡΠ΅ΡΠΎΠ² ΠΎΠ½Π»Π°ΠΉΠ½ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΎΠΉ ΡΠΎΡΠΌΡ Π·Π°ΠΊΠ°Π·Π°
Π¨Π°Π±Π»ΠΎΠ½ ΡΠΎΡΠΌΡ Π·Π°ΠΏΡΠΎΡΠ° Π½Π° ΡΠ°Π±ΠΎΡΡ
Π£ΡΠΊΠΎΡΡΡΠ΅ ΠΏΡΠΎΡΠ΅ΡΡ Π½Π°ΠΉΠΌΠ° Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΠΎΠΉ Π²Π½ΡΡΡΠ΅Π½Π½Π΅ΠΉ ΡΠΎΡΠΌΡ Π·Π°ΠΏΡΠΎΡΠ° Π΄Π»Ρ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅ΡΠΎΠ²
9 0012 Π‘ΡΡΠ»ΠΊΠ° Π¨Π°Π±Π»ΠΎΠ½ ΡΠΎΡΠΌΡ Π·Π°ΠΏΡΠΎΡΠ°ΠΠΎΠ»ΡΡΠΈΡΠ΅ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ ΠΊΠ°Π½Π΄ΠΈΠ΄Π°ΡΠ°Ρ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΠΎΠΉ ΠΈΠ½ΡΠ΅ΡΠ°ΠΊΡΠΈΠ²Π½ΠΎΠΉ ΡΠΎΡΠΌΡ Π·Π°ΠΏΡΠΎΡΠ° ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°ΡΠΈΠΉ
monday.
com Π¨Π°Π±Π»ΠΎΠ½ ΡΠΎΡΠΌΡ
Π£ΡΠΈΠ»ΡΡΠ΅ ΡΠ²ΠΎΠΉ ΡΠ°Π±ΠΎΡΠΈΠΉ ΠΏΡΠΎΡΠ΅ΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π½Π°ΡΠ΅ΠΉ Π½ΠΎΠ²Π΅ΠΉΡΠ΅ΠΉ ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΠΈ
Π¨Π°Π±Π»ΠΎΠ½ ΡΠΎΡΠΌΡ ΠΏΡΠΈΠ²Π»Π΅ΡΠ΅Π½ΠΈΡ ΠΏΠΎΡΠ΅Π½ΡΠΈΠ°Π»ΡΠ½ΡΡ ΠΊΠ»ΠΈΠ΅Π½ΡΠΎΠ²
ΠΠΎΠ»ΡΡΠΈΡΠ΅ Π±ΠΎΠ»ΡΡΠ΅ ΠΏΠΎΡΠ΅Π½ΡΠΈΠ°Π»ΡΠ½ΡΡ ΠΊΠ»ΠΈΠ΅Π½ΡΠΎΠ² β ΠΎΡΠ»ΠΈΡΠ½ΠΎ ΡΠΌΠΎΡΡΠΈΡΡΡ Π½Π° Π»ΡΠ±ΠΎΠΌ ΡΡΡΡΠΎΠΉΡΡΠ²Π΅
Π¨Π°Π±Π»ΠΎΠ½ Π»ΠΈΡΡΠ° ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΠΈ
Π£Π²Π»Π΅ΠΊΠ°ΡΠ΅Π»ΡΠ½ΡΠΉ ΠΈ Π΄ΡΡΠΆΠ΅Π»ΡΠ±Π½ΡΠΉ ΡΠΏΠΎΡΠΎΠ± Π·Π°ΠΏΡΠ°ΡΠΈΠ²Π°ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ Ρ Π»ΡΠ΄Π΅ΠΉ
ΠΡΡΠ³ΠΈΠ΅ ΠΊΠ°ΡΠ΅Π³ΠΎΡΠΈΠΈ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠ΅ ΡΠ°ΠΊΠΈΠ΅ Π»ΡΠ΄ΠΈ, ΠΊΠ°ΠΊ Π²Ρ
ΠΠ»Π°Π½ΠΊΠΈ Π·Π°ΠΊΠ°Π·ΠΎΠ²ΠΠ»Π°Π½ΠΊΠΈ Π·Π°ΡΠ²Π»Π΅Π½ΠΈΠΉΠΠ»Π°Π½ΠΊΠΈ ΠΎΠ±ΡΠ°ΡΠ½ΠΎΠΉ ΡΠ²ΡΠ·ΠΈΠΠΈΠΊΡΠΎΡΠΈΠ½Ρ ΠΏΠΎ Π»ΠΈΠ΄ΠΎΠ³Π΅Π½Π΅ΡΠ°ΡΠΈΠΈΠΠΏΡΠΎΡΡ ΠΎΠ±ΡΠ°ΡΠ½ΠΎΠΉ ΡΠ²ΡΠ·ΠΈΠΠΏΡΠΎΡΡ ΡΠ΄ΠΎΠ²Π»Π΅ΡΠ²ΠΎΡΠ΅Π½Π½ΠΎΡΡΠΈ ΠΊΠ»ΠΈΠ΅Π½ΡΠΎΠ²Π€ΠΎΡΠΌΡ Π·Π°Π³ΡΡΠ·ΠΊΠΈ ΡΠ°ΠΉΠ»ΠΎΠ²ΠΠ»Π°Π½ΠΊΠΈ ΠΎΡΠ΅Π½ΠΊΠΈΠΠ»Π°Π½ΠΊΠΈ Π·Π°ΡΠ²Π»Π΅Π½ΠΈΠΉ ΠΎ ΠΏΡΠΈΠ΅ΠΌΠ΅ Π½Π° ΡΠ°Π±ΠΎΡΡΠΠ°ΡΠΊΠ΅ΡΠΈΠ½Π³ΠΎΠ²ΡΠ΅ ΠΎΠΏΡΠΎΡΡΠΠ»Π°Π½ΠΊΠΈ ΠΌΠ΅ΡΠΎΠΏΡΠΈΡΡΠΈΠΉΠΠΏΡΠΎΡΡ ΠΌΠ΅ΡΠΎΠΏΡΠΈΡΡΠΈΠΉ
Π§Π°ΡΡΡ 2. ΠΡΠ½ΠΎΠ²Π½ΡΠ΅ ΠΎΠ±ΡΠ°ΡΠ½ΡΠ΅ Π²ΡΠ·ΠΎΠ²Ρ | ΠΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ Dash Π΄Π»Ρ Python
ΠΡΠΎ Π²ΡΠΎΡΠ°Ρ Π³Π»Π°Π²Π° ΠΡΠ½ΠΎΠ² Dash.
Π ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅ΠΉ Π³Π»Π°Π²Π΅ ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°Π»ΠΎΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ DashΠΌΠ°ΠΊΠ΅Ρ
, Π° Π² ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΉ Π³Π»Π°Π²Π΅ ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°ΡΡΡΡ ΠΈΠ½ΡΠ΅ΡΠ°ΠΊΡΠΈΠ²Π½ΡΠ΅ Π³ΡΠ°ΡΠΈΠΊΠΈ.
Π’ΠΎΠ»ΡΠΊΠΎ Π½Π°ΡΠ°Π»ΠΈ? ΠΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΠ΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΠ΅ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ.
Π ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅ΠΉ Π³Π»Π°Π²Π΅ ΠΌΡ ΡΠ·Π½Π°Π»ΠΈ, ΡΡΠΎ app.layout ΠΎΠΏΠΈΡΡΠ²Π°Π΅Ρ, ΠΊΠ°ΠΊ Π²ΡΠ³Π»ΡΠ΄ΠΈΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΠΈ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠ±ΠΎΠΉ ΠΈΠ΅ΡΠ°ΡΡ
ΠΈΡΠ΅ΡΠΊΠΎΠ΅ Π΄Π΅ΡΠ΅Π²ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ².
ΠΠΎΠ΄ΡΠ»Ρ Dash HTML Components ( dash.html ) ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΠΊΠ»Π°ΡΡΡ Π΄Π»Ρ Π²ΡΠ΅Ρ
ΡΠ΅Π³ΠΎΠ² HTML, Π° Π°ΡΠ³ΡΠΌΠ΅Π½ΡΡ ΠΊΠ»ΡΡΠ΅Π²ΠΎΠ³ΠΎ ΡΠ»ΠΎΠ²Π° ΠΎΠΏΠΈΡΡΠ²Π°ΡΡ Π°ΡΡΠΈΠ±ΡΡΡ HTML, ΡΠ°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ style , className ΠΈ id .
ΠΠΎΠ΄ΡΠ»Ρ Dash Core Components ( dash.dcc ) Π³Π΅Π½Π΅ΡΠΈΡΡΠ΅Ρ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ Π±ΠΎΠ»Π΅Π΅ Π²ΡΡΠΎΠΊΠΎΠ³ΠΎ ΡΡΠΎΠ²Π½Ρ, ΡΠ°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΈ Π³ΡΠ°ΡΠΈΠΊΠΈ.
Π ΡΡΠΎΠΉ Π³Π»Π°Π²Π΅ ΠΎΠΏΠΈΡΡΠ²Π°Π΅ΡΡΡ, ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Dash, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΎΠ±ΡΠ°ΡΠ½ΠΎΠ³ΠΎ Π²ΡΠ·ΠΎΠ²Π° : ΡΡΠ½ΠΊΡΠΈΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ Π²ΡΠ·ΡΠ²Π°ΡΡΡΡ Dash Π²ΡΡΠΊΠΈΠΉ ΡΠ°Π·, ΠΊΠΎΠ³Π΄Π° ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΡΡΡ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ Π²Ρ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°, ΡΡΠΎΠ±Ρ ΠΎΠ±Π½ΠΎΠ²ΠΈΡΡ ΠΊΠ°ΠΊΠΎΠ΅-ΡΠΎ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ Π² Π΄ΡΡΠ³ΠΎΠΌ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ΅ (Π²ΡΡ ΠΎΠ΄Π½ΠΎΠΌ).
ΠΠ»Ρ ΠΎΠΏΡΠΈΠΌΠ°Π»ΡΠ½ΠΎΠ³ΠΎ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΌ ΠΈ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ Π·Π°Π³ΡΡΠ·ΠΊΠΈ Π΄ΠΈΠ°Π³ΡΠ°ΠΌΠΌ ΡΠ°Π±ΠΎΡΠΈΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ
Dash Π΄ΠΎΠ»ΠΆΠ½Ρ ΡΡΠΈΡΡΠ²Π°ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΠΎΡΠ΅ΡΠ΅Π΄ΠΈ Π·Π°Π΄Π°Π½ΠΈΠΉ,
HPC, Datashader,
ΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ Π³ΠΎΡΠΈΠ·ΠΎΠ½ΡΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΠΌΠ°ΡΡΡΠ°Π±ΠΈΡΠΎΠ²Π°Π½ΠΈΡ Dash Enterprise.
ΠΠ°Π²Π°ΠΉΡΠ΅ Π½Π°ΡΠ½Π΅ΠΌ Ρ ΠΏΡΠΎΡΡΠΎΠ³ΠΎ ΠΏΡΠΈΠΌΠ΅ΡΠ° ΠΈΠ½ΡΠ΅ΡΠ°ΠΊΡΠΈΠ²Π½ΠΎΠ³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Dash.
ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Simple Interactive Dash
ΠΡΠ»ΠΈ Π²Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅ ΡΠ°Π±ΠΎΡΠ΅Π΅ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ Data Science Workspaces Dash Enterprise,
ΡΠΊΠΎΠΏΠΈΡΡΠΉΡΠ΅ ΠΈ Π²ΡΡΠ°Π²ΡΡΠ΅ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΡΠΉ Π½ΠΈΠΆΠ΅ ΠΊΠΎΠ΄ Π² ΡΠ²ΠΎΠ΅ ΡΠ°Π±ΠΎΡΠ΅Π΅ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ (ΡΠΌ. Π²ΠΈΠ΄Π΅ΠΎ).Π£Π·Π½Π°ΠΉΡΠ΅, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ Π»ΠΈ Π²Π°ΡΠ° ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΡ Dash Enterprise
ΠΈΠ· ΡΠΈΡΠ΅ ΠΈΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ ΡΠΈΡΠ΅, dcc, html, Π²Π²ΠΎΠ΄, Π²ΡΠ²ΠΎΠ΄
ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ = Π’ΠΈΡΠ΅ (__ΠΈΠΌΡ__)
app.layout = html.Div([
html.H6("ΠΠ·ΠΌΠ΅Π½ΠΈΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π² ΡΠ΅ΠΊΡΡΠΎΠ²ΠΎΠΌ ΠΏΠΎΠ»Π΅, ΡΡΠΎΠ±Ρ ΡΠ²ΠΈΠ΄Π΅ΡΡ ΠΎΠ±ΡΠ°ΡΠ½ΡΠ΅ Π²ΡΠ·ΠΎΠ²Ρ Π² Π΄Π΅ΠΉΡΡΠ²ΠΈΠΈ!"),
html.Div([
"ΠΡ
ΠΎΠ΄: ",
dcc.Input(id='my-input', value='Π½Π°ΡΠ°Π»ΡΠ½ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅', type='text')
]),
html.ΠΡ(),
html.Div(id='ΠΌΠΎΠΉ-Π²ΡΡ
ΠΎΠ΄'),
])
@app.callback(
ΠΡΡ
ΠΎΠ΄ (component_id = 'ΠΌΠΎΠΉ-Π²ΡΡ
ΠΎΠ΄', component_property = 'Π΄Π΅ΡΠΈ'),
ΠΡ
ΠΎΠ΄ (component_id = 'ΠΌΠΎΠΉ Π²Ρ
ΠΎΠ΄', component_property = 'Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅')
)
ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ update_output_div (Π²Ρ
ΠΎΠ΄Π½ΠΎΠ΅_Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅):
Π²Π΅ΡΠ½ΡΡΡ f'ΠΡΠ²ΠΎΠ΄: {input_value}'
Π΅ΡΠ»ΠΈ __name__ == '__main__':
app.
run_server(ΠΎΡΠ»Π°Π΄ΠΊΠ°=ΠΡΡΠΈΠ½Π°)
ΠΠ·ΠΌΠ΅Π½ΠΈΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π² ΡΠ΅ΠΊΡΡΠΎΠ²ΠΎΠΌ ΠΏΠΎΠ»Π΅, ΡΡΠΎΠ±Ρ ΡΠ²ΠΈΠ΄Π΅ΡΡ ΠΎΠ±ΡΠ°ΡΠ½ΡΠ΅ Π²ΡΠ·ΠΎΠ²Ρ Π² Π΄Π΅ΠΉΡΡΠ²ΠΈΠΈ!
ΠΡ ΠΎΠ΄:ΠΠ°Π²Π°ΠΉΡΠ΅ ΡΠ°Π·Π±Π΅ΡΠ΅ΠΌ ΡΡΠΎΡ ΠΏΡΠΈΠΌΠ΅Ρ:
- Β«ΠΡ
ΠΎΠ΄ΡΒ» ΠΈ Β«Π²ΡΡ
ΠΎΠ΄ΡΒ» Π½Π°ΡΠ΅Π³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΎΠΏΠΈΡΡΠ²Π°ΡΡΡΡ
ΠΊΠ°ΠΊ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΡ Π΄Π΅ΠΊΠΎΡΠ°ΡΠΎΡΠ°@app.callback.
Π£Π·Π½Π°ΠΉΡΠ΅ Π±ΠΎΠ»ΡΡΠ΅ ΠΎΠ± ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ Π΄Π΅ΠΊΠΎΡΠ°ΡΠΎΡΠ° @app.callback .
Π°. ΠΠ°ΠΏΠΈΡΠ°Π² ΡΡΠΎΡ Π΄Π΅ΠΊΠΎΡΠ°ΡΠΎΡ, ΠΌΡ ΠΏΡΠΎΡΠΈΠΌ Dash Π²ΡΠ·ΡΠ²Π°ΡΡ ΡΡΡ ΡΡΠ½ΠΊΡΠΈΡ Π΄Π»Ρ Π½Π°Ρ Π²ΡΡΠΊΠΈΠΉ ΡΠ°Π·, ΠΊΠΎΠ³Π΄Π° Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Β«Π²Ρ ΠΎΠ΄Π½ΠΎΠ³ΠΎΒ» ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ° (ΡΠ΅ΠΊΡΡΠΎΠ²ΠΎΠ³ΠΎ ΠΏΠΎΠ»Ρ) ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΡΡΡ, ΡΡΠΎΠ±Ρ ΠΎΠ±Π½ΠΎΠ²ΠΈΡΡ Π΄ΠΎΡΠ΅ΡΠ½ΠΈΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ Β«Π²ΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎΒ» ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ° Π½Π° ΡΡΡΠ°Π½ΠΈΡΠ΅ (ΡΠ»Π΅ΠΌΠ΅Π½Ρ HTML div). ).
Π±. ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π»ΡΠ±ΠΎΠ΅ ΠΈΠΌΡ Π΄Π»Ρ ΡΡΠ½ΠΊΡΠΈΠΈ, ΠΎΠ±Π΅ΡΠ½ΡΡΠΎΠΉ Π΄Π΅ΠΊΠΎΡΠ°ΡΠΎΡΠΎΠΌ @app.callback . Π‘ΠΎΠ³Π»Π°ΡΠ΅Π½ΠΈΠ΅ ΡΠΎΡΡΠΎΠΈΡ Π² ΡΠΎΠΌ, ΡΡΠΎ ΠΈΠΌΡ ΠΎΠΏΠΈΡΡΠ²Π°Π΅Ρ Π²ΡΡ
ΠΎΠ΄Π½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ ΠΎΠ±ΡΠ°ΡΠ½ΠΎΠ³ΠΎ Π²ΡΠ·ΠΎΠ²Π°.
Π². ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π»ΡΠ±ΠΎΠ΅ ΠΈΠΌΡ Π΄Π»Ρ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠ² ΡΡΠ½ΠΊΡΠΈΠΈ, Π½ΠΎ Π²Ρ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠ΅ ΠΆΠ΅ ΠΈΠΌΠ΅Π½Π° Π²Π½ΡΡΡΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΎΠ±ΡΠ°ΡΠ½ΠΎΠ³ΠΎ Π²ΡΠ·ΠΎΠ²Π°, ΡΡΠΎ ΠΈ Π² Π΅Π΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠΈ, ΠΊΠ°ΠΊ ΠΈ Π² ΠΎΠ±ΡΡΠ½ΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ Python.
ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΡ ΡΠ²Π»ΡΡΡΡΡ ΠΏΠΎΠ·ΠΈΡΠΈΠΎΠ½Π½ΡΠΌΠΈ: ΡΠ½Π°ΡΠ°Π»Π° ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² Π²Π²ΠΎΠ΄Π° , Π° Π·Π°ΡΠ΅ΠΌ Π»ΡΠ±ΡΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΡΠΎΡΡΠΎΡΠ½ΠΈΡ Π·Π°Π΄Π°ΡΡΡΡ Π² ΡΠΎΠΌ ΠΆΠ΅ ΠΏΠΎΡΡΠ΄ΠΊΠ΅, ΡΡΠΎ ΠΈ Π² Π΄Π΅ΠΊΠΎΡΠ°ΡΠΎΡΠ΅. Π£ Π²Π°Ρ ΡΠ°ΠΊΠΆΠ΅ Π΅ΡΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½ΡΠ΅ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΡ ΠΊΠ»ΡΡΠ΅Π²ΠΎΠ³ΠΎ ΡΠ»ΠΎΠ²Π° Π²ΠΌΠ΅ΡΡΠΎ ΠΏΠΎΠ·ΠΈΡΠΈΠΎΠ½Π½ΡΡ
. ΠΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΡΠΌ. Π² Π³Π»Π°Π²Π΅ Β«ΠΠΈΠ±ΠΊΠΈΠ΅ ΡΠΈΠ³Π½Π°ΡΡΡΡ ΠΎΠ±ΡΠ°ΡΠ½ΠΎΠ³ΠΎ Π²ΡΠ·ΠΎΠ²Π°Β».
Π΄. ΠΡ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠΎΡ ΠΆΠ΅ id , ΠΊΠΎΡΠΎΡΡΠΉ Π²Ρ ΡΠΊΠ°Π·Π°Π»ΠΈ Π΄Π»Ρ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ° Dash Π² app.layout , ΠΊΠΎΠ³Π΄Π° ΡΡΡΠ»Π°Π΅ΡΠ΅ΡΡ Π½Π° Π½Π΅Π³ΠΎ ΠΊΠ°ΠΊ Π½Π° Π²Π²ΠΎΠ΄ ΠΈΠ»ΠΈ Π²ΡΠ²ΠΎΠ΄ Π΄Π΅ΠΊΠΎΡΠ°ΡΠΎΡΠ° @app.callback .
ΡΠ». ΠΠ΅ΠΊΠΎΡΠ°ΡΠΎΡ @app.callback Π΄ΠΎΠ»ΠΆΠ΅Π½ Π½Π°Ρ
ΠΎΠ΄ΠΈΡΡΡΡ Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ Π½Π°Π΄ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΠ΅ΠΌ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΎΠ±ΡΠ°ΡΠ½ΠΎΠ³ΠΎ Π²ΡΠ·ΠΎΠ²Π°. ΠΡΠ»ΠΈ ΠΌΠ΅ΠΆΠ΄Ρ Π΄Π΅ΠΊΠΎΡΠ°ΡΠΎΡΠΎΠΌ ΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ΠΌ ΡΡΠ½ΠΊΡΠΈΠΈ Π΅ΡΡΡ ΠΏΡΡΡΠ°Ρ ΡΡΡΠΎΠΊΠ°, ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΡ ΠΎΠ±ΡΠ°ΡΠ½ΠΎΠ³ΠΎ Π²ΡΠ·ΠΎΠ²Π° Π½Π΅ Π±ΡΠ΄Π΅Ρ ΡΡΠΏΠ΅ΡΠ½ΠΎΠΉ.
Ρ. ΠΡΠ»ΠΈ Π²Π°ΠΌ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΠΎ, ΡΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ Π΄Π΅ΠΊΠΎΡΠ°ΡΠΎΡΠ° ΠΏΠΎΠ΄ ΠΊΠ°ΠΏΠΎΡΠΎΠΌ, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΡΠΎΡΠΈΡΠ°ΡΡ ΡΡΠΎΡ ΠΎΡΠ²Π΅Ρ StackOverflow ΠΈ ΡΠ·Π½Π°ΡΡ Π±ΠΎΠ»ΡΡΠ΅ ΠΎ Π΄Π΅ΠΊΠΎΡΠ°ΡΠΎΡΠ°Ρ
, ΠΏΡΠΎΡΠΈΡΠ°Π² PEP 318 β ΠΠ΅ΠΊΠΎΡΠ°ΡΠΎΡΡ Π΄Π»Ρ ΡΡΠ½ΠΊΡΠΈΠΉ ΠΈ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ².
- Π Dash Π²Ρ
ΠΎΠ΄Ρ ΠΈ Π²ΡΡ
ΠΎΠ΄Ρ Π½Π°ΡΠ΅Π³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ β ΡΡΠΎ ΠΏΡΠΎΡΡΠΎ
ΡΠ²ΠΎΠΉΡΡΠ²Π° ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°. Π ΡΡΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅
Π½Π°Ρ Π²Π²ΠΎΠ΄ β ΡΡΠΎ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ Β«valueΒ» ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ° Ρ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠΎΠΌ
Β«my-inputΒ». ΠΠ°ΡΠΈΠΌ Π²ΡΡ ΠΎΠ΄ΠΎΠΌ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ Β«Π΄Π΅ΡΠ΅ΠΉΒ» ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°
Ρ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠΎΠΌ Β«my-outputΒ». - ΠΡΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ Π²Ρ
ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΡΠ²ΠΎΠΉΡΡΠ²Π° Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ Π²ΡΠ·ΡΠ²Π°Π΅ΡΡΡ ΡΡΠ½ΠΊΡΠΈΡ, ΠΊΠΎΡΠΎΡΡΡ ΠΎΠ±Π΅ΡΡΡΠ²Π°Π΅Ρ Π΄Π΅ΠΊΠΎΡΠ°ΡΠΎΡ ΠΎΠ±ΡΠ°ΡΠ½ΠΎΠ³ΠΎ Π²ΡΠ·ΠΎΠ²Π°
.
Dash ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΡΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΎΠ±ΡΠ°ΡΠ½ΠΎΠ³ΠΎ Π²ΡΠ·ΠΎΠ²Π° Π½ΠΎΠ²ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π²Ρ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΡΠ²ΠΎΠΉΡΡΠ²Π° Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ°
, Π° Dash ΠΎΠ±Π½ΠΎΠ²Π»ΡΠ΅Ρ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ Π²ΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°
ΡΠ΅ΠΌ, ΡΡΠΎ Π±ΡΠ»ΠΎ Π²ΠΎΠ·Π²ΡΠ°ΡΠ΅Π½ΠΎ ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉ. - ΠΠ»ΡΡΠ΅Π²ΡΠ΅ ΡΠ»ΠΎΠ²Π°
component_idΠΈcomponent_propertyΡΠ²Π»ΡΡΡΡΡ Π½Π΅ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΡΠΌΠΈ
(Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΈΠ· ΡΡΠΈΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² Π΅ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π΄Π²Π° Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ°).
ΠΠ½ΠΈ Π²ΠΊΠ»ΡΡΠ΅Π½Ρ Π² ΡΡΠΎΡ ΠΏΡΠΈΠΌΠ΅Ρ Π΄Π»Ρ ΡΡΠ½ΠΎΡΡΠΈ, Π½ΠΎ Π±ΡΠ΄ΡΡ ΠΎΠΏΡΡΠ΅Π½Ρ Π² ΠΎΡΡΠ°Π»ΡΠ½ΠΎΠΉ ΡΠ°ΡΡΠΈ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ Π΄Π»Ρ ΠΊΡΠ°ΡΠΊΠΎΡΡΠΈ ΠΈ ΡΠ΄ΠΎΠ±ΠΎΡΠΈΡΠ°Π΅ΠΌΠΎΡΡΠΈ.
- ΠΠ΅ ΠΏΡΡΠ°ΠΉΡΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡ
dash.dependencies.InputΠΈ ΠΎΠ±ΡΠ΅ΠΊΡdcc.Input. ΠΠ΅ΡΠ²ΡΠΉ ΠΏΡΠΎΡΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π² ΡΡΠΈΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡΡ ΠΎΠ±ΡΠ°ΡΠ½ΠΎΠ³ΠΎ Π²ΡΠ·ΠΎΠ²Π°, Π° Π²ΡΠΎΡΠΎΠΉ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΠΌ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠΌ. - ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ ΠΌΡ Π½Π΅ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΠ»ΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΠ²ΠΎΠΉΡΡΠ²Π°
childrenΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°
my-outputΠ² ΠΌΠ°ΠΊΠ΅ΡΠ΅. ΠΠΎΠ³Π΄Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Dash Π·Π°ΠΏΡΡΠΊΠ°Π΅ΡΡΡ, ΠΎΠ½ΠΎ
Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ Π²ΡΠ·ΡΠ²Π°Π΅Ρ Π²ΡΠ΅ ΠΎΠ±ΡΠ°ΡΠ½ΡΠ΅ Π²ΡΠ·ΠΎΠ²Ρ Ρ Π½Π°ΡΠ°Π»ΡΠ½ΡΠΌΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΡΠΌΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ² Π²Π²ΠΎΠ΄Π°
, ΡΡΠΎΠ±Ρ Π·Π°ΠΏΠΎΠ»Π½ΠΈΡΡ Π½Π°ΡΠ°Π»ΡΠ½ΠΎΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ Π²ΡΠ²ΠΎΠ΄Π° 9ΠΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ 0094. Π ΡΡΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅, Π΅ΡΠ»ΠΈ Π²Ρ ΡΠΊΠ°Π·Π°Π»ΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ div ΠΊΠ°ΠΊ
html.Div(id='my-output', children='Hello world'),
, ΠΎΠ½ Π±ΡΠ΄Π΅Ρ ΠΏΠ΅ΡΠ΅Π·Π°ΠΏΠΈΡΠ°Π½ ΠΏΡΠΈ Π·Π°ΠΏΡΡΠΊΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ.
ΠΡΠΎ ΠΏΠΎΡ
ΠΎΠΆΠ΅ Π½Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π² Microsoft Excel:
Π²ΡΡΠΊΠΈΠΉ ΡΠ°Π·, ΠΊΠΎΠ³Π΄Π° ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΡΡΡ ΡΡΠ΅ΠΉΠΊΠ° (Π²Π²ΠΎΠ΄), Π²ΡΠ΅ ΡΡΠ΅ΠΉΠΊΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ Π·Π°Π²ΠΈΡΡΡ ΠΎΡ ΡΡΠΎΠΉ ΡΡΠ΅ΠΉΠΊΠΈ (Π²ΡΠ²ΠΎΠ΄Ρ)
, Π±ΡΠ΄ΡΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΎΠ±Π½ΠΎΠ²Π»ΡΡΡΡΡ. ΠΡΠΎ Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ Β«ΡΠ΅Π°ΠΊΡΠΈΠ²Π½ΡΠΌ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ΠΌΒ», ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ Π²ΡΡ
ΠΎΠ΄Ρ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΡΠ΅Π°Π³ΠΈΡΡΡΡ Π½Π° ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π½Π° Π²Ρ
ΠΎΠ΄Π°Ρ
.
ΠΠΎΠΌΠ½ΠΈΡΠ΅, ΠΊΠ°ΠΊ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ ΠΎΠΏΠΈΡΡΠ²Π°Π΅ΡΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ
Π½Π°Π±ΠΎΡΠΎΠ² ΠΊΠ»ΡΡΠ΅Π²ΡΡ
ΡΠ»ΠΎΠ²? Π’Π΅ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΡ Π·Π°Π΄Π°Π»ΠΈ Π²
Python, ΡΡΠ°Π½ΠΎΠ²ΡΡΡΡ ΡΠ²ΠΎΠΉΡΡΠ²Π°ΠΌΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°,
ΠΈ ΡΡΠΈ ΡΠ²ΠΎΠΉΡΡΠ²Π° ΡΠ΅ΠΉΡΠ°Ρ Π²Π°ΠΆΠ½Ρ.
ΠΠ»Π°Π³ΠΎΠ΄Π°ΡΡ ΠΈΠ½ΡΠ΅ΡΠ°ΠΊΡΠΈΠ²Π½ΠΎΡΡΠΈ Dash ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈ ΠΎΠ±Π½ΠΎΠ²Π»ΡΡΡ Π»ΡΠ±ΠΎΠ΅ ΠΈΠ· ΡΡΠΈΡ
ΡΠ²ΠΎΠΉΡΡΠ²
Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΎΠ±ΡΠ°ΡΠ½ΡΡ
Π²ΡΠ·ΠΎΠ²ΠΎΠ². Π§Π°ΡΡΠΎ ΠΌΡ Π±ΡΠ΄Π΅ΠΌ ΠΎΠ±Π½ΠΎΠ²Π»ΡΡΡ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ Π΄ΠΎΡΠ΅ΡΠ½ΠΈΡ
ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ² HTML
Π΄Π»Ρ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΡΠ΅ΠΊΡΡΠ° (ΠΏΠΎΠΌΠ½ΠΈΡΠ΅, ΡΡΠΎ Π΄ΠΎΡΠ΅ΡΠ½ΠΈΡ
ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΠΎΡΠ²Π΅ΡΠ°Π΅Ρ Π·Π° ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°) ΠΈΠ»ΠΈ ΡΠΈΡΡΠ½ΠΎΠΊ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ° dcc.Graph
Π΄Π»Ρ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ Π½ΠΎΠ²ΡΡ
Π΄Π°Π½Π½ΡΡ
. ΠΡ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅ΠΌ ΠΎΠ±Π½ΠΎΠ²ΠΈΡΡ ΡΡΠΈΠ»Ρ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°
ΠΈΠ»ΠΈ Π΄Π°ΠΆΠ΅ Π΄ΠΎΡΡΡΠΏΠ½ΡΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ° dcc.Dropdown !
ΠΠ°Π²Π°ΠΉΡΠ΅ ΠΏΠΎΡΠΌΠΎΡΡΠΈΠΌ Π½Π° Π΄ΡΡΠ³ΠΎΠΉ ΠΏΡΠΈΠΌΠ΅Ρ, Π³Π΄Π΅ dcc.Slider ΠΎΠ±Π½ΠΎΠ²Π»ΡΠ΅Ρ
dcc.Graph .
ΠΠ°ΠΊΠ΅Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Dash Ρ ΡΠΈΡΡΠ½ΠΊΠΎΠΌ ΠΈ ΠΏΠΎΠ»Π·ΡΠ½ΠΊΠΎΠΌ
ΠΈΠ· ΠΈΠΌΠΏΠΎΡΡΠ° ΡΠΈΡΠ΅ Dash, dcc, html, Π²Π²ΠΎΠ΄, Π²ΡΠ²ΠΎΠ΄ ΠΈΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ plotly.express ΠΊΠ°ΠΊ px ΠΈΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ ΠΏΠ°Π½Π΄ ΠΊΠ°ΠΊ pd df = pd.read_csv('https://raw.githubusercontent.com/plotly/datasets/master/gapminderDataFiveYear.csv') ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ = Π’ΠΈΡΠ΅ (__ΠΈΠΌΡ__) app.layout = html.Div([ dcc.Graph(id='Π³ΡΠ°ΡΠΈΠΊ-Ρ-ΠΏΠΎΠ»Π·ΡΠ½ΠΊΠΎΠΌ'), dcc.Slider( Π΄Ρ['Π³ΠΎΠ΄'].ΠΌΠΈΠ½(), df['Π³ΠΎΠ΄'].max(), ΡΠ°Π³ = Π½Π΅Ρ, Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ = df['Π³ΠΎΠ΄'].min(), mark={str(year): str(year) Π΄Π»Ρ Π³ΠΎΠ΄Π° Π² df['year'].unique()}, ) ]) @app.callback( ΠΡΠ²ΠΎΠ΄('Π³ΡΠ°ΡΠΈΠΊ-Ρ-ΠΏΠΎΠ»Π·ΡΠ½ΠΊΠΎΠΌ', 'ΡΠΈΡΡΠ½ΠΎΠΊ'), ΠΠ²ΠΎΠ΄('Π³ΠΎΠ΄-ΠΏΠΎΠ»Π·ΡΠ½ΠΎΠΊ', 'Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅')) def update_figure (Π²ΡΠ±ΡΠ°Π½Π½ΡΠΉ_Π³ΠΎΠ΄): filtered_df = df[df.year == selected_year] ΡΠΈΡ = px.scatter(filtered_df, x="gdpPercap", y="lifeExp", ΡΠ°Π·ΠΌΠ΅Ρ = "ΠΏΠΎΠΏ", ΡΠ²Π΅Ρ = "ΠΊΠΎΠ½ΡΠΈΠ½Π΅Π½Ρ", hover_name = "ΡΡΡΠ°Π½Π°", log_x = ΠΡΡΠΈΠ½Π°, size_max = 55) fig.update_layout(transition_duration=500) Π²Π΅ΡΠ½ΡΡΡ ΠΈΠ½ΠΆΠΈΡ Π΅ΡΠ»ΠΈ __name__ == '__main__': app.run_server(ΠΎΡΠ»Π°Π΄ΠΊΠ°=ΠΡΡΠΈΠ½Π°)
Π’Π΅ΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΠΎΡΠΎΡΠΌΠ»Π΅Π½ΠΈΠ΅ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Dash Enterprise Design Kit
Π’Π΅ΠΌΠ° ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ
Π’Π΅ΠΌΠ° Mars
Π’Π΅ΠΌΠ° Neptune
Π’Π΅ΠΌΠ° Miller
Π’Π΅ΠΌΠ° Extrasolar
ΠΡΠ΅Π΄ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π½ΡΠ΅ ΡΠ΅ΠΌΡ
Π ΡΡΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ "Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅" dcc. ΡΠ²Π»ΡΠ΅ΡΡΡ Π²Ρ
ΠΎΠ΄ΠΎΠΌ
Slider
ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, Π° Π²ΡΡ
ΠΎΠ΄ΠΎΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ "ΡΠΈΡΡΠ°"
dcc.Graph .
ΠΡΡΠΊΠΈΠΉ ΡΠ°Π·, ΠΊΠΎΠ³Π΄Π° Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ dcc.Slider ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΡΡΡ, Dash Π²ΡΠ·ΡΠ²Π°Π΅Ρ ΡΡΠ½ΠΊΡΠΈΡ ΠΎΠ±ΡΠ°ΡΠ½ΠΎΠ³ΠΎ Π²ΡΠ·ΠΎΠ²Π°
update_figure Ρ Π½ΠΎΠ²ΡΠΌ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ΠΌ. Π€ΡΠ½ΠΊΡΠΈΡ ΡΠΈΠ»ΡΡΡΡΠ΅Ρ ΠΊΠ°Π΄Ρ Π΄Π°Π½Π½ΡΡ
Ρ ΡΡΠΈΠΌ Π½ΠΎΠ²ΡΠΌ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ΠΌ, ΡΠΎΠ·Π΄Π°Π΅Ρ ΠΎΠ±ΡΠ΅ΠΊΡ ΡΠΈΠ³ΡΡΠ° ,
ΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ Π΅Π³ΠΎ Π² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Dash.
Π ΡΡΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ Π΅ΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Ρ ΠΎΡΠΎΡΠΈΡ ΡΠ°Π±Π»ΠΎΠ½ΠΎΠ²:
- ΠΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ Pandas Π΄Π»Ρ
Π·Π°Π³ΡΡΠ·ΠΊΠΈ Π½Π°ΡΠ΅Π³ΠΎ ΡΡΠ΅ΠΉΠΌΠ° Π΄Π°Π½Π½ΡΡ Π² Π½Π°ΡΠ°Π»Π΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ:
df = pd.read_csv('...').
ΠΡΠΎΡ ΠΊΠ°Π΄Ρ Π΄Π°Π½Π½ΡΡdfΠ½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ Π² Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΠΎΠΌ ΡΠΎΡΡΠΎΡΠ½ΠΈΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΈ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ
ΠΏΡΠΎΡΠΈΡΠ°Π½ Π²Π½ΡΡΡΠΈ ΡΡΠ½ΠΊΡΠΈΠΉ ΠΎΠ±ΡΠ°ΡΠ½ΠΎΠ³ΠΎ Π²ΡΠ·ΠΎΠ²Π°. - ΠΠ°Π³ΡΡΠ·ΠΊΠ° Π΄Π°Π½Π½ΡΡ
Π² ΠΏΠ°ΠΌΡΡΡ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π΄ΠΎΡΠΎΠ³ΠΎΡΡΠΎΡΡΠ΅ΠΉ. ΠΠ°Π³ΡΡΠΆΠ°Ρ Π΄Π°Π½Π½ΡΠ΅ Π·Π°ΠΏΡΠΎΡΠ° Π²
ΠΏΡΠΈ Π·Π°ΠΏΡΡΠΊΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, Π° Π½Π΅ Π²Π½ΡΡΡΠΈ ΡΡΠ½ΠΊΡΠΈΠΉ ΠΎΠ±ΡΠ°ΡΠ½ΠΎΠ³ΠΎ Π²ΡΠ·ΠΎΠ²Π°, ΠΌΡ Π³Π°ΡΠ°Π½ΡΠΈΡΡΠ΅ΠΌ
, ΡΡΠΎ ΡΡΠ° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄ΠΈΠ½ ΡΠ°Π· β ΠΏΡΠΈ Π·Π°ΠΏΡΡΠΊΠ΅ ΡΠ΅ΡΠ²Π΅ΡΠ° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ.
ΠΠΎΠ³Π΄Π° ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ
ΠΏΠΎΡΠ΅ΡΠ°Π΅Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΈΠ»ΠΈ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΡΠ΅Ρ Ρ Π½ΠΈΠΌ, ΡΡΠΈ Π΄Π°Π½Π½ΡΠ΅ (df) ΡΠΆΠ΅ Π½Π°Ρ ΠΎΠ΄ΡΡΡΡ Π² ΠΏΠ°ΠΌΡΡΠΈ.
ΠΡΠ»ΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π΄ΠΎΡΠΎΠ³ΠΎΡΡΠΎΡΡΠ°Ρ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π·Π°Π³ΡΡΠ·ΠΊΠ° ΠΈΠ»ΠΈ Π·Π°ΠΏΡΠΎΡ
data) ΡΠ»Π΅Π΄ΡΠ΅Ρ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ Π² Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΠΎΠΉ ΠΎΠ±Π»Π°ΡΡΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, Π° Π½Π΅ Π² ΠΏΡΠ΅Π΄Π΅Π»Π°Ρ
ΡΡΠ½ΠΊΡΠΈΠΉ ΠΎΠ±ΡΠ°ΡΠ½ΠΎΠ³ΠΎ Π²ΡΠ·ΠΎΠ²Π°. - ΠΠ±ΡΠ°ΡΠ½ΡΠΉ Π²ΡΠ·ΠΎΠ² Π½Π΅ ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅Ρ ΠΈΡΡ
ΠΎΠ΄Π½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅, ΠΎΠ½ ΡΠΎΠ»ΡΠΊΠΎ ΡΠΎΠ·Π΄Π°Π΅Ρ ΠΊΠΎΠΏΠΈΠΈ
ΡΡΠ΅ΠΉΠΌΠ° Π΄Π°Π½Π½ΡΡ ΠΏΡΡΠ΅ΠΌ ΡΠΈΠ»ΡΡΡΠ°ΡΠΈΠΈ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ pandas.
ΠΡΠΎ Π²Π°ΠΆΠ½ΠΎ: Π²Π°ΡΠΈ ΠΎΠ±ΡΠ°ΡΠ½ΡΠ΅ Π²ΡΠ·ΠΎΠ²Ρ Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΈΠ·ΠΌΠ΅Π½ΡΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅
Π·Π° ΠΏΡΠ΅Π΄Π΅Π»Π°ΠΌΠΈ ΠΈΡ ΠΎΠ±Π»Π°ΡΡΠΈ . ΠΡΠ»ΠΈ Π²Π°ΡΠΈ ΠΎΠ±ΡΠ°ΡΠ½ΡΠ΅ Π²ΡΠ·ΠΎΠ²Ρ ΠΈΠ·ΠΌΠ΅Π½ΡΡΡ Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΠΎΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅, ΡΠΎ
ΡΠ΅Π°Π½Ρ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠ²Π»ΠΈΡΡΡ Π½Π° ΡΠ΅Π°Π½Ρ
ΡΠ»Π΅Π΄ΡΡΡΠ΅Π³ΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ, ΠΈ ΠΊΠΎΠ³Π΄Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΡΠ°Π·Π²Π΅ΡΠ½ΡΡΠΎ Π² Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΠΏΡΠΎΡΠ΅ΡΡΠ°Ρ ΠΈΠ»ΠΈ ΠΏΠΎΡΠΎΠΊΠ°Ρ , ΡΡΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π½Π΅ Π±ΡΠ΄ΡΡ
Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ.0094 Π΄Π»Ρ ΡΠΎΠ²ΠΌΠ΅ΡΡΠ½ΠΎΠ³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΌΠ΅ΠΆΠ΄Ρ ΡΠ΅Π°Π½ΡΠ°ΠΌΠΈ. - ΠΡ Π²ΠΊΠ»ΡΡΠ°Π΅ΠΌ ΠΏΠ΅ΡΠ΅Ρ
ΠΎΠ΄Ρ Ρ ΠΏΠΎΠΌΠΎΡΡΡ
layout.transition, ΡΡΠΎΠ±Ρ Π΄Π°ΡΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΎ ΡΠΎΠΌ,
ΠΊΠ°ΠΊ Π½Π°Π±ΠΎΡ Π΄Π°Π½Π½ΡΡ ΡΠ°Π·Π²ΠΈΠ²Π°Π΅ΡΡΡ ΡΠΎ Π²ΡΠ΅ΠΌΠ΅Π½Π΅ΠΌ: ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄Ρ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ ΠΏΠ»Π°Π²Π½ΠΎ ΠΎΠ±Π½ΠΎΠ²Π»ΡΡΡ
Π΄ΠΈΠ°Π³ΡΠ°ΠΌΠΌΡ ΠΈΠ· ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ Π² Π΄ΡΡΠ³ΠΎΠ΅, ΠΊΠ°ΠΊ Π΅ΡΠ»ΠΈ Π±Ρ ΠΎΠ½Π° Π±ΡΠ»Π° Π°Π½ΠΈΠΌΠΈΡΠΎΠ²Π°Π½Π°.
ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Dash Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΠΌΠΈ Π²Ρ ΠΎΠ΄Π°ΠΌΠΈ
Π Dash Π»ΡΠ±ΠΎΠΉ Β«Π²ΡΡ
ΠΎΠ΄Β» ΠΌΠΎΠΆΠ΅Ρ ΠΈΠΌΠ΅ΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Β«Π²Ρ
ΠΎΠ΄Π½ΡΡ
Β» ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ².
ΠΠΎΡ ΠΏΡΠΎΡΡΠΎΠΉ ΠΏΡΠΈΠΌΠ΅Ρ, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠ²ΡΠ·ΡΠ²Π°Π΅Ρ ΠΏΡΡΡ Π²Ρ
ΠΎΠ΄ΠΎΠ²
(ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π΄Π²ΡΡ
DCC.Dropdown ΠΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ,
Π΄Π²Π° DCC.RadioItems ΠΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ ΠΈ ΠΎΠ΄ΠΈΠ½ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ DCC.Slider )
ΠΊ ΠΎΠ΄Π½ΠΎΠΌΡ Π²ΡΠ²ΠΎΠ΄Π½ΠΎΠΌΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ ( Π ΠΈΡΡΠ½ΠΎΠΊ ΡΠ²ΠΎΠΉΡΡΠ²Π° DCC.Graph ).
ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ app.callback ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»ΡΠ΅Ρ Π²ΡΠ΅ ΠΏΡΡΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² Input ΠΏΠΎΡΠ»Π΅ Output .
ΠΈΠ· ΡΠΈΡΠ΅ ΠΈΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ ΡΠΈΡΠ΅, dcc, html, Π²Π²ΠΎΠ΄, Π²ΡΠ²ΠΎΠ΄
ΠΈΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ plotly.express ΠΊΠ°ΠΊ px
ΠΈΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ ΠΏΠ°Π½Π΄ ΠΊΠ°ΠΊ pd
ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ = Π’ΠΈΡΠ΅ (__ΠΈΠΌΡ__)
df = pd.read_csv('https://plotly.github.io/datasets/country_indicators.csv')
app.layout = html.Div([
html.Div([
html.Div([
dcc.Dropdown(
df['ΠΠΌΡ ΠΈΠ½Π΄ΠΈΠΊΠ°ΡΠΎΡΠ°'].unique(),
Β«ΠΠΎΡΡΡΠΈΡΠΈΠ΅Π½Ρ ΡΠΎΠΆΠ΄Π°Π΅ΠΌΠΎΡΡΠΈ, Π²ΡΠ΅Π³ΠΎ (ΡΠΎΠΆΠ΄Π΅Π½ΠΈΠΉ Π½Π° ΠΎΠ΄Π½Ρ ΠΆΠ΅Π½ΡΠΈΠ½Ρ)Β»,
),
dcc.
RadioItems(
['ΠΠΈΠ½Π΅ΠΉΠ½ΡΠΉ', 'ΠΡΡΠ½Π°Π»'],
Β«ΠΠΈΠ½Π΅ΠΉΠ½ΡΠΉΒ»,
,
Π²ΡΡΡΠΎΠ΅Π½Π½ΡΠΉ = ΠΡΡΠΈΠ½Π°
)
], style={'width': '48%', 'display': 'inline-block'}),
html.Div([
dcc.Dropdown(
df['ΠΠΌΡ ΠΈΠ½Π΄ΠΈΠΊΠ°ΡΠΎΡΠ°'].unique(),
Β«ΠΠΆΠΈΠ΄Π°Π΅ΠΌΠ°Ρ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ ΠΆΠΈΠ·Π½ΠΈ ΠΏΡΠΈ ΡΠΎΠΆΠ΄Π΅Π½ΠΈΠΈ, Π²ΡΠ΅Π³ΠΎ (Π»Π΅Ρ)Β»,
),
dcc.RadioItems(
['ΠΠΈΠ½Π΅ΠΉΠ½ΡΠΉ', 'ΠΡΡΠ½Π°Π»'],
Β«ΠΠΈΠ½Π΅ΠΉΠ½ΡΠΉΒ»,
,
Π²ΡΡΡΠΎΠ΅Π½Π½ΡΠΉ = ΠΡΡΠΈΠ½Π°
)
], style={'width': '48%', 'float': 'right', 'display': 'inline-block'})
]),
dcc.Graph(id='Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΈΠ½Π΄ΠΈΠΊΠ°ΡΠΎΡ'),
dcc.Slider(
df['ΠΠΎΠ΄'].min(),
df['ΠΠΎΠ΄'].max(),
ΡΠ°Π³ = Π½Π΅Ρ,
,
Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ = df['ΠΠΎΠ΄'].max(),
mark={str(year): str(year) Π΄Π»Ρ Π³ΠΎΠ΄Π° Π² df['Year'].unique()},
)
])
@app.callback(
ΠΡΠ²ΠΎΠ΄('ΠΈΠ½Π΄ΠΈΠΊΠ°ΡΠΎΡ-Π³ΡΠ°ΡΠΈΠΊ', 'ΡΠΈΡΡΠ°'),
ΠΠ²ΠΎΠ΄('xaxis-ΡΡΠΎΠ»Π±Π΅Ρ', 'Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅'),
ΠΠ²ΠΎΠ΄('ΠΎΡΡ Y-ΡΡΠΎΠ»Π±Π΅Ρ', 'Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅'),
ΠΠ²ΠΎΠ΄ (Β«ΡΠΈΠΏ ΠΎΡΠΈ XΒ», Β«Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅Β»),
ΠΠ²ΠΎΠ΄('ΡΠΈΠΏ ΠΎΡΠΈ Y', 'Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅'),
ΠΠ²ΠΎΠ΄('Π³ΠΎΠ΄ -- ΠΏΠΎΠ»Π·ΡΠ½ΠΎΠΊ', 'Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅'))
def update_graph (xaxis_column_name, yaxis_column_name,
xaxis_type, yaxis_type,
Π³ΠΎΠ΄_Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅):
dff = df[df['Year'] == year_value]
fig = px.
scatter(x=dff[dff['ΠΠΌΡ ΠΈΠ½Π΄ΠΈΠΊΠ°ΡΠΎΡΠ°'] == xaxis_column_name]['ΠΠ½Π°ΡΠ΅Π½ΠΈΠ΅'],
y=dff[dff['ΠΠΌΡ ΠΈΠ½Π΄ΠΈΠΊΠ°ΡΠΎΡΠ°'] == yaxis_column_name]['ΠΠ½Π°ΡΠ΅Π½ΠΈΠ΅'],
hover_name=dff[dff['ΠΠΌΡ ΠΈΠ½Π΄ΠΈΠΊΠ°ΡΠΎΡΠ°'] == yaxis_column_name]['ΠΠ°Π·Π²Π°Π½ΠΈΠ΅ ΡΡΡΠ°Π½Ρ'])
fig.update_layout(margin={'l': 40, 'b': 40, 't': 10, 'r': 0}, hovermode='Π±Π»ΠΈΠΆΠ°ΠΉΡΠΈΠΉ')
fig.update_xaxes(title=xaxis_column_name,
type='linear', Π΅ΡΠ»ΠΈ xaxis_type == 'Linear', ΠΈΠ½Π°ΡΠ΅ 'log')
fig.update_yaxes(title=yaxis_column_name,
type='linear', Π΅ΡΠ»ΠΈ yaxis_type == 'Linear', ΠΈΠ½Π°ΡΠ΅ 'log')
Π²Π΅ΡΠ½ΡΡΡ ΠΈΠ½ΠΆΠΈΡ
Π΅ΡΠ»ΠΈ __name__ == '__main__':
app.run_server(ΠΎΡΠ»Π°Π΄ΠΊΠ°=ΠΡΡΠΈΠ½Π°)
Π’Π΅ΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΠΎΡΠΎΡΠΌΠ»Π΅Π½ΠΈΠ΅ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Dash Enterprise Design Kit
Π’Π΅ΠΌΠ° ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ
Π’Π΅ΠΌΠ° Mars
Π’Π΅ΠΌΠ° Neptune
Π’Π΅ΠΌΠ° Miller
Π’Π΅ΠΌΠ° Extrasolar
Π Π΅Π΄Π°ΠΊΡΠΎΡ ΡΠ΅ΠΌ Design Kit
Π ΡΡΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΎΠ±ΡΠ°ΡΠ½ΡΠΉ Π²ΡΠ·ΠΎΠ² Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ Π²ΡΡΠΊΠΈΠΉ ΡΠ°Π·, ΠΊΠΎΠ³Π΄Π° ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΡΡΡ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ value Π»ΡΠ±ΠΎΠ³ΠΎ ΠΈΠ· ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ²
dcc. ,
Dropdown dcc.Slider ,
ΠΈΠ»ΠΈ dcc.RadioItems .
ΠΡ
ΠΎΠ΄Π½ΡΠΌΠΈ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ°ΠΌΠΈ ΠΎΠ±ΡΠ°ΡΠ½ΠΎΠ³ΠΎ Π²ΡΠ·ΠΎΠ²Π° ΡΠ²Π»ΡΡΡΡΡ ΡΠ΅ΠΊΡΡΠΈΠ΅
Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΈΠ· Β«Π²Ρ
ΠΎΠ΄Π½ΡΡ
Β» ΡΠ²ΠΎΠΉΡΡΠ² Π² ΡΠΎΠΌ ΠΏΠΎΡΡΠ΄ΠΊΠ΅, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΎΠ½ΠΈ Π±ΡΠ»ΠΈ ΡΠΊΠ°Π·Π°Π½Ρ
.
ΠΠ΅ΡΠΌΠΎΡΡΡ Π½Π° ΡΠΎ, ΡΡΠΎ ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄ΠΈΠ½ Π²Π²ΠΎΠ΄ (Ρ. Π΅. ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΌΠΎΠΆΠ΅Ρ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ
Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄Π½ΠΎΠ³ΠΎ Π²ΡΠΏΠ°Π΄Π°ΡΡΠ΅Π³ΠΎ ΡΠΏΠΈΡΠΊΠ° Π² Π΄Π°Π½Π½ΡΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ), Dash ΡΠΎΠ±ΠΈΡΠ°Π΅Ρ
ΡΠ΅ΠΊΡΡΠ΅Π΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ Π²ΡΠ΅Ρ
ΡΠΊΠ°Π·Π°Π½Π½ΡΡ
Π²Ρ
ΠΎΠ΄Π½ΡΡ
ΡΠ²ΠΎΠΉΡΡΠ² ΠΈ ΠΏΠ΅ΡΠ΅Π΄Π°Π΅Ρ ΠΈΡ
Π² ΡΡΠ½ΠΊΡΠΈΡ ΠΎΠ±ΡΠ°ΡΠ½ΠΎΠ³ΠΎ Π²ΡΠ·ΠΎΠ²Π°. ΠΡΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΎΠ±ΡΠ°ΡΠ½ΠΎΠ³ΠΎ Π²ΡΠ·ΠΎΠ²Π° Π²ΡΠ΅Π³Π΄Π° Π³Π°ΡΠ°Π½ΡΠΈΡΠΎΠ²Π°Π½Ρ
, ΡΡΠΎΠ±Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½Π½ΠΎΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ.
ΠΠ°Π²Π°ΠΉΡΠ΅ ΡΠ°ΡΡΠΈΡΠΈΠΌ Π½Π°Ρ ΠΏΡΠΈΠΌΠ΅Ρ, Π²ΠΊΠ»ΡΡΠΈΠ² Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π²ΡΡ ΠΎΠ΄ΠΎΠ².
ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Dash Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΠΌΠΈ Π²ΡΡ ΠΎΠ΄Π°ΠΌΠΈ
ΠΠΎ ΡΠΈΡ
ΠΏΠΎΡ Π²ΡΠ΅ Π½Π°ΠΏΠΈΡΠ°Π½Π½ΡΠ΅ Π½Π°ΠΌΠΈ ΠΎΠ±ΡΠ°ΡΠ½ΡΠ΅ Π²ΡΠ·ΠΎΠ²Ρ ΠΎΠ±Π½ΠΎΠ²Π»ΡΠ»ΠΈ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄Π½ΠΎ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ ΠΡΠ΅Π΄ΠΎΡΡΠ΅ΡΠ΅ΠΆΠ΅Π½ΠΈΠ΅: Π½Π΅ Π²ΡΠ΅Π³Π΄Π° Ρ
ΠΎΡΠΎΡΠ°Ρ ΠΈΠ΄Π΅Ρ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½ΡΡΡ Π²ΡΡ
ΠΎΠ΄Ρ, Π΄Π°ΠΆΠ΅ Π΅ΡΠ»ΠΈ ΠΡ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½ΠΈΡΡ Π²ΡΡ
ΠΎΠ΄Π½ΡΠ΅ ΠΈ Π²Ρ
ΠΎΠ΄Π½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅: Π²ΡΡ
ΠΎΠ΄Π½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ ΠΎΠ΄Π½ΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΎΠ±ΡΠ°ΡΠ½ΠΎΠ³ΠΎ Π²ΡΠ·ΠΎΠ²Π° ΠΡΠΎΡ ΡΠ°Π±Π»ΠΎΠ½ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈΡ
ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΡ
ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠ², Π³Π΄Π΅, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΎΠ΄ΠΈΠ½ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ Π²Π²ΠΎΠ΄Π° ΠΠ΅ΡΠ²ΡΠΉ ΠΎΠ±ΡΠ°ΡΠ½ΡΠΉ Π²ΡΠ·ΠΎΠ² ΠΎΠ±Π½ΠΎΠ²Π»ΡΠ΅Ρ Π΄ΠΎΡΡΡΠΏΠ½ΡΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ Π²ΠΎ Π²ΡΠΎΡΠΎΠΌ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ΅ ΠΡΠΎΡΠΎΠΉ ΠΎΠ±ΡΠ°ΡΠ½ΡΠΉ Π²ΡΠ·ΠΎΠ² ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅Ρ Π½Π°ΡΠ°Π»ΡΠ½ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΏΡΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ ΡΠ²ΠΎΠΉΡΡΠ²Π° ΠΠΊΠΎΠ½ΡΠ°ΡΠ΅Π»ΡΠ½ΡΠΉ ΠΎΠ±ΡΠ°ΡΠ½ΡΠΉ Π²ΡΠ·ΠΎΠ² ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅Ρ Π²ΡΠ±ΡΠ°Π½Π½ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π Π½Π΅ΠΊΠΎΡΠΎΡΡΡ
ΡΠ»ΡΡΠ°ΡΡ
Π² Π²Π°ΡΠ΅ΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ ΠΡΠΈΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ ΠΎΠ±ΡΠ°ΡΠ½ΠΎΠ³ΠΎ Π²ΡΠ·ΠΎΠ²Π° Π½Π°ΠΏΡΡΠΌΡΡ ΠΊ Π²Ρ
ΠΎΠ΄Π½ΡΠΌ Π·Π½Π°ΡΠ΅Π½ΠΈΡΠΌ ΠΌΠΎΠΆΠ΅Ρ Π²ΡΠ³Π»ΡΠ΄Π΅ΡΡ ΡΠ°ΠΊ: Π ΡΡΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΡ ΠΎΠ±ΡΠ°ΡΠ½ΠΎΠ³ΠΎ Π²ΡΠ·ΠΎΠ²Π° Π·Π°ΠΏΡΡΠΊΠ°Π΅ΡΡΡ Π²ΡΡΠΊΠΈΠΉ ΡΠ°Π·, ΠΊΠΎΠ³Π΄Π° ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΡΡΡ Π»ΡΠ±ΠΎΠΉ ΠΈΠ· Π°ΡΡΠΈΠ±ΡΡΠΎΠ² Π ΡΡΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΡΠ΅ΠΊΡΡΠ° Π² ΠΏΠΎΠ»ΡΡ
ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ ΠΌΡ ΠΈΠ½ΠΈΡΠΈΠΈΡΡΠ΅ΠΌ ΠΎΠ±ΡΠ°ΡΠ½ΡΠΉ Π²ΡΠ·ΠΎΠ², ΠΏΡΠΎΡΠ»ΡΡΠΈΠ²Π°Ρ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ ΠΡΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ ΠΌΠ°ΠΊΠ΅ΡΠΎΠ² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π² ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠΈΡ
ΠΏΡΠΈΠΌΠ΅ΡΠ°Ρ
ΠΌΡ Π½Π°Π·Π½Π°ΡΠ°Π»ΠΈ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°ΠΌ Π² ΠΌΠ°ΠΊΠ΅ΡΠ΅, Π° Π·Π°ΡΠ΅ΠΌ ΡΡΡΠ»Π°Π»ΠΈΡΡ Π½Π° Π½ΠΈΡ
Π²ΠΎ Π²Ρ
ΠΎΠ΄Π½ΡΡ
ΠΈ Π²ΡΡ
ΠΎΠ΄Π½ΡΡ
Π΄Π°Π½Π½ΡΡ
ΠΎΠ±ΡΠ°ΡΠ½ΠΎΠ³ΠΎ Π²ΡΠ·ΠΎΠ²Π°. Π ΠΏΠ΅ΡΠ²ΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΈΠΌΠ΅Π΅ΡΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ ΠΡ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π²Ρ
ΠΎΠ΄ΠΎΠ² ΠΈ Π²ΡΡ
ΠΎΠ΄ΠΎΠ² Π±Π΅Π· Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΡ ΠΈΠ»ΠΈ ΡΡΡΠ»ΠΊΠΈ Π½Π° ΠΠΎΡ ΡΠ½ΠΎΠ²Π° ΠΏΠ΅ΡΠ²ΡΠΉ ΠΏΡΠΈΠΌΠ΅Ρ. ΠΠ΅ΡΠ΅Π΄ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΠ΅ΠΌ ΠΌΠ°ΠΊΠ΅ΡΠ° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΌΡ ΡΠΎΠ·Π΄Π°Π΅ΠΌ Π΄Π²Π° ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°, ΠΏΡΠΈΡΠ²Π°ΠΈΠ²Π°Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡ ΠΈΠ· Π½ΠΈΡ
ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ. ΠΠ°ΡΠ΅ΠΌ ΠΌΡ ΡΡΡΠ»Π°Π΅ΠΌΡΡ Π½Π° ΡΡΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ Π² ΠΌΠ°ΠΊΠ΅ΡΠ΅ ΠΈ ΠΏΠ΅ΡΠ΅Π΄Π°Π΅ΠΌ ΠΈΡ
Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π²Ρ
ΠΎΠ΄Π½ΡΡ
ΠΈ Π²ΡΡ
ΠΎΠ΄Π½ΡΡ
Π΄Π°Π½Π½ΡΡ
Π΄Π»Ρ ΠΎΠ±ΡΠ°ΡΠ½ΠΎΠ³ΠΎ Π²ΡΠ·ΠΎΠ²Π°. Π Python 3.8 ΠΈ Π²ΡΡΠ΅ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ walrus Π΄Π»Ρ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ
ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ² Π² ΠΌΠ°ΠΊΠ΅ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ: Output .
ΠΡ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅ΠΌ ΠΎΠ±Π½ΠΎΠ²ΠΈΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π²ΡΡ
ΠΎΠ΄Π½ΡΡ
Π΄Π°Π½Π½ΡΡ
ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ: ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»ΠΈΡΡ Π²ΡΠ΅ ΡΠ²ΠΎΠΉΡΡΠ²Π°, ΠΊΠΎΡΠΎΡΡΠ΅ Π²Ρ Ρ
ΠΎΡΠΈΡΠ΅ ΠΎΠ±Π½ΠΎΠ²ΠΈΡΡ
Π² app.
Ρ
', 'Π΄Π΅ΡΠΈ'),
ΠΠ²ΠΎΠ΄('ΡΠΈΡΠ»ΠΎ-ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ', 'Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅'))
ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ callback_a(x):
Π²Π΅ΡΠ½ΡΡΡ Ρ
**2, Ρ
**3, 2**Ρ
, 3**Ρ
, Ρ
**Ρ
Π΅ΡΠ»ΠΈ __name__ == '__main__':
app.run_server(ΠΎΡΠ»Π°Π΄ΠΊΠ°=ΠΡΡΠΈΠ½Π°) ΠΠΊΡ 2 ΠΠΊΡ 3 2 Ρ
3 Ρ
ΠΠΊΡ Ρ
Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅:
ΠΈΡ
ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ·Π±Π΅ΠΆΠ°ΡΡ Π½Π΅Π½ΡΠΆΠ½ΡΡ
ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΉ.
, ΡΠ°Π·Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΎΠ±ΡΠ°ΡΠ½ΡΡ
Π²ΡΠ·ΠΎΠ²ΠΎΠ² ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡΡ ΠΈΠΌ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΠΎ. ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Dash Ρ ΡΠ΅ΠΏΠΎΡΠΊΠ°ΠΌΠΈ ΠΎΠ±ΡΠ°ΡΠ½ΡΡ
Π²ΡΠ·ΠΎΠ²ΠΎΠ²
ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ Π²Ρ
ΠΎΠ΄Π½ΡΠΌΠΈ Π΄Π°Π½Π½ΡΠΌΠΈ Π΄ΡΡΠ³ΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΎΠ±ΡΠ°ΡΠ½ΠΎΠ³ΠΎ Π²ΡΠ·ΠΎΠ²Π°.
ΠΎΠ±Π½ΠΎΠ²Π»ΡΠ΅Ρ Π΄ΠΎΡΡΡΠΏΠ½ΡΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ Π΄ΡΡΠ³ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ° Π²Π²ΠΎΠ΄Π°.
ΠΠΎΡ ΠΏΡΠΎΡΡΠΎΠΉ ΠΏΡΠΈΠΌΠ΅Ρ.# --*- ΠΊΠΎΠ΄ΠΈΡΠΎΠ²ΠΊΠ°: utf-8 --*-
ΠΈΠ· ΡΠΈΡΠ΅ ΠΈΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ ΡΠΈΡΠ΅, dcc, html, Π²Π²ΠΎΠ΄, Π²ΡΠ²ΠΎΠ΄
external_stylesheets = ['https://codepen.io/chriddyp/pen/bWLwgP.css']
app = Dash(__name__, external_stylesheets=external_stylesheets)
all_options = {
Β«ΠΠΌΠ΅ΡΠΈΠΊΠ°Β»: [Β«ΠΡΡ-ΠΠΎΡΠΊΒ», Β«Π‘Π°Π½-Π€ΡΠ°Π½ΡΠΈΡΠΊΠΎΒ», Β«Π¦ΠΈΠ½ΡΠΈΠ½Π½Π°ΡΠΈΒ»],
Β«ΠΠ°Π½Π°Π΄Π°Β»: [u'ΠΠΎΠ½ΡΠ΅Π°Π»Ρ', 'Π’ΠΎΡΠΎΠ½ΡΠΎ', 'ΠΡΡΠ°Π²Π°']
}
app.layout = html.Div([
dcc.RadioItems(
ΡΠΏΠΈΡΠΎΠΊ(all_options.keys()),
'ΠΠΌΠ΅ΡΠΈΠΊΠ°',
,
),
html.Π₯Ρ(),
dcc.RadioItems(id='Π³ΠΎΡΠΎΠ΄Π°-ΡΠ°Π΄ΠΈΠΎ'),
html.Π₯Ρ(),
html.Div(id='ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅ΠΌΡΠ΅-Π²ΡΠ±ΡΠ°Π½Π½ΡΠ΅-Π·Π½Π°ΡΠ΅Π½ΠΈΡ')
])
@app.callback(
ΠΡΠ²ΠΎΠ΄('Π³ΠΎΡΠΎΠ΄Π°-ΡΠ°Π΄ΠΈΠΎ', 'ΠΎΠΏΡΠΈΠΈ'),
Input('ΡΡΡΠ°Π½Ρ-ΡΠ°Π΄ΠΈΠΎ', 'Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅'))
ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ set_cities_options (Π²ΡΠ±ΡΠ°Π½Π½Π°Ρ_ΡΡΡΠ°Π½Π°):
return [{'ΠΌΠ΅ΡΠΊΠ°': i, 'Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅': i} Π΄Π»Ρ i Π² all_options[selected_country]]
@app.
callback(
ΠΡΠ²ΠΎΠ΄('Π³ΠΎΡΠΎΠ΄Π°-ΡΠ°Π΄ΠΈΠΎ', 'Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅'),
Input('Π³ΠΎΡΠΎΠ΄Π°-ΡΠ°Π΄ΠΈΠΎ', 'ΠΎΠΏΡΠΈΠΈ'))
ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ set_cities_value (Π΄ΠΎΡΡΡΠΏΠ½ΡΠ΅_ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ):
Π²Π΅ΡΠ½ΡΡΡ available_options[0]['Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅']
@app.callback(
ΠΡΠ²ΠΎΠ΄('ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅ΠΌΡΠ΅-Π²ΡΠ±ΡΠ°Π½Π½ΡΠ΅-Π·Π½Π°ΡΠ΅Π½ΠΈΡ', 'Π΄Π΅ΡΠΈ'),
ΠΠ²ΠΎΠ΄('ΡΡΡΠ°Π½Ρ-ΡΠ°Π΄ΠΈΠΎ', 'Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅'),
ΠΠ²ΠΎΠ΄('Π³ΠΎΡΠΎΠ΄Π°-ΡΠ°Π΄ΠΈΠΎ', 'Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅'))
def set_display_children (Π²ΡΠ±ΡΠ°Π½Π½Π°Ρ_ΡΡΡΠ°Π½Π°, Π²ΡΠ±ΡΠ°Π½Π½ΡΠΉ_Π³ΠΎΡΠΎΠ΄):
return u'{}Β β ΡΡΠΎ Π³ΠΎΡΠΎΠ΄ Π² ΡΠΎΡΠΌΠ°ΡΠ΅ {}'.format(
Π²ΡΠ±ΡΠ°Π½Π½ΡΠΉ_Π³ΠΎΡΠΎΠ΄, Π²ΡΠ±ΡΠ°Π½Π½Π°Ρ_ΡΡΡΠ°Π½Π°,
)
Π΅ΡΠ»ΠΈ __name__ == '__main__':
app.run_server(ΠΎΡΠ»Π°Π΄ΠΊΠ°=ΠΡΡΠΈΠ½Π°)
dcc.RadioItems Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ Π²ΡΠ±ΡΠ°Π½Π½ΠΎΠ³ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π² ΠΏΠ΅ΡΠ²ΠΎΠΌ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ΅
dcc.RadioItems .
options : ΠΎΠ½ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅Ρ Π΅Π³ΠΎ Π² ΠΏΠ΅ΡΠ²ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π² ΡΡΠΎΠΌ ΠΌΠ°ΡΡΠΈΠ²Π΅ options . ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°.
ΠΡΠ»ΠΈ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ value of the country dcc.RadioItems
ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°, Dash Π±ΡΠ΄Π΅Ρ ΠΆΠ΄Π°ΡΡ, ΠΏΠΎΠΊΠ° Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ° city Π½Π΅ Π±ΡΠ΄Π΅Ρ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΎ
, ΠΏΡΠ΅ΠΆΠ΄Π΅ ΡΠ΅ΠΌ Π²ΡΠ·ΡΠ²Π°ΡΡ ΠΎΠΊΠΎΠ½ΡΠ°ΡΠ΅Π»ΡΠ½ΡΠΉ ΠΎΠ±ΡΠ°ΡΠ½ΡΠΉ Π²ΡΠ·ΠΎΠ². ΠΡΠΎ ΠΏΡΠ΅Π΄ΠΎΡΠ²ΡΠ°ΡΠ°Π΅Ρ Π²ΡΠ·ΠΎΠ²Ρ Π²Π°ΡΠΈΡ
ΠΎΠ±ΡΠ°ΡΠ½ΡΡ
Π²ΡΠ·ΠΎΠ²ΠΎΠ²
Ρ Π½Π΅ΡΠΎΠ³Π»Π°ΡΠΎΠ²Π°Π½Π½ΡΠΌ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ΠΌ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Ρ Β«ΠΠΌΠ΅ΡΠΈΠΊΠ°Β» ΠΈ Β«ΠΠΎΠ½ΡΠ΅Π°Π»ΡΒ» . ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Dash Ρ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ΠΌ
ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΠ°Π±Π»ΠΎΠ½, ΠΏΠΎΠ΄ΠΎΠ±Π½ΡΠΉ ΡΠΎΡΠΌΠ΅. Π ΡΠ°ΠΊΠΎΠΉ ΡΠΈΡΡΠ°ΡΠΈΠΈ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΡΠΎΡΠΈΡΠ°ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅
ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ° Π²Π²ΠΎΠ΄Π°, Π½ΠΎ ΡΠΎΠ»ΡΠΊΠΎ ΠΊΠΎΠ³Π΄Π° ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π·Π°ΠΊΠΎΠ½ΡΠΈΡ
Π²Π²ΠΎΠ΄ Π²ΡΠ΅ΠΉ ΡΠ²ΠΎΠ΅ΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ Π² ΡΠΎΡΠΌΡ, Π° Π½Π΅ ΡΡΠ°Π·Ρ ΠΏΠΎΡΠ»Π΅
, ΠΎΠ½Π° ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡΡ. # --*- coding: utf-8 --*-
ΠΈΠΌΠΏΠΎΡΡ ΠΈΠ· ΡΠΈΡΠ΅ Dash, dcc, html
ΠΈΠ· dash.dependencies ΠΈΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ Π²Π²ΠΎΠ΄, Π²ΡΠ²ΠΎΠ΄
external_stylesheets = ["https://codepen.io/chriddyp/pen/bWLwgP.css"]
app = Dash(__name__, external_stylesheets=external_stylesheets)
app.
layout = html.Div([
dcc.Input(id="input-1", type="text", value="MontrΓ©al"),
dcc.Input(id="input-2", type="text", value="ΠΠ°Π½Π°Π΄Π°"),
html.Div(id="ΡΠΈΡΠ»ΠΎ-Π²ΡΡ
ΠΎΠ΄"),
])
@app.callback(
ΠΡΠ²ΠΎΠ΄("ΡΠΈΡΠ»ΠΎ-Π²ΡΡ
ΠΎΠ΄", "Π΄Π΅ΡΠΈ"),
ΠΠ²ΠΎΠ΄("Π²Π²ΠΎΠ΄-1", "Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅"),
ΠΠ²ΠΎΠ΄("Π²Π²ΠΎΠ΄-2", "Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅"),
)
def update_output (Π²Ρ
ΠΎΠ΄1, Π²Π²ΠΎΠ΄2):
return u'Input 1Β β "{}", Π° Input 2Β β "{}"'.format(input1, input2)
Π΅ΡΠ»ΠΈ __name__ == "__main__":
app.run_server(ΠΎΡΠ»Π°Π΄ΠΊΠ°=ΠΡΡΠΈΠ½Π°)
, ΠΎΠΏΠΈΡΠ°Π½Π½ΡΡ
ΠΡ
ΠΎΠ΄ .
ΠΠΎΠΏΡΠΎΠ±ΡΠΉΡΠ΅ ΡΠ°ΠΌΠΈ, Π²Π²Π΅Π΄Ρ Π΄Π°Π½Π½ΡΠ΅ Π² ΠΏΠΎΠ»Ρ Π²ΡΡΠ΅. Π‘ΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°ΡΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π±Π΅Π· Π·Π°ΠΏΡΡΠΊΠ°
ΠΎΠ±ΡΠ°ΡΠ½ΡΡ
Π²ΡΠ·ΠΎΠ²ΠΎΠ². ΠΠΎΡ ΡΠΎΡ ΠΆΠ΅ ΠΏΡΠΈΠΌΠ΅Ρ, ΡΡΠΎ ΠΈ Π²ΡΡΠ΅, Π½ΠΎ Ρ Π΄Π²ΡΠΌΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°ΠΌΠΈ
dcc.Input Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ State
ΠΈ Π½ΠΎΠ²ΡΠΌ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠΌ ΠΊΠ½ΠΎΠΏΠΊΠΈ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Input .# --*- ΠΊΠΎΠ΄ΠΈΡΠΎΠ²ΠΊΠ°: utf-8 --*-
ΠΈΠΌΠΏΠΎΡΡ ΠΈΠ· ΡΠΈΡΠ΅ Dash, dcc, html
ΠΈΠ· dash.
dependencies ΠΈΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ Π²Π²ΠΎΠ΄, Π²ΡΠ²ΠΎΠ΄, ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅
external_stylesheets = ['https://codepen.io/chriddyp/pen/bWLwgP.css']
app = Dash(__name__, external_stylesheets=external_stylesheets)
app.layout = html.Div([
dcc.Input(id='Π²Ρ
ΠΎΠ΄-1-ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅', ΡΠΈΠΏ='ΡΠ΅ΠΊΡΡ', Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅='ΠΠΎΠ½ΡΠ΅Π°Π»Ρ'),
dcc.Input(id='input-2-state', type='text', value='Canada'),
html.Button(id='submit-button-state', n_clicks=0, children='ΠΡΠΏΡΠ°Π²ΠΈΡΡ'),
html.Div (id = 'ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ Π²ΡΠ²ΠΎΠ΄Π°')
])
@app.callback(ΠΡΡ
ΠΎΠ΄('ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ Π²ΡΠ²ΠΎΠ΄Π°', 'Π΄Π΅ΡΠΈ'),
ΠΠ²ΠΎΠ΄('ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΠΊΠ½ΠΎΠΏΠΊΠΈ ΠΎΡΠΏΡΠ°Π²ΠΊΠΈ', 'n_clicks'),
Π‘ΠΎΡΡΠΎΡΠ½ΠΈΠ΅('Π²Ρ
ΠΎΠ΄-1-ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅', 'Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅'),
Π‘ΠΎΡΡΠΎΡΠ½ΠΈΠ΅('Π²Π²ΠΎΠ΄-2-ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅', 'Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅'))
def update_output (n_clicks, input1, input2):
Π²Π΅ΡΠ½ΡΡΡ ΡΠ΅Π±Ρ'''
ΠΠ½ΠΎΠΏΠΊΠ° Π±ΡΠ»Π° Π½Π°ΠΆΠ°ΡΠ° {} ΡΠ°Π·,
ΠΡ
ΠΎΠ΄ 1: "{}",
ΠΈ Π²Ρ
ΠΎΠ΄ 2 - "{}"
'''.format(n_clicks, input1, input2)
Π΅ΡΠ»ΠΈ __name__ == '__main__':
app.run_server(ΠΎΡΠ»Π°Π΄ΠΊΠ°=ΠΡΡΠΈΠ½Π°)
dcc. Π½Π΅ Π²ΡΠ·ΠΎΠ²Π΅Ρ ΠΎΠ±ΡΠ°ΡΠ½ΠΎΠ³ΠΎ Π²ΡΠ·ΠΎΠ²Π°, Π½ΠΎ Π½Π°ΠΆΠ°ΡΠΈΠ΅ ΠΊΠ½ΠΎΠΏΠΊΠΈ Π²ΡΠ·ΠΎΠ²Π΅Ρ Π΅Π³ΠΎ. Π’Π΅ΠΊΡΡΠΈΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ
Input
Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ dcc.Input ΠΏΠΎ-ΠΏΡΠ΅ΠΆΠ½Π΅ΠΌΡ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡΡΡ Π² ΡΡΠ½ΠΊΡΠΈΡ ΠΎΠ±ΡΠ°ΡΠ½ΠΎΠ³ΠΎ Π²ΡΠ·ΠΎΠ²Π°, Π΄Π°ΠΆΠ΅ Π΅ΡΠ»ΠΈ
ΠΎΠ½ΠΈ Π½Π΅ Π·Π°ΠΏΡΡΠΊΠ°ΡΡ ΡΠ°ΠΌΡ ΡΡΠ½ΠΊΡΠΈΡ ΠΎΠ±ΡΠ°ΡΠ½ΠΎΠ³ΠΎ Π²ΡΠ·ΠΎΠ²Π°. n_clicks ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ° html.Button . n_clicks β ΡΡΠΎ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΏΠΎΠ»ΡΡΠ°Π΅Ρ
ΡΠ²Π΅Π»ΠΈΡΠΈΠ²Π°Π΅ΡΡΡ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠ°Π·, ΠΊΠΎΠ³Π΄Π° Π½Π° ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ Π½Π°ΠΆΠΈΠΌΠ°ΡΡ.
ΠΠ½ Π΄ΠΎΡΡΡΠΏΠ΅Π½ Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ΅
Dash HTML Components ( dash.html ), Π½ΠΎ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ»Π΅Π·Π΅Π½ Ρ ΠΊΠ½ΠΎΠΏΠΊΠ°ΠΌΠΈ. ΠΠ΅ΡΠ΅Π΄Π°ΡΠ° ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ² Π² ΠΎΠ±ΡΠ°ΡΠ½ΡΠ΅ Π²ΡΠ·ΠΎΠ²Ρ Π²ΠΌΠ΅ΡΡΠΎ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠΎΠ²
dcc.Input Ρ id Β«ΠΌΠΎΠΉ Π²Π²ΠΎΠ΄Β» ΠΈ html. Ρ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠΎΠΌ
Div Β«ΠΌΠΎΠΉ Π²ΡΠ²ΠΎΠ΄Β»: app.layout = html.Div([
html.H6("ΠΠ·ΠΌΠ΅Π½ΠΈΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π² ΡΠ΅ΠΊΡΡΠΎΠ²ΠΎΠΌ ΠΏΠΎΠ»Π΅, ΡΡΠΎΠ±Ρ ΡΠ²ΠΈΠ΄Π΅ΡΡ ΠΎΠ±ΡΠ°ΡΠ½ΡΠ΅ Π²ΡΠ·ΠΎΠ²Ρ Π² Π΄Π΅ΠΉΡΡΠ²ΠΈΠΈ!"),
html.Div([
"ΠΡ
ΠΎΠ΄: ",
dcc.Input(id='my-input', value='Π½Π°ΡΠ°Π»ΡΠ½ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅', type='text')
]),
html.ΠΡ(),
html.Div(id='ΠΌΠΎΠΉ-Π²ΡΡ
ΠΎΠ΄'),
@app.callback(
ΠΡΡ
ΠΎΠ΄ (component_id = 'ΠΌΠΎΠΉ-Π²ΡΡ
ΠΎΠ΄', component_property = 'Π΄Π΅ΡΠΈ'),
ΠΡ
ΠΎΠ΄ (component_id = 'ΠΌΠΎΠΉ Π²Ρ
ΠΎΠ΄', component_property = 'Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅')
)
ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ update_output_div (Π²Ρ
ΠΎΠ΄Π½ΠΎΠ΅_Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅):
Π²Π΅ΡΠ½ΡΡΡ f'ΠΡΠ²ΠΎΠ΄: {input_value}'
id . Dash Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ Π³Π΅Π½Π΅ΡΠΈΡΡΠ΅Ρ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΡ Π΄Π»Ρ ΡΡΠΈΡ
ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ².
ΠΈΠ· ΡΠΈΡΠ΅ ΠΈΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ ΡΠΈΡΠ΅, dcc, html, Π²Π²ΠΎΠ΄, Π²ΡΠ²ΠΎΠ΄, ΠΎΠ±ΡΠ°ΡΠ½ΡΠΉ Π²ΡΠ·ΠΎΠ²
ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ = Π’ΠΈΡΠ΅ (__ΠΈΠΌΡ__)
my_input = dcc.Input (Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ = 'Π½Π°ΡΠ°Π»ΡΠ½ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅', ΡΠΈΠΏ = 'ΡΠ΅ΠΊΡΡ')
ΠΌΠΎΠΉ_Π²ΡΡ
ΠΎΠ΄ = html.Div()
app.layout = html.Div([
html.H6("ΠΠ·ΠΌΠ΅Π½ΠΈΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π² ΡΠ΅ΠΊΡΡΠΎΠ²ΠΎΠΌ ΠΏΠΎΠ»Π΅, ΡΡΠΎΠ±Ρ ΡΠ²ΠΈΠ΄Π΅ΡΡ ΠΎΠ±ΡΠ°ΡΠ½ΡΠ΅ Π²ΡΠ·ΠΎΠ²Ρ Π² Π΄Π΅ΠΉΡΡΠ²ΠΈΠΈ!"),
html.Div([
"ΠΡ
ΠΎΠ΄: ",
ΠΌΠΎΠΉ_Π²Ρ
ΠΎΠ΄
]),
html.ΠΡ(),
ΠΌΠΎΠΉ_Π²ΡΡ
ΠΎΠ΄
])
@ΠΏΠ΅ΡΠ΅Π·Π²ΠΎΠ½ΠΈΡΡ(
ΠΡΡ
ΠΎΠ΄ (my_output, component_property = 'Π΄Π΅ΡΠΈ'),
ΠΠ²ΠΎΠ΄ (ΠΌΠΎΠΉ_Π²Ρ
ΠΎΠ΄, component_property = 'Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅')
)
ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ update_output_div (Π²Ρ
ΠΎΠ΄Π½ΠΎΠ΅_Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅):
Π²Π΅ΡΠ½ΡΡΡ f'ΠΡΠ²ΠΎΠ΄: {input_value}'
Π΅ΡΠ»ΠΈ __name__ == '__main__':
app.run_server(ΠΎΡΠ»Π°Π΄ΠΊΠ°=ΠΡΡΠΈΠ½Π°)
app.layout = html.Div([
html.H6("ΠΠ·ΠΌΠ΅Π½ΠΈΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π² ΡΠ΅ΠΊΡΡΠΎΠ²ΠΎΠΌ ΠΏΠΎΠ»Π΅, ΡΡΠΎΠ±Ρ ΡΠ²ΠΈΠ΄Π΅ΡΡ ΠΎΠ±ΡΠ°ΡΠ½ΡΠ΅ Π²ΡΠ·ΠΎΠ²Ρ Π² Π΄Π΅ΠΉΡΡΠ²ΠΈΠΈ!"),
html.Div([
"ΠΡ
ΠΎΠ΄: ",
my_input := dcc.Input(Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅='Π½Π°ΡΠ°Π»ΡΠ½ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅', ΡΠΈΠΏ='ΡΠ΅ΠΊΡΡ')
]),
html.![]()


express ΠΊΠ°ΠΊ px
ΠΈΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ ΠΏΠ°Π½Π΄ ΠΊΠ°ΠΊ pd
df = pd.read_csv('https://raw.githubusercontent.com/plotly/datasets/master/gapminderDataFiveYear.csv')
ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ = Π’ΠΈΡΠ΅ (__ΠΈΠΌΡ__)
app.layout = html.Div([
dcc.Graph(id='Π³ΡΠ°ΡΠΈΠΊ-Ρ-ΠΏΠΎΠ»Π·ΡΠ½ΠΊΠΎΠΌ'),
dcc.Slider(
Π΄Ρ['Π³ΠΎΠ΄'].ΠΌΠΈΠ½(),
df['Π³ΠΎΠ΄'].max(),
ΡΠ°Π³ = Π½Π΅Ρ,
Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ = df['Π³ΠΎΠ΄'].min(),
mark={str(year): str(year) Π΄Π»Ρ Π³ΠΎΠ΄Π° Π² df['year'].unique()},
)
])
@app.callback(
ΠΡΠ²ΠΎΠ΄('Π³ΡΠ°ΡΠΈΠΊ-Ρ-ΠΏΠΎΠ»Π·ΡΠ½ΠΊΠΎΠΌ', 'ΡΠΈΡΡΠ½ΠΎΠΊ'),
ΠΠ²ΠΎΠ΄('Π³ΠΎΠ΄-ΠΏΠΎΠ»Π·ΡΠ½ΠΎΠΊ', 'Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅'))
def update_figure (Π²ΡΠ±ΡΠ°Π½Π½ΡΠΉ_Π³ΠΎΠ΄):
filtered_df = df[df.year == selected_year]
ΡΠΈΡ = px.scatter(filtered_df, x="gdpPercap", y="lifeExp",
ΡΠ°Π·ΠΌΠ΅Ρ = "ΠΏΠΎΠΏ", ΡΠ²Π΅Ρ = "ΠΊΠΎΠ½ΡΠΈΠ½Π΅Π½Ρ", hover_name = "ΡΡΡΠ°Π½Π°",
log_x = ΠΡΡΠΈΠ½Π°, size_max = 55)
fig.update_layout(transition_duration=500)
Π²Π΅ΡΠ½ΡΡΡ ΠΈΠ½ΠΆΠΈΡ
Π΅ΡΠ»ΠΈ __name__ == '__main__':
app.run_server(ΠΎΡΠ»Π°Π΄ΠΊΠ°=ΠΡΡΠΈΠ½Π°)