ΠΠΈΡΠ΅ΠΌ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ Π½Π° Python Ρ ΠΏΠΎΠΌΠΎΡΡΡ Click
ΠΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ β ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½Π°Ρ Π²Π΅ΡΡ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΠΎΠ½ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ Π²ΡΡ ΡΡΠΎ ΡΠ³ΠΎΠ΄Π½ΠΎ. Π‘Π΅Π³ΠΎΠ΄Π½Ρ ΠΌΡ ΡΠ°ΡΡΠΊΠ°ΠΆΠ΅ΠΌ, ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°ΡΡ ΡΠ°ΠΊΠΎΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Π½Π° Python Ρ ΠΏΠΎΠΌΠΎΡΡΡ Click.
Python β Π½Π΅Π²Π΅ΡΠΎΡΡΠ½ΠΎ Π³ΠΈΠ±ΠΊΠΈΠΉ ΡΠ·ΡΠΊ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠΉ Ρ ΠΎΡΠΎΡΠΎ ΠΈΠ½ΡΠ΅Π³ΡΠΈΡΡΠ΅ΡΡΡ Ρ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΠΌΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°ΠΌΠΈ. ΠΠ΅ΠΌΠ°Π»ΠΎ Python-ΠΊΠΎΠ΄Π° Π½Π°ΠΏΠΈΡΠ°Π½ΠΎ Π² Π²ΠΈΠ΄Π΅ ΡΠΊΡΠΈΠΏΡΠΎΠ² ΠΈ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠ² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ (CLI).
ΠΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ ΠΈ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ β ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½Π°Ρ Π²Π΅ΡΡ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΠΎΠ½ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ Π²ΡΡ ΡΡΠΎ ΡΠ³ΠΎΠ΄Π½ΠΎ. ΠΠ°ΠΊ ΡΠ»Π΅Π΄ΡΡΠ²ΠΈΠ΅, ΡΡΠΈ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΡ Ρ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ΠΌ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΠΌΠΎΠ³ΡΡ ΡΡΠ°ΡΡ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΡΠ»ΠΎΠΆΠ½ΡΠΌΠΈ.
ΠΠ±ΡΡΠ½ΠΎ Π²ΡΡ Π½Π°ΡΠΈΠ½Π°Π΅ΡΡΡ Ρ ΠΏΡΠΎΡΡΠΎΠ³ΠΎ ΡΠΊΡΠΈΠΏΡΠ° Π½Π° Python, ΠΊΠΎΡΠΎΡΡΠΉ ΡΡΠΎ-ΡΠΎ Π΄Π΅Π»Π°Π΅Ρ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΠΎΠ»ΡΡΠ°Π΅Ρ Π΄ΠΎΡΡΡΠΏ ΠΊ Π²Π΅Π±-API ΠΈ Π²ΡΠ²ΠΎΠ΄ΠΈΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ Π² ΠΊΠΎΠ½ΡΠΎΠ»Ρ:
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π·Π°ΠΏΡΡΡΠΈΡΡ ΡΡΠΎΡ ΡΠΊΡΠΈΠΏΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ python3 print_user_agent.py, ΠΈ ΠΎΠ½ Π²ΡΠ²Π΅Π΄Π΅Ρ ΠΈΠΌΡ user-agent, ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ Π΄Π»Ρ Π²ΡΠ·ΠΎΠ²Π° API.
ΠΠ°ΠΊ ΠΈ Π±ΡΠ»ΠΎ ΡΠΊΠ°Π·Π°Π½ΠΎ, Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΠΏΡΠΎΡΡΠΎΠΉ ΡΠΊΡΠΈΠΏΡ.
ΠΠΎ ΡΡΠΎ Π΄Π΅Π»Π°ΡΡ, ΠΊΠΎΠ³Π΄Π° ΠΏΠΎΠ΄ΠΎΠ±Π½Π°Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΡΠ°ΡΡΡΡ ΠΈ ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ Π²ΡΡ Π±ΠΎΠ»Π΅Π΅ ΡΠ»ΠΎΠΆΠ½ΠΎΠΉ?
Π Π΅ΡΠ΅Π½ΠΈΠ΅ΠΌ ΡΡΠΎΠ³ΠΎ Π²ΠΎΠΏΡΠΎΡΠ° ΠΌΡ ΡΠ΅Π³ΠΎΠ΄Π½Ρ ΠΈ Π·Π°ΠΉΠΌΡΠΌΡΡ. ΠΡ ΡΠ·Π½Π°Π΅ΡΠ΅ ΠΎΠ± ΠΎΡΠ½ΠΎΠ²Π°Ρ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠ² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ Π½Π° Python ΠΈ ΠΎ ΡΠΎΠΌ, ΠΊΠ°ΠΊ click ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠΏΡΠΎΡΡΠΈΡΡ ΡΡΠΎΡ ΠΏΡΠΎΡΠ΅ΡΡ.
ΠΡΠΏΠΎΠ»ΡΠ·ΡΡ ΡΡΠΈ Π·Π½Π°Π½ΠΈΡ, ΠΌΡ ΡΠ°Π³ Π·Π° ΡΠ°Π³ΠΎΠΌ ΠΏΠ΅ΡΠ΅ΠΉΠ΄ΡΠΌ ΠΎΡ ΠΏΡΠΎΡΡΠΎΠ³ΠΎ ΡΠΊΡΠΈΠΏΡΠ° ΠΊ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ Ρ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ°ΠΌΠΈ, ΠΎΠΏΡΠΈΡΠΌΠΈ ΠΈ ΠΏΠΎΠ»Π΅Π·Π½ΡΠΌΠΈ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡΠΌΠΈ ΠΏΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ. ΠΡΡ ΡΡΠΎ ΠΌΡ ΡΠ΄Π΅Π»Π°Π΅ΠΌ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ click.
Π ΠΊΠΎΠ½ΡΡ ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠΈ Π²Ρ Π±ΡΠ΄Π΅ΡΠ΅ Π·Π½Π°ΡΡ:
- ΠΠΎΡΠ΅ΠΌΡ click β Π»ΡΡΡΠ°Ρ Π°Π»ΡΡΠ΅ΡΠ½Π°ΡΠΈΠ²Π° argparse ΠΈ optparse;
- ΠΠ°ΠΊ Ρ Π΅Π³ΠΎ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠΎΠ·Π΄Π°ΡΡ ΠΏΡΠΎΡΡΠΎΠΉ CLI;
- ΠΠ°ΠΊ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΡΠ΅ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ Π² Π²Π°ΡΠΈ ΡΠΊΡΠΈΠΏΡΡ;
- ΠΠ°ΠΊ ΠΏΠ°ΡΡΠΈΡΡ ΡΠ»Π°Π³ΠΈ ΠΈ ΠΎΠΏΡΠΈΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ;
- ΠΠ°ΠΊ ΡΠ΄Π΅Π»Π°ΡΡ Π²Π°ΡΠΈ ΠΊΠΎΠ½ΡΠΎΠ»ΡΠ½ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π±ΠΎΠ»Π΅Π΅ ΡΠ΄ΠΎΠ±Π½ΡΠΌΠΈ, Π΄ΠΎΠ±Π°Π²ΠΈΠ² ΡΠΏΡΠ°Π²ΠΎΡΠ½ΡΠΉ ΡΠ΅ΠΊΡΡ.
ΠΡ ΡΠ²ΠΈΠ΄ΠΈΡΠ΅, ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°ΡΡ Π²ΡΡ ΡΡΠΎ Ρ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΡΠΌ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎΠΌ ΡΠ°Π±Π»ΠΎΠ½Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°.
ΠΡΠΈΠΌΠ΅ΡΠ°Π½ΠΈΠ΅ ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄ΡΠΈΠΊΠ° ΠΠΎΠ΄ Π² Π΄Π°Π½Π½ΠΎΠΉ ΡΡΠ°ΡΡΠ΅ Π½Π°ΠΏΠΈΡΠ°Π½ Π½Π° Python 3.6, ΡΠ°Π±ΠΎΡΠΎΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡΡ Π½Π° Π±ΠΎΠ»Π΅Π΅ ΡΠ°Π½Π½ΠΈΡ Π²Π΅ΡΡΠΈΡΡ Π½Π΅ Π³Π°ΡΠ°Π½ΡΠΈΡΡΠ΅ΡΡΡ.
ΠΡΠ°ΠΊ, Π½Π°ΡΠ½ΡΠΌ!
ΠΠ°ΡΠ΅ΠΌ Π²Π°ΠΌ ΠΏΠΈΡΠ°ΡΡ ΡΠΊΡΠΈΠΏΡΡ ΠΈ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ Π΄Π»Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ Π½Π° Python?
ΠΠΎΠ΄ Π²ΡΡΠ΅ β Π²ΡΠ΅Π³ΠΎ Π»ΠΈΡΡ ΠΏΡΠΈΠΌΠ΅Ρ, Π½Π΅ ΠΎΡΠ΅Π½Ρ ΠΏΠΎΠ»Π΅Π·Π½ΡΠΉ Π² ΡΠ΅Π°Π»ΡΠ½ΠΎΠΉ ΠΆΠΈΠ·Π½ΠΈ. ΠΠ° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅ ΡΠΊΡΠΈΠΏΡΡ Π±ΡΠ²Π°ΡΡ ΠΊΡΠ΄Π° Π±ΠΎΠ»Π΅Π΅ ΡΠ»ΠΎΠΆΠ½ΡΠ΅. ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π²Ρ ΠΈΠΌΠ΅Π»ΠΈ ΠΎΠΏΡΡ Ρ Π½ΠΈΠΌΠΈ ΠΈ Π·Π½Π°Π΅ΡΠ΅, ΡΡΠΎ ΠΎΠ½ΠΈ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ Π²Π°ΠΆΠ½ΠΎΠΉ ΡΠ°ΡΡΡΡ Π½Π°ΡΠ΅ΠΉ ΠΏΠΎΠ²ΡΠ΅Π΄Π½Π΅Π²Π½ΠΎΠΉ ΡΠ°Π±ΠΎΡΡ: Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠΊΡΠΈΠΏΡΡ ΠΎΡΡΠ°ΡΡΡΡ Π½Π° ΠΏΡΠΎΡΡΠΆΠ΅Π½ΠΈΠΈ Π²ΡΠ΅Π³ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΠΆΠΈΠ·Π½ΠΈ ΠΏΡΠΎΠ΅ΠΊΡΠ°, Π΄Π»Ρ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΠΎΠ½ΠΈ Π±ΡΠ»ΠΈ Π½Π°ΠΏΠΈΡΠ°Π½Ρ. ΠΠ΅ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π°ΡΠΈΠ½Π°ΡΡ ΠΏΡΠΈΠ½ΠΎΡΠΈΡΡ ΠΏΠΎΠ»ΡΠ·Ρ Π΄ΡΡΠ³ΠΈΠΌ ΠΊΠΎΠΌΠ°Π½Π΄Π°ΠΌ ΠΈΠ»ΠΈ ΠΏΡΠΎΠ΅ΠΊΡΠ°ΠΌ. Π£ Π½ΠΈΡ Π΄Π°ΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ ΡΠ°ΡΡΠΈΡΡΡΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π».
Π ΡΡΠΈΡ ΡΠ»ΡΡΠ°ΡΡ Π²Π°ΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°ΡΡ ΡΠΊΡΠΈΠΏΡΡ Π±ΠΎΠ»Π΅Π΅ Π³ΠΈΠ±ΠΊΠΈΠΌΠΈ ΠΈ Π½Π°ΡΡΡΠ°ΠΈΠ²Π°Π΅ΠΌΡΠΌΠΈ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ. ΠΠ½ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ ΡΠΊΠ°Π·Π°ΡΡ ΠΈΠΌΡ ΡΠ΅ΡΠ²Π΅ΡΠ°, ΡΡΡΡΠ½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ ΠΈΠ»ΠΈ Π»ΡΠ±ΡΡ Π΄ΡΡΠ³ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΡΠΊΡΠΈΠΏΡΡ.
ΠΠ΄Π΅ΡΡ ΠΏΡΠΈΡ ΠΎΠ΄ΡΡ Π½Π° Π²ΡΡΡΡΠΊΡ ΡΠ°ΠΊΠΈΠ΅ ΠΌΠΎΠ΄ΡΠ»ΠΈ, ΠΊΠ°ΠΊ optparse ΠΈ argparse, ΠΊΠΎΡΠΎΡΡΠ΅ Π΄Π΅Π»Π°ΡΡ Π½Π°ΡΡ ΠΆΠΈΠ·Π½Ρ Π½Π° ΠΏΠΎΡΡΠ΄ΠΎΠΊ ΠΏΡΠΎΡΠ΅. ΠΠΎ ΠΏΡΠ΅ΠΆΠ΄Π΅ ΡΠ΅ΠΌ ΠΌΡ Ρ Π½ΠΈΠΌΠΈ ΠΏΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΠΌΡΡ, Π΄Π°Π²Π°ΠΉΡΠ΅ ΡΠ°Π·Π±Π΅ΡΡΠΌΡΡ Ρ ΡΠ΅ΡΠΌΠΈΠ½ΠΎΠ»ΠΎΠ³ΠΈΠ΅ΠΉ.
ΠΡΠ½ΠΎΠ²Ρ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ
ΠΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ (CLI) Π½Π°ΡΠΈΠ½Π°Π΅ΡΡΡ Ρ ΠΈΠΌΠ΅Π½ΠΈ ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π°. ΠΡ Π²Π²ΠΎΠ΄ΠΈΡΠ΅ ΠΈΠΌΡ Π² ΠΊΠΎΠ½ΡΠΎΠ»Ρ ΠΈ ΠΏΠΎΠ»ΡΡΠ°Π΅ΡΠ΅ Π΄ΠΎΡΡΡΠΏ ΠΊ Π³Π»Π°Π²Π½ΠΎΠΉ ΡΠΎΡΠΊΠ΅ Π²Ρ ΠΎΠ΄Π° ΡΠΊΡΠΈΠΏΡΠ°, ΡΠ°ΠΊΠΎΠ³ΠΎ ΠΊΠ°ΠΊ pip.
Π Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡΠΈ CLI ΠΎΠ±ΡΡΠ½ΠΎ Π΅ΡΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π½ΡΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°ΡΡ ΡΠΊΡΠΈΠΏΡΡ:
- ΠΡΠ³ΡΠΌΠ΅Π½Ρ, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΡΠΌ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠΌ. ΠΡΠ»ΠΈ Π΅Π³ΠΎ Π½Π΅ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ, ΡΠΎ CLI Π²Π΅ΡΠ½ΡΡ ΠΎΡΠΈΠ±ΠΊΡ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π² ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Π΅ click ΡΠ²Π»ΡΠ΅ΡΡΡ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠΌ:
pip install click. - ΠΠΏΡΠΈΡ β Π½Π΅ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΡΠΉ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½ΡΠ΅Ρ ΠΈΠΌΡ ΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ
--cache-dir ./my-cache. ΠΡ Π³ΠΎΠ²ΠΎΡΠΈΡΠ΅ CLI, ΡΡΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅./my-cacheΠ΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΠΊΠ°ΠΊ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡ Π΄Π»Ρ ΠΊΡΡΠ°. - Π€Π»Π°Π³, ΠΊΠΎΡΠΎΡΡΠΉ Π²ΠΊΠ»ΡΡΠ°Π΅Ρ ΠΈΠ»ΠΈ Π²ΡΠΊΠ»ΡΡΠ°Π΅Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π½ΡΠΉ ΡΡΠ΅Π½Π°ΡΠΈΠΉ. ΠΠ΅ΡΠΎΡΡΠ½ΠΎ, ΡΠ°ΠΌΡΠΌ ΡΠ°ΡΡΡΠΌ ΡΠ²Π»ΡΠ΅ΡΡΡ
--help. ΠΡ ΡΠΎΠ»ΡΠΊΠΎ ΡΠΊΠ°Π·ΡΠ²Π°Π΅ΡΠ΅ ΠΈΠΌΡ, Π° CLI ΡΠ°ΠΌΠΎΡΡΠΎΡΡΠ΅Π»ΡΠ½ΠΎ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠΈΡΡΠ΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅.
Π‘ Π±ΠΎΠ»Π΅Π΅ ΡΠ»ΠΎΠΆΠ½ΡΠΌΠΈ CLI, ΡΠ°ΠΊΠΈΠΌΠΈ ΠΊΠ°ΠΊ pip ΠΈΠ»ΠΈ Heroku CLI, Π²Ρ ΠΏΠΎΠ»ΡΡΠ°Π΅ΡΠ΅ Π΄ΠΎΡΡΡΠΏ ΠΊ Π½Π°Π±ΠΎΡΡ ΡΡΠ½ΠΊΡΠΈΠΉ, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠΎΠ±ΡΠ°Π½Ρ ΠΏΠΎΠ΄ Π³Π»Π°Π²Π½ΠΎΠΉ ΡΠΎΡΠΊΠΎΠΉ Π²Ρ ΠΎΠ΄Π°. ΠΠ½ΠΈ ΠΎΠ±ΡΡΠ½ΠΎ Π½Π°Π·ΡΠ²Π°ΡΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Π°ΠΌΠΈ ΠΈΠ»ΠΈ ΠΏΠΎΠ΄ΠΊΠΎΠΌΠ°Π½Π΄Π°ΠΌΠΈ.
ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π²Ρ ΡΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΠΈ CLI, ΠΊΠΎΠ³Π΄Π° ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π»ΠΈ Python-Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ pip install <ΠΈΠΌΡ ΠΏΠ°ΠΊΠ΅ΡΠ°>. ΠΠΎΠΌΠ°Π½Π΄Π° install Π³ΠΎΠ²ΠΎΡΠΈΡ CLI, ΡΡΠΎ Π²Ρ Ρ
ΠΎΡΠΈΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΠ½ΠΊΡΠΈΡ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ ΠΏΠ°ΠΊΠ΅ΡΠ°, ΠΈ Π΄Π°ΡΡ Π²Π°ΠΌ Π΄ΠΎΡΡΡΠΏ ΠΊ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°ΠΌ, Ρ
Π°ΡΠ°ΠΊΡΠ΅ΡΠ½ΡΠΌ Π΄Π»Ρ ΡΡΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ.
ΠΠ°ΠΊΠ΅ΡΡ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΎΠΉ, Π΄ΠΎΡΡΡΠΏΠ½ΡΠ΅ Π² ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ΅ Python 3.x
ΠΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄ ΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² Π² Π²Π°ΡΠΈ ΡΠΊΡΠΈΠΏΡΡ ΠΌΠΎΠΆΠ΅Ρ ΡΠ΄Π΅Π»Π°ΡΡ ΠΈΡ Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ Π»ΡΡΡΠ΅, Π½ΠΎ ΠΏΠ°ΡΡΠΈΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΡΡ ΡΡΡΠΎΠΊΡ Π½Π΅ ΡΠ°ΠΊ ΠΏΡΠΎΡΡΠΎ, ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠΊΠ°Π·Π°ΡΡΡΡ. ΠΠ΄Π½Π°ΠΊΠΎ Π²ΠΌΠ΅ΡΡΠΎ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ ΠΏΡΡΠ°ΡΡΡΡ ΡΠ°ΠΌΠΎΡΡΠΎΡΡΠ΅Π»ΡΠ½ΠΎ ΡΠ΅ΡΠΈΡΡ ΡΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ, Π»ΡΡΡΠ΅ Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· ΠΌΠ½ΠΎΠ³ΠΈΡ ΠΏΠ°ΠΊΠ΅ΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ΄Π΅Π»Π°Π»ΠΈ ΡΡΠΎ Π·Π° Π²Π°Ρ.
ΠΠ²Π° Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΠΈΠ·Π²Π΅ΡΡΠ½ΡΡ ΠΏΠ°ΠΊΠ΅ΡΠ° Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ β optparse ΠΈ argparse. ΠΠ½ΠΈ ΡΠ²Π»ΡΡΡΡΡ ΡΠ°ΡΡΡΡ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ Python ΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Ρ ΡΡΠ΄Π° ΠΏΠΎ ΠΏΡΠΈΠ½ΡΠΈΠΏΡ Β«Π²ΡΡ Π²ΠΊΠ»ΡΡΠ΅Π½ΠΎΒ».
ΠΠΎ Π±ΠΎΠ»ΡΡΠ΅ΠΉ ΡΠ°ΡΡΠΈ ΠΎΠ½ΠΈ Π΄Π΅Π»Π°ΡΡ ΠΎΠ΄Π½ΠΎ ΠΈ ΡΠΎ ΠΆΠ΅ ΠΈ ΡΠ°Π±ΠΎΡΠ°ΡΡ ΡΡ ΠΎΠΆΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ. ΠΠ»Π°Π²Π½ΠΎΠ΅ ΠΎΡΠ»ΠΈΡΠΈΠ΅ Π·Π°ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π² ΡΠΎΠΌ, ΡΡΠΎ optparse Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π½Π°ΡΠΈΠ½Π°Ρ Ρ Python 3.2, ΠΈ argparse ΡΡΠΈΡΠ°Π΅ΡΡΡ ΡΡΠ°Π½Π΄Π°ΡΡΠΎΠΌ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ CLI Π² Python.
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠ·Π½Π°ΡΡ ΠΎ Π½ΠΈΡ Π±ΠΎΠ»ΡΡΠ΅ Π² Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ Python, Π½ΠΎ, ΡΡΠΎΠ±Ρ ΠΈΠΌΠ΅ΡΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅, ΠΊΠ°ΠΊ Π²ΡΠ³Π»ΡΠ΄ΠΈΡ ΡΠΊΡΠΈΠΏΡ Ρ argparse, ΠΏΠΎΡΠΌΠΎΡΡΠΈΡΠ΅ Π½Π° ΠΏΡΠΈΠΌΠ΅Ρ Π½ΠΈΠΆΠ΅:
click ΠΏΡΠΎΡΠΈΠ² argparse: Π»ΡΡΡΠ°Ρ Π°Π»ΡΡΠ΅ΡΠ½Π°ΡΠΈΠ²Π°?
ΠΠ΅ΡΠΎΡΡΠ½ΠΎ, Π²Ρ ΡΠΌΠΎΡΡΠΈΡΠ΅ Π½Π° ΡΡΠΎΡ ΠΊΠΎΠ΄ ΠΈ Π΄ΡΠΌΠ°Π΅ΡΠ΅: Β«Π§ΡΠΎ ΡΡΠΎ Π²ΡΡ Π·Π½Π°ΡΠΈΡ?Β» Π ΡΡΠΎ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· ΠΏΡΠΎΠ±Π»Π΅ΠΌ argparse: ΠΊΠΎΠ΄ Ρ Π½ΠΈΠΌ Π½Π΅ΠΈΠ½ΡΡΠΈΡΠΈΠ²Π΅Π½ ΠΈ ΡΠ»ΠΎΠΆΠ½ΠΎΡΠΈΡΠ°Π΅ΠΌ.
ΠΠΎΡΡΠΎΠΌΡ Π²Π°ΠΌ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠ½ΡΠ°Π²ΠΈΡΡΡΡ click.
Click ΡΠ΅ΡΠ°Π΅Ρ ΡΡ ΠΆΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ, ΡΡΠΎ ΠΈ optparse ΠΈ argparse, Π½ΠΎ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΈΠ½Π°ΡΠ΅. ΠΠ½ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ Π΄Π΅ΠΊΠΎΡΠ°ΡΠΎΡΡ, ΠΏΠΎΡΡΠΎΠΌΡ Π²Π°ΡΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ ΡΡΠ½ΠΊΡΠΈΡΠΌΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±Π΅ΡΠ½ΡΡΡ ΡΡΠΈΠΌΠΈ Π΄Π΅ΠΊΠΎΡΠ°ΡΠΎΡΠ°ΠΌΠΈ.
Π‘ click Π»Π΅Π³ΠΊΠΎ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΠΌΠ½ΠΎΠ³ΠΎΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΠΉ CLI Ρ Π½Π΅Π±ΠΎΠ»ΡΡΠΈΠΌ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎΠΌ ΠΊΠΎΠ΄Π°. Π ΡΡΠΎΡ ΠΊΠΎΠ΄ Π±ΡΠ΄Π΅Ρ Π»Π΅Π³ΠΊΠΎ ΡΠΈΡΠ°ΡΡΡΡ, Π΄Π°ΠΆΠ΅ ΠΊΠΎΠ³Π΄Π° Π²Π°Ρ CLI Π²ΡΡΠ°ΡΡΠ΅Ρ ΠΈ ΡΡΠ°Π½Π΅Ρ Π±ΠΎΠ»Π΅Π΅ ΡΠ»ΠΎΠΆΠ½ΡΠΌ.
ΠΠΈΡΠ΅ΠΌ ΠΏΡΠΎΡΡΠΎΠΉ CLI Π½Π° Python Ρ ΠΏΠΎΠΌΠΎΡΡΡ click
ΠΠ΄ΠΎΠ²ΠΎΠ»Ρ ΠΏΠΎΠ³ΠΎΠ²ΠΎΡΠΈΠ² ΠΎ CLI ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°Ρ , Π΄Π°Π²Π°ΠΉΡΠ΅ Π²Π·Π³Π»ΡΠ½Π΅ΠΌ Π½Π° ΠΏΡΠΈΠΌΠ΅Ρ, ΡΡΠΎΠ±Ρ ΠΏΠΎΠ½ΡΡΡ, ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°ΡΡ ΠΏΡΠΎΡΡΠΎΠΉ CLI Ρ click. ΠΠ°ΠΊ ΠΈ Π² ΠΏΠ΅ΡΠ²ΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅, ΠΌΡ ΡΠΎΠ·Π΄Π°ΡΠΌ ΠΏΡΠΎΡΡΠΎΠΉ CLI, ΠΊΠΎΡΠΎΡΡΠΉ Π²ΡΠ²ΠΎΠ΄ΠΈΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ Π² ΠΊΠΎΠ½ΡΠΎΠ»Ρ. ΠΡΠΎ Π½Π΅ΡΠ»ΠΎΠΆΠ½ΠΎ:
ΠΠ΅ ΠΏΡΠ³Π°ΠΉΡΠ΅ΡΡ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΡ
Π΄Π²ΡΡ
ΡΡΡΠΎΠΊ: ΡΡΠΎ ΡΠΎ, ΠΊΠ°ΠΊ Python Π·Π°ΠΏΡΡΠΊΠ°Π΅Ρ ΡΡΠ½ΠΊΡΠΈΡ main ΠΏΡΠΈ ΠΈΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΡΠ°ΠΉΠ»Π° ΠΊΠ°ΠΊ ΡΠΊΡΠΈΠΏΡΠ°.
ΠΠ°ΠΊ Π²Ρ Π²ΠΈΠ΄ΠΈΡΠ΅, Π²ΡΡ, ΡΡΠΎ Π½Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°ΡΡ β ΡΠΎΠ·Π΄Π°ΡΡ ΡΡΠ½ΠΊΡΠΈΡ ΠΈ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΠΊ Π½Π΅ΠΉ Π΄Π΅ΠΊΠΎΡΠ°ΡΠΎΡ @click.command(). ΠΠ½ ΠΏΡΠ΅Π²ΡΠ°ΡΠ°Π΅Ρ ΡΡΠ½ΠΊΡΠΈΡ Π² ΠΊΠΎΠΌΠ°Π½Π΄Ρ, ΠΊΠΎΡΠΎΡΠ°Ρ ΡΠ²Π»ΡΠ΅ΡΡΡ Π³Π»Π°Π²Π½ΠΎΠΉ ΡΠΎΡΠΊΠΎΠΉ Π²Ρ
ΠΎΠ΄Π° Π½Π°ΡΠ΅Π³ΠΎ ΡΠΊΡΠΈΠΏΡΠ°. Π’Π΅ΠΏΠ΅ΡΡ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π·Π°ΠΏΡΡΡΠΈΡΡ ΡΠΊΡΠΈΠΏΡ ΡΠ΅ΡΠ΅Π· ΠΊΠΎΠΌΠ°Π½Π΄Π½ΡΡ ΡΡΡΠΎΠΊΡ ΠΈ ΡΠ²ΠΈΠ΄Π΅ΡΡ ΡΡΠΎ-ΡΠΎ Π²ΡΠΎΠ΄Π΅ ΡΡΠΎΠ³ΠΎ:
Π§ΡΠΎ Π² click Π·Π΄ΠΎΡΠΎΠ²ΠΎ, ΡΠ°ΠΊ ΡΡΠΎ ΡΠΎ, ΡΡΠΎ ΠΌΡ ΠΏΠΎΠ»ΡΡΠ°Π΅ΠΌ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΠΏΡΠΎΡΡΠΎ ΡΠ°ΠΊ. ΠΡ Π½Π΅ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²ΡΠ²Π°Π»ΠΈ ΡΠΏΡΠ°Π²ΠΎΡΠ½ΡΡ ΡΡΠ½ΠΊΡΠΈΡ, ΠΎΠ΄Π½Π°ΠΊΠΎ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΡΠ»Π°Π³ --help ΠΈ ΡΠ²ΠΈΠ΄Π΅ΡΡ Π±Π°Π·ΠΎΠ²ΠΎΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅:
ΠΠΎΠ»Π΅Π΅ ΡΠ΅Π°Π»ΠΈΡΡΠΈΡΠ½ΡΠΉ ΠΏΡΠΈΠΌΠ΅Ρ CLI Π½Π° Python Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ click
Π’Π΅ΠΏΠ΅ΡΡ, ΠΊΠΎΠ³Π΄Π° Π²Ρ Π·Π½Π°Π΅ΡΠ΅, ΠΊΠ°ΠΊ click ΡΠΏΡΠΎΡΠ°Π΅Ρ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΠ΅ CLI, Π΄Π°Π²Π°ΠΉΡΠ΅ Π²Π·Π³Π»ΡΠ½Π΅ΠΌ Π½Π° Π±ΠΎΠ»Π΅Π΅ ΡΠ΅Π°Π»ΠΈΡΡΠΈΡΠ½ΡΠΉ ΠΏΡΠΈΠΌΠ΅Ρ. ΠΡ Π½Π°ΠΏΠΈΡΠ΅ΠΌ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π½Π°ΠΌ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΎΠ²Π°ΡΡ Ρ Π²Π΅Π±-API.
API, ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΡ Π΄Π°Π»ΡΡΠ΅ Π±ΡΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ, β OpenWeatherMap API. ΠΠ½ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ ΡΠ΅ΠΊΡΡΠ΅ΠΉ ΠΏΠΎΠ³ΠΎΠ΄Π΅, Π° ΡΠ°ΠΊΠΆΠ΅ ΠΏΡΠΎΠ³Π½ΠΎΠ· Π½Π° ΠΏΡΡΡ Π΄Π½Π΅ΠΉ Π΄Π»Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π½ΠΎΠ³ΠΎ ΠΌΠ΅ΡΡΠΎΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. ΠΡ Π½Π°ΡΠ½ΡΠΌ Ρ ΡΠ΅ΡΡΠΎΠ²ΠΎΠ³ΠΎ API, ΠΊΠΎΡΠΎΡΡΠΉ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΡΠ΅ΠΊΡΡΡΡ ΠΏΠΎΠ³ΠΎΠ΄Ρ Π΄Π»Ρ ΠΌΠ΅ΡΡΠ°.
ΠΡΠ΅ΠΆΠ΄Π΅ ΡΠ΅ΠΌ ΠΌΡ Π½Π°ΡΠ½ΡΠΌ ΠΏΠΈΡΠ°ΡΡ ΠΊΠΎΠ΄, Π΄Π°Π²Π°ΠΉΡΠ΅ ΠΏΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΠΌΡΡ Ρ API. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠ΅ΡΠ²ΠΈΡ HTTPie, Π²ΠΊΠ»ΡΡΠ°ΡΒ ΠΎΠ½Π»Π°ΠΉΠ½-ΡΠ΅ΡΠΌΠΈΠ½Π°Π».
ΠΠ°Π²Π°ΠΉΡΠ΅ ΠΏΠΎΡΠΌΠΎΡΡΠΈΠΌ, ΡΡΠΎ ΡΠ»ΡΡΠΈΡΡΡ, ΠΊΠΎΠ³Π΄Π° ΠΌΡ ΠΎΠ±ΡΠ°ΡΠΈΠΌΡΡ ΠΊ API Ρ ΠΠΎΠ½Π΄ΠΎΠ½ΠΎΠΌ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΌΠ΅ΡΡΠΎΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΡ:
ΠΡΠ»ΠΈ Π²Ρ ΡΠΌΡΡΠ΅Π½Ρ Π½Π°Π»ΠΈΡΠΈΠ΅ΠΌ API-ΠΊΠ»ΡΡΠ° Π² ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΡΠ²Π΅ΡΡ Ρ, Π½Π΅ ΠΏΠ΅ΡΠ΅ΠΆΠΈΠ²Π°ΠΉΡΠ΅, ΡΡΠΎ ΡΠ΅ΡΡΠΎΠ²ΡΠΉ API-ΠΊΠ»ΡΡ, ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅ΠΌΡΠΉ ΡΠ΅ΡΠ²ΠΈΡΠΎΠΌ.
ΠΠΎΠ»Π΅Π΅ Π²Π°ΠΆΠ½ΠΎΠ΅ Π½Π°Π±Π»ΡΠ΄Π΅Π½ΠΈΠ΅ Π·Π°ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π² ΡΠΎΠΌ, ΡΡΠΎ ΠΌΡ ΠΎΡΠΏΡΠ°Π²Π»ΡΠ΅ΠΌ Π΄Π²Π° ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ° (ΠΎΠ±ΠΎΠ·Π½Π°ΡΠ°Π΅ΠΌΡΠ΅ == ΠΏΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ HTTPie), ΡΡΠΎΠ±Ρ ΡΠ·Π½Π°ΡΡ ΡΠ΅ΠΊΡΡΡΡ ΠΏΠΎΠ³ΠΎΠ΄Ρ:
qβ ΠΌΠ΅ΡΡΠΎ, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΌΡ Ρ ΠΎΡΠΈΠΌ ΡΠ·Π½Π°ΡΡ ΠΏΠΎΠ³ΠΎΠ΄Ρ;appidβ Π½Π°Ρ API-ΠΊΠ»ΡΡ.
ΠΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π½Π°ΠΌ ΡΠΎΠ·Π΄Π°ΡΡ ΠΏΡΠΎΡΡΡΡ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ Π½Π° Python Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ requests (ΠΎΠΏΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΡ ΠΎΡΠΈΠ±ΠΎΠΊ ΠΈ Π½Π΅ΡΠ΄Π°ΡΠ½ΡΡ Π·Π°ΠΏΡΠΎΡΠΎΠ² Π΄Π»Ρ ΠΏΡΠΎΡΡΠΎΡΡ):
ΠΡΠ° ΡΡΠ½ΠΊΡΠΈΡ Π΄Π΅Π»Π°Π΅Ρ ΠΏΡΠΎΡΡΠΎΠΉ Π·Π°ΠΏΡΠΎΡ ΠΊ API, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ Π΄Π²Π° ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°. Π ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ° ΠΎΠ½Π° ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ location (ΠΌΠ΅ΡΡΠΎΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅), ΠΊΠΎΡΠΎΡΠΎΠ΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±ΡΡΡ ΡΡΡΠΎΠΊΠΎΠΉ. Π’Π°ΠΊΠΆΠ΅ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠΊΠ°Π·Π°ΡΡ API-ΠΊΠ»ΡΡ, ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°Ρ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ api_key ΠΏΡΠΈ Π²ΡΠ·ΠΎΠ²Π΅ ΡΡΠ½ΠΊΡΠΈΠΈ. ΠΡΠΎ Π½Π΅ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΡΠ΅ΡΡΠΎΠ²ΡΠΉ ΠΊΠ»ΡΡ.
Π Π²ΠΎΡ ΠΌΡ Π²ΠΈΠ΄ΠΈΠΌ ΡΠ΅ΠΊΡΡΡΡ ΠΏΠΎΠ³ΠΎΠ΄Ρ Π² Python REPL:
ΠΠ°ΡΡΠΈΠΌ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΡΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ Ρ click
ΠΡΠΎΡΡΠ°Ρ ΡΡΠ½ΠΊΡΠΈΡ current_weather ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π½Π°ΠΌ ΡΠΎΠ·Π΄Π°ΡΡ CLI Ρ ΠΌΠ΅ΡΡΠΎΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ, ΡΠΊΠ°Π·Π°Π½Π½ΡΠΌ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΌ. ΠΡΠΎ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΡΠ°Π±ΠΎΡΠ°ΡΡ ΠΏΡΠΈΠΌΠ΅ΡΠ½ΠΎ ΡΠ°ΠΊ:
ΠΠ°ΠΊ Π²Ρ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π΄ΠΎΠ³Π°Π΄Π°Π»ΠΈΡΡ, ΠΌΠ΅ΡΡΠΎΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ β ΡΡΠΎ Π°ΡΠ³ΡΠΌΠ΅Π½Ρ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΎΠ½ΠΎ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΡΠΌ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠΌ Π΄Π»Ρ Π½Π°ΡΠ΅Π³ΠΎ ΠΏΠΎΠ³ΠΎΠ΄Π½ΠΎΠ³ΠΎ CLI.
ΠΠ°ΠΊ Π½Π°ΠΌ ΡΠ΄Π΅Π»Π°ΡΡ ΡΡΠΎ ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ click? ΠΡΡ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΠΏΡΠΎΡΡΠΎ, ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ Π΄Π΅ΠΊΠΎΡΠ°ΡΠΎΡ ΠΏΠΎΠ΄ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ argument. ΠΡΠΎ Π±Ρ ΠΌΠΎΠ³ ΠΏΠΎΠ΄ΡΠΌΠ°ΡΡ?
ΠΠ°Π²Π°ΠΉΡΠ΅ Π²ΠΎΠ·ΡΠΌΡΠΌ Π½Π°Ρ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠΈΠΉ ΠΏΡΠΈΠΌΠ΅Ρ ΠΈ ΡΠ»Π΅Π³ΠΊΠ° ΠΈΠ·ΠΌΠ΅Π½ΠΈΠΌ Π΅Π³ΠΎ, Π΄ΠΎΠ±Π°Π²ΠΈΠ² Π°ΡΠ³ΡΠΌΠ΅Π½Ρ location:
ΠΡΠ»ΠΈ ΡΡΠΎΡ print Π²ΡΠ³Π»ΡΠ΄ΠΈΡ Π΄Π»Ρ Π²Π°Ρ ΡΡΡΠ°Π½Π½ΠΎ, Π½Π΅ Π²ΠΎΠ»Π½ΡΠΉΡΠ΅ΡΡ β ΡΡΠΎ Π½ΠΎΠ²ΡΠΉ ΡΠΏΠΎΡΠΎΠ± ΡΠΎΡΠΌΠ°ΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΡΡΠΎΠΊ Π² Python 3.6+, ΠΊΠΎΡΠΎΡΡΠΉ Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ f-ΡΠΎΡΠΌΠ°ΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ.
ΠΠ°ΠΊ Π²Ρ Π²ΠΈΠ΄ΠΈΡΠ΅, Π²ΡΡ, ΡΡΠΎ Π½Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°ΡΡ, ΡΡΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠΉ Π΄Π΅ΠΊΠΎΡΠ°ΡΠΎΡ ΠΊ Π½Π°ΡΠ΅ΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ main ΠΈ Π΄Π°ΡΡ Π΅ΠΌΡ ΠΈΠΌΡ. Click ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΠΈΠΌΡ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΈΠΌΠ΅Π½ΠΈ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ°, ΠΏΠ΅ΡΠ΅Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΎΠ±ΡΡΠ½ΡΡΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ.
ΠΡΠΈΠΌΠ΅ΡΠ°Π½ΠΈΠ΅ ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄ΡΠΈΠΊΠ°Β ΠΠΌΡ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ°, ΠΏΠ΅ΡΠ΅Π΄Π°Π½Π½ΠΎΠ΅ click, Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΡΠΎΠ²ΠΏΠ°Π΄Π°ΡΡ Ρ ΠΈΠΌΠ΅Π½Π΅ΠΌ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ° Π² ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ.
Π Π½Π°ΡΠ΅ΠΌ ΡΠ»ΡΡΠ°Π΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ° ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ location Π±ΡΠ΄Π΅Ρ ΠΏΠ΅ΡΠ΅Π΄Π°Π½ΠΎ ΡΡΠ½ΠΊΡΠΈΠΈ main Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ° location. ΠΠΎΠ³ΠΈΡΠ½ΠΎ, Π½Π΅ ΡΠ°ΠΊ Π»ΠΈ?
Π’Π°ΠΊΠΆΠ΅ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠΈΡΠ΅ Π² ΠΈΠΌΠ΅Π½Π°Ρ
, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ api-key, ΠΊΠΎΡΠΎΡΡΠ΅ click ΠΏΠ΅ΡΠ΅Π²Π΅Π΄ΡΡ Π² snake case Π΄Π»Ρ ΠΈΠΌΠ΅Π½ΠΈ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ° Π² ΡΡΠ½ΠΊΡΠΈΠΈ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ main(api_key).
Π Π΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ main ΠΏΡΠΎΡΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ Π½Π°ΡΡ ΡΡΠ½ΠΊΡΠΈΡ current_weather Π΄Π»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ ΠΏΠΎΠ³ΠΎΠ΄Ρ Π² ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠΌ ΠΌΠ΅ΡΡΠ΅. Π Π·Π°ΡΠ΅ΠΌ ΠΌΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ print Π²ΡΠ²ΠΎΠ΄ΠΈΠΌ ΠΏΠΎΠ»ΡΡΠ΅Π½Π½ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ.
ΠΠΎΡΠΎΠ²ΠΎ!
ΠΠ°ΡΡΠΈΠΌ ΠΎΠΏΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ Ρ click
ΠΠ°ΠΊ Π²Ρ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π΄ΠΎΠ³Π°Π΄Π°Π»ΠΈΡΡ, ΡΠ΅ΡΡΠΎΠ²ΡΠΉ API ΠΎΠ³ΡΠ°Π½ΠΈΡΠΈΠ²Π°Π΅Ρ Π½Π°Ρ Π² Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΡ . ΠΠΎΡΡΠΎΠΌΡ, ΠΏΡΠ΅ΠΆΠ΄Π΅ ΡΠ΅ΠΌ ΠΌΡ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠΈΠΌ, Π·Π°ΡΠ΅Π³ΠΈΡΡΡΠΈΡΡΠΉΡΠ΅ΡΡ ΠΈ ΠΏΠΎΠ»ΡΡΠΈΡΠ΅ Π½Π°ΡΡΠΎΡΡΠΈΠΉ API-ΠΊΠ»ΡΡ.
ΠΠ΅ΡΠ²ΠΎΠ΅, ΡΡΠΎ Π½Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ, β URL, ΠΎΡΠΊΡΠ΄Π° Π±Π΅ΡΡΡΡΡ Π΄Π°Π½Π½ΡΠ΅ ΠΎ ΡΠ΅ΠΊΡΡΠ΅ΠΉ ΠΏΠΎΠ³ΠΎΠ΄Π΅. ΠΡΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°ΡΡ, ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ² Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ url Π² ΡΡΠ½ΠΊΡΠΈΠΈ current_weather Π½Π° URL, ΡΠΊΠ°Π·Π°Π½Π½ΡΠΉ Π² Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ OpenWeatherMap:
ΠΡΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΏΡΠΈΠ²Π΅Π΄ΡΡ ΠΊ Π½Π΅ΡΠ°Π±ΠΎΡΠΎΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡΠΈ Π½Π°ΡΠ΅Π³ΠΎ CLI, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΡΠΊΠ°Π·Π°Π½Π½ΡΠΉ API-ΠΊΠ»ΡΡ Π½Π΅ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Ρ ΡΠ΅Π°Π»ΡΠ½ΡΠΌ API. ΠΠΎΡΡΠΎΠΌΡ Π΄Π°Π²Π°ΠΉΡΠ΅ Π΄ΠΎΠ±Π°Π²ΠΈΠΌ Π½ΠΎΠ²ΡΠΉ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ Π² Π½Π°Ρ CLI, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ Π½Π°ΠΌ ΡΠΊΠ°Π·ΡΠ²Π°ΡΡ API-ΠΊΠ»ΡΡ. ΠΠΎ ΡΠ½Π°ΡΠ°Π»Π° ΠΌΡ Π΄ΠΎΠ»ΠΆΠ½Ρ ΡΠ΅ΡΠΈΡΡ, Π±ΡΠ΄Π΅Ρ Π»ΠΈ ΡΡΠΎΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠΌ ΠΈΠ»ΠΈ ΠΎΠΏΡΠΈΠ΅ΠΉ. ΠΡ ΡΠ΄Π΅Π»Π°Π΅ΠΌ Π΅Π³ΠΎ ΠΎΠΏΡΠΈΠ΅ΠΉ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ° Π²ΡΠΎΠ΄Π΅ --api-key Π΄Π΅Π»Π°Π΅Ρ Π΅Π³ΠΎ Π±ΠΎΠ»Π΅Π΅ ΡΠ²Π½ΡΠΌ ΠΈ Π³ΠΎΠ²ΠΎΡΡΡΠΈΠΌ Π·Π° ΡΠ΅Π±Ρ.
ΠΡ Ρ
ΠΎΡΠΈΠΌ, ΡΡΠΎΠ±Ρ Π½Π°ΡΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Π·Π°ΠΏΡΡΠΊΠ°Π»Π°ΡΡ ΡΠ°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ:
ΠΡΠΎΡΠ΅ ΠΏΡΠΎΡΡΠΎΠ³ΠΎ. ΠΠΎΡΠΌΠΎΡΡΠΈΠΌ, ΠΊΠ°ΠΊ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΠΎΠΏΡΠΈΡ ΠΊ Π½Π°ΡΠ΅ΠΉ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠ΅ΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Π΅:
Π ΡΠ½ΠΎΠ²Π° ΠΌΡ Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅ΠΌ Π΄Π΅ΠΊΠΎΡΠ°ΡΠΎΡ ΠΊ Π½Π°ΡΠ΅ΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ main. Π ΡΡΠΎΡ ΡΠ°Π· ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ Π΄Π΅ΠΊΠΎΡΠ°ΡΠΎΡ Ρ Π³ΠΎΠ²ΠΎΡΡΡΠΈΠΌ ΠΈΠΌΠ΅Π½Π΅ΠΌ @click.option ΠΈ ΡΠΊΠ°Π·ΡΠ²Π°Π΅ΠΌ ΠΈΠΌΡ Π΄Π»Ρ Π½Π°ΡΠ΅ΠΉ ΠΎΠΏΡΠΈΠΈ, Π½Π°ΡΠΈΠ½Π°ΡΡΠ΅Π΅ΡΡ Ρ Π΄Π²ΡΡ
ΡΠΈΡΠ΅. ΠΠ°ΠΊ Π²Ρ Π²ΠΈΠ΄ΠΈΡΠ΅, ΠΌΡ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠΊΠ°Π·Π°ΡΡ ΡΠΎΠΊΡΠ°ΡΠ΅Π½ΠΈΠ΅ Π΄Π»Ρ Π½Π°ΡΠ΅ΠΉ ΠΎΠΏΡΠΈΠΈ Ρ ΠΎΠ΄Π½ΠΈΠΌ ΡΠΈΡΠ΅, ΡΡΠΎΠ±Ρ ΡΡΠΊΠΎΠ½ΠΎΠΌΠΈΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ.
ΠΠ°ΠΊ Π±ΡΠ»ΠΎ ΡΠΊΠ°Π·Π°Π½ΠΎ ΡΠ°Π½Π΅Π΅, click ΡΠΎΠ·Π΄Π°ΡΡ Π°ΡΠ³ΡΠΌΠ΅Π½Ρ Π΄Π»Ρ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ Π² ΡΡΠ½ΠΊΡΠΈΡ main ΠΈΠ· Π΄Π»ΠΈΠ½Π½ΠΎΠ³ΠΎ Π²Π°ΡΠΈΠ°Π½ΡΠ° ΠΈΠΌΠ΅Π½ΠΈ. Π ΡΠ»ΡΡΠ°Π΅ Ρ ΠΎΠΏΡΠΈΠ΅ΠΉ ΠΎΠ½ ΡΠ±ΠΈΡΠ°Π΅Ρ Π²ΠΏΠ΅ΡΠ΅Π΄ΠΈΡΡΠΎΡΡΠΈΠ΅ ΡΠΈΡΠ΅ ΠΈ ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄ΠΈΡ Π΅Ρ Π² snake case. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, --api-key ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ api_key.
Π§ΡΠΎΠ±Ρ Π²ΡΡ Π·Π°ΡΠ°Π±ΠΎΡΠ°Π»ΠΎ, ΠΎΡΡΠ°Π»ΠΎΡΡ Π»ΠΈΡΡ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ API-ΠΊΠ»ΡΡ Π² ΡΡΠ½ΠΊΡΠΈΡ current_weather.
ΠΡ Π΄ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΡΠΊΠ°Π·ΡΠ²Π°ΡΡ ΡΠ²ΠΎΠΉ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠΉ ΠΊΠ»ΡΡ ΠΈ ΠΏΡΠΎΠ²Π΅ΡΡΡΡ ΠΏΠΎΠ³ΠΎΠ΄Ρ Π² Π»ΡΠ±ΠΎΠΌ ΠΌΠ΅ΡΡΠ΅:
ΠΠΎΠ±Π°Π²Π»ΡΠ΅ΠΌ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ Π³Π΅Π½Π΅ΡΠΈΡΡΠ΅ΠΌΡΠ΅ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ ΠΏΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ
ΠΠΎΠΆΠ΅ΡΠ΅ ΡΠ΅Π±Ρ ΠΏΠΎΡ Π²Π°Π»ΠΈΡΡ, Π²Ρ ΡΠΎΠ·Π΄Π°Π»ΠΈ ΠΎΡΠ»ΠΈΡΠ½ΡΠΉ Π½Π΅Π±ΠΎΠ»ΡΡΠΎΠΉ CLI ΠΏΠΎΡΡΠΈ Π±Π΅Π· ΡΠ°Π±Π»ΠΎΠ½Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°. ΠΠ΄Π½Π°ΠΊΠΎ ΠΏΡΠ΅ΠΆΠ΄Π΅ ΡΠ΅ΠΌ Π²Ρ ΡΠ΅ΡΠΈΡΠ΅ ΠΎΡΠ΄ΠΎΡ Π½ΡΡΡ, Π΄Π°Π²Π°ΠΉΡΠ΅ ΡΠ±Π΅Π΄ΠΈΠΌΡΡ, ΡΡΠΎ Π½ΠΎΠ²ΡΠΉ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π±ΡΠ΄Π΅Ρ Π·Π½Π°ΡΡ, ΠΊΠ°ΠΊ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Π½Π°ΡΠΈΠΌ CLI, ΠΏΡΡΡΠΌ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΡ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ. ΠΠ΅ Π±ΠΎΠΉΡΠ΅ΡΡ, Π²ΡΡ Π±ΡΠ΄Π΅Ρ ΠΏΡΠΎΡΡΠΎ.
Π‘Π½Π°ΡΠ°Π»Π° Π΄Π°Π²Π°ΠΉΡΠ΅ ΠΏΡΠΎΠ²Π΅ΡΠΈΠΌ, ΡΡΠΎ Π²ΡΠ²Π΅Π΄Π΅Ρ ΡΠ»Π°Π³ --help ΠΏΠΎΡΠ»Π΅ Π²ΡΠ΅Ρ
ΡΠ΄Π΅Π»Π°Π½Π½ΡΡ
ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ. ΠΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ Π½Π΅ΠΏΠ»ΠΎΡ
ΠΎ, ΡΡΠΈΡΡΠ²Π°Ρ ΡΡΠΎ ΠΌΡ Π½Π΅ ΠΏΡΠΈΠ»ΠΎΠΆΠΈΠ»ΠΈ ΠΊ ΡΡΠΎΠΌΡ Π½ΠΈΠΊΠ°ΠΊΠΈΡ
ΡΡΠΈΠ»ΠΈΠΉ:
ΠΠ΅ΡΠ²ΠΎΠ΅, ΡΡΠΎ Π½ΡΠΆΠ½ΠΎ ΠΈΡΠΏΡΠ°Π²ΠΈΡΡ, ΡΡΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ Π΄Π»Ρ Π½Π°ΡΠ΅ΠΉ ΠΎΠΏΡΠΈΠΈ Ρ API-ΠΊΠ»ΡΡΠΎΠΌ. ΠΡΡ, ΡΡΠΎ Π½Π°ΠΌ Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ Π½ΡΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°ΡΡ, β Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΡΠΏΡΠ°Π²ΠΎΡΠ½ΡΠΉ ΡΠ΅ΠΊΡΡ Π² Π΄Π΅ΠΊΠΎΡΠ°ΡΠΎΡ @click.option:
ΠΡΠΎΡΠΎΠ΅ (ΠΈ ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅Π΅), ΡΡΠΎ ΠΌΡ ΡΠ΄Π΅Π»Π°Π΅ΠΌ, β Π΄ΠΎΠ±Π°Π²ΠΈΠΌ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ Π΄Π»Ρ Π²ΡΠ΅ΠΉ click-ΠΊΠΎΠΌΠ°Π½Π΄Ρ. Π‘Π°ΠΌΡΠΉ ΠΏΡΠΎΡΡΠΎΠΉ ΠΈ ΡΠ°ΠΌΡΠΉ ΠΏΠΈΡΠΎΠ½ΠΈΡΠ΅ΡΠΊΠΈΠΉ ΡΠΏΠΎΡΠΎΠ± ΡΠ΄Π΅Π»Π°ΡΡ ΡΡΠΎ β Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΡΡΡΠΎΠΊΡ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ Π² Π½Π°ΡΡ ΡΡΠ½ΠΊΡΠΈΡ main. ΠΠ°, Π½Π°ΠΌ Π² Π»ΡΠ±ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Π½ΡΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°ΡΡ ΡΡΠΎ, ΠΏΠΎΡΡΠΎΠΌΡ ΡΡΠΎ Π½Π΅ Π»ΠΈΡΠ½ΡΡ ΡΠ°Π±ΠΎΡΠ°:
Π‘Π»ΠΎΠΆΠΈΠ² Π²ΡΡ Π²ΠΌΠ΅ΡΡΠ΅, ΠΌΡ ΠΏΠΎΠ»ΡΡΠ°Π΅ΠΌ Ρ ΠΎΡΠΎΡΠΈΠΉ Π²ΡΠ²ΠΎΠ΄ Π΄Π»Ρ Π½Π°ΡΠ΅Π³ΠΎ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ°:
ΠΠΎΠ΄Π²ΠΎΠ΄ΠΈΠΌ ΠΈΡΠΎΠ³ΠΈ
ΠΡΠ°ΠΊ, Π² ΡΡΠΎΠΌ ΡΡΠΎΠΊΠ΅ ΠΌΡ ΡΠ°ΡΡΠΌΠΎΡΡΠ΅Π»ΠΈ ΠΌΠ½ΠΎΠ³ΠΎ Π²ΡΠ΅Π³ΠΎ. ΠΠΎΠΆΠ΅ΡΠ΅ Π³ΠΎΡΠ΄ΠΈΡΡΡΡ ΡΠΎΠ±ΠΎΠΉ, Π²Ρ Π½Π°ΠΏΠΈΡΠ°Π»ΠΈ ΡΠ²ΠΎΠΉ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠΉ CLI, ΠΈ Π²ΡΡ ΡΡΠΎ Ρ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΡΠΌ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎΠΌ ΡΠ°Π±Π»ΠΎΠ½Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°! ΠΡΡ ΠΎΠ΄Π½ΡΠΉ ΠΊΠΎΠ΄ Π½ΠΈΠΆΠ΅ Π΄ΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ ΡΡΠΎ.Β ΠΠ΅ ΡΡΠ΅ΡΠ½ΡΠΉΡΠ΅ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΅Π³ΠΎ Π΄Π»Ρ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΡ ΡΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½ΡΠΎΠ²: