952
Subscribers
No data24 hours
-37 days
-430 days
Posts Archive
ππ₯ΠΠΎΠ²ΡΠΉ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π».
π Π¨ΠΏΠ°ΡΠ³Π°Π»ΠΊΠ°: Π°ΡΡ
ΠΈΠ²Ρ Π² ΠΊΠΎΠ½ΡΠΎΠ»ΠΈ Linux
π ΠΠΈΠΆΠ΅ - ΠΊΠΎΡΠΎΡΠΊΠΈΠ΅ "ΡΠ°Π±ΠΎΡΠΈΠ΅ ΡΠΎΡΠΌΡΠ»Ρ" Ρ ΠΏΠΎΡΡΠ½Π΅Π½ΠΈΡΠΌΠΈ: ΡΡΠΎ Π΄Π΅Π»Π°Π΅Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π° ΠΈ Π·Π°ΡΠ΅ΠΌ ΠΊΠ»ΡΡΠΈ. Π€ΠΎΠΊΡΡ Π½Π° ΠΏΡΠ°ΠΊΡΠΈΠΊΡ: ΡΠΏΠ°ΠΊΠΎΠ²ΠΊΠ°/ΡΠ°ΡΠΏΠ°ΠΊΠΎΠ²ΠΊΠ°, ΠΏΡΠΎΡΠΌΠΎΡΡ, ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ, ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ ΡΠ΅Π»ΠΎΡΡΠ½ΠΎΡΡΠΈ, ΠΏΠΎΠ΄ΠΏΠΈΡΠΈ ΠΈ ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΠ΅. ΠΡΠ΅ ΠΏΡΠΈΠΌΠ΅ΡΡ ΡΠ°ΡΡΡΠΈΡΠ°Π½Ρ Π½Π° ΠΊΠΎΠΏΠΈΠΏΠ°ΡΡ ΠΈ Π±ΡΡΡΡΠΎΠ΅ Π²ΡΠΏΠΎΠΌΠΈΠ½Π°Π½ΠΈΠ΅.
π https://docs-python.ru/other/arhivirovanie-szhatie-linux/shpargalka-arhivy-konsoli-linux/
ππ₯ΠΠΎΠ²ΡΠΉ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π».
π ΠΠ΄ΠΈΠ½ΡΠΉ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΡΠΉ builder MySQLdb Π΄Π»Ρ ΠΏΠΎΠΈΡΠΊΠ°.
π ΠΠ΄ΠΈΠ½ΡΠΉ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΡΠΉ builder raw SQL Π΄Π»Ρ PyMySQL ΠΈ mysqlclient/MySQLdb. 4 ΡΠ΅ΠΆΠΈΠΌΠ° ΠΏΠΎΠΈΡΠΊΠ° (ΡΡΡΠΎΠ³ΠΈΠΉ AND, ΠΌΡΠ³ΠΊΠΈΠΉ OR, phrase, boolean FULLTEXT), LIKE Ρ ESCAPE, allowlist ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠΎΠ², COUNT(*) Π΄Π»Ρ ΠΏΠ°Π³ΠΈΠ½Π°ΡΠΈΠΈ ΠΈ ΠΏΡΠΈΠΌΠ΅ΡΡ Π²ΡΠ·ΠΎΠ²Π° Π±Π΅Π· ORM.
π https://docs-python.ru/packages/klient-bd-mysql/builder-mysqldb-poiska/
ππ₯ΠΠΎΠ²ΡΠΉ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π».
π ΠΠ·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ Ρ Π±Π»ΠΎΠΊΠΈΡΡΡΡΠΈΠΌ ΠΊΠΎΠ΄ΠΎΠΌ ΠΈ ΡΡΠΎΡΠΎΠ½Π½ΠΈΠΌΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°ΠΌΠΈ (ΠΊΡΡΡ asyncio)
π Π ΡΡΠΎΠΉ ΡΠ°ΡΡΠΈ ΡΠ°Π·Π±ΠΈΡΠ°Π΅ΠΌ, ΠΏΠΎΡΠ΅ΠΌΡ ΠΎΠ±ΡΡΠ½ΡΠ΅ Π±Π»ΠΎΠΊΠΈΡΡΡΡΠΈΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ (ΡΡΠ΅Π½ΠΈΠ΅ ΡΠ°ΠΉΠ»ΠΎΠ², ΡΡΠΆΡΠ»ΡΠ΅ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΡ, ΡΠΈΠ½Ρ
ΡΠΎΠ½Π½ΡΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ) "Π»ΠΎΠΌΠ°ΡΡ" Π°ΡΠΈΠ½Ρ
ΡΠΎΠ½Π½ΠΎΡΡΡ. ΠΠΎΡΠ°Π³ΠΎΠ²ΠΎ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ asyncio.to_thread ΠΈ run_in_executor, Π° ΡΠ°ΠΊΠΆΠ΅ Π²ΡΠ±ΠΎΡ ΠΌΠ΅ΠΆΠ΄Ρ ΠΏΠΎΡΠΎΠΊΠ°ΠΌΠΈ ΠΈ ΠΏΡΠΎΡΠ΅ΡΡΠ°ΠΌΠΈ. Π Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΠ΅ ΠΎΠ±ΡΡΠ΄ΠΈΠΌ Π³ΡΠ°Π½ΠΈΡΡ ΠΌΠ΅ΠΆΠ΄Ρ ΡΠΈΠ½Ρ
ΡΠΎΠ½Π½ΡΠΌ ΠΈ Π°ΡΠΈΠ½Ρ
ΡΠΎΠ½Π½
π https://docs-python.ru/tutorial/kurs-biblioteke-asyncio/vzaimodei-stvie-blokiruyuschim-kodom-storonnimi-bi/
ππ₯ΠΠΎΠ²ΡΠΉ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π».
π ΠΡΡ
ΠΈΡΠ΅ΠΊΡΡΡΠ° Π°ΡΠΈΠ½Ρ
ΡΠΎΠ½Π½ΡΡ
ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΈ ΡΠ°Π±Π»ΠΎΠ½Ρ ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ (ΠΊΡΡΡ asyncio)
π Π ΡΡΠΎΠΉ ΡΠ°ΡΡΠΈ ΡΠ°Π·Π±Π΅ΡΡΠΌ, ΠΊΠ°ΠΊ ΠΈΠ· ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΡ
ΠΊΠΎΡΡΡΠΈΠ½, Π·Π°Π΄Π°Ρ ΠΈ ΠΎΡΠ΅ΡΠ΅Π΄Π΅ΠΉ ΡΠΎΠ±ΡΠ°ΡΡ ΡΠ΅Π»ΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅: ΠΏΡΠ» ΠΈΡΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»Π΅ΠΉ, ΠΊΠΎΠ½Π²Π΅ΠΉΠ΅ΡΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ, ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠ΅ Π½Π°Π³ΡΡΠ·ΠΊΠΈ ΠΈ ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎΠ΅ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΠ΅. ΠΠΎΡΠΌΠΎΡΡΠΈΠΌ Π½Π° ΡΡΡΡΠΊΡΡΡΡ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ, Π»ΠΎΠ³ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ ΡΠ°Π±ΠΎΡΡ Ρ ΡΠΈΠ³Π½Π°Π»Π°ΠΌΠΈ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ.
π https://docs-python.ru/tutorial/kurs-biblioteke-asyncio/arhitektura-asinhronnyh-prilozhenii-shablony-proek/
ππ₯ΠΠΎΠ²ΡΠΉ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π».
π Π’Π΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π°ΡΠΈΠ½Ρ
ΡΠΎΠ½Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° (ΠΊΡΡΡ asyncio)
π Π ΡΡΠΎΠΉ ΡΠ°ΡΡΠΈ ΡΠ°Π·Π±ΠΈΡΠ°Π΅ΠΌ ΠΏΠΎΠ΄Ρ
ΠΎΠ΄Ρ ΠΊ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ asyncio-ΠΊΠΎΠ΄Π°: ΠΊΠ°ΠΊ Π·Π°ΠΏΡΡΠΊΠ°ΡΡ async-ΡΡΠ½ΠΊΡΠΈΠΈ Π² ΡΠ΅ΡΡΠ°Ρ
Π±Π΅Π· ΡΡΠΎΡΠΎΠ½Π½ΠΈΡ
Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ ΠΈ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ pytest ΠΈ pytest-asyncio. ΠΠΎΡΠΌΠΎΡΡΠΈΠΌ, ΠΊΠ°ΠΊ ΠΈΠΌΠΈΡΠΈΡΠΎΠ²Π°ΡΡ Π°ΡΠΈΠ½Ρ
ΡΠΎΠ½Π½ΡΠ΅ Π²ΡΠ·ΠΎΠ²Ρ, ΠΏΡΠΎΠ²Π΅ΡΡΡΡ ΡΠ°ΠΉΠΌ-Π°ΡΡΡ, ΠΎΡΠΌΠ΅Π½Ρ Π·Π°Π΄Π°Ρ ΠΈ ΡΠ΅ΡΠ΅Π²ΠΎΠ΅ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠ΅.
π https://docs-python.ru/tutorial/kurs-biblioteke-asyncio/testirovanie-asinhronnogo-koda/
ππ₯ΠΠΎΠ²ΡΠΉ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π».
π ΠΠ°ΠΊ Π² asyncio-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ HTTP ΠΈ ΠΠ (ΠΊΡΡΡ asyncio)
π Π Π°Π·Π±Π΅ΡΠ΅ΠΌ ΠΊΠ°ΠΊ Π² asyncio-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ HTTP ΠΈ ΠΠ: ΡΠΎΠ·Π΄Π°ΡΠΌ Π΄ΠΎΠ»Π³ΠΎΠΆΠΈΠ²ΡΡΠΈΠ΅ Π°ΡΠΈΠ½Ρ
ΡΠΎΠ½Π½ΡΠ΅ HTTP-ΠΊΠ»ΠΈΠ΅Π½ΡΡ (aiohttp/httpx), ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ°Π΅ΠΌΡΡ ΠΊ PostgreSQL ΡΠ΅ΡΠ΅Π· asyncpg ΠΈ ΠΊ SQLite ΡΠ΅ΡΠ΅Π· aiosqlite, Π·Π°ΡΠ΅ΠΌ ΡΠ²ΡΠ·ΡΠ²Π°Π΅ΠΌ Π²ΡΡ Π² ΠΊΠΎΠ½Π²Π΅ΠΉΠ΅Ρ "HTTP => Π»ΠΎΠ³ΠΈΠΊΠ° => Π·Π°ΠΏΠΈΡΡ Π² ΠΠ".
π https://docs-python.ru/tutorial/kurs-biblioteke-asyncio/asyncio-prilozhenii-rabotat-http-bd/
ππ₯ΠΠΎΠ²ΡΠΉ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π».
π contextvars + asyncio: 'ΠΊΠ°ΡΠΌΠ°Π½Π½ΡΠΉ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ' Π΄Π»Ρ ΠΊΠΎΡΡΡΠΈΠ½ (ΠΊΡΡΡ asyncio)
π Π ΡΡΠΎΠΉ ΡΠ°ΡΡΠΈ ΠΊΡΡΡΠ° ΡΠ°Π·Π±Π΅ΡΡΠΌ Π΄Π²Π΅ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠ΅, Π½ΠΎ ΡΠ²ΡΠ·Π°Π½Π½ΡΠ΅ ΡΠ΅ΠΌΡ: contextvars + asyncio: "ΠΊΠ°ΡΠΌΠ°Π½Π½ΡΠΉ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ" Π΄Π»Ρ ΠΊΠΎΡΡΡΠΈΠ½ (request id, user id ΠΈ Ρ.ΠΏ.). trio / anyio: ΠΊΠ°ΠΊ ΠΏΠΈΡΠ°ΡΡ ΠΊΠΎΠ΄, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΠΈ Π½Π° asyncio, ΠΈ Π½Π° trio.
π https://docs-python.ru/tutorial/kurs-biblioteke-asyncio/contextvars-asyncio/
ππ₯ΠΠΎΠ²ΡΠΉ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π».
π ΠΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΡΠ΅ΡΠ΅ΠΏΡΡ ΠΈ Π½Π°Π±ΠΎΡ ΠΏΡΠΈΡΠΌΠΎΠ² (ΠΊΡΡΡ asyncio)
π ΠΠ΄Π΅ΡΡ ΡΠΎΠ±ΡΠ°Π½Ρ Π³ΠΎΡΠΎΠ²ΡΠ΅ ΡΠ°Π±Π»ΠΎΠ½Ρ Π΄Π»Ρ ΡΠ΅Π°Π»ΡΠ½ΡΡ
Π·Π°Π΄Π°Ρ, ΡΠ²ΡΠ·Π°Π½Π½ΡΡ
Ρ asyncio: ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠ΅ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΡΡ
Π·Π°ΠΏΡΠΎΡΠΎΠ², ΠΏΡΠ» Π²ΠΎΡΠΊΠ΅ΡΠΎΠ² Ρ ΠΎΡΠ΅ΡΠ΅Π΄ΡΡ ΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΎΠΉ ΠΎΡΠΈΠ±ΠΎΠΊ, ΠΌΡΠ³ΠΊΠ°Ρ ΠΎΡΡΠ°Π½ΠΎΠ²ΠΊΠ° ΡΠ΅ΡΠ²ΠΈΡΠ°, ΠΏΠΎΠ²ΡΠΎΡΡ Ρ ΡΠ°ΠΉΠΌ-Π°ΡΡΠΎΠΌ, ΠΎΠ±ΡΡΡΠΊΠ° Π½Π°Π΄ Π±Π»ΠΎΠΊΠΈΡΡΡΡΠ΅ΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΎΠΉ. Π ΠΊΠΎΠ½ΡΠ΅ - ΠΊΠΎΠ½Π΄Π΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ ΡΠΏΠΈΡΠΎΠΊ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΡ
ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°ΡΠΈΠΉ ΠΏΠΎ
π https://docs-python.ru/tutorial/kurs-biblioteke-asyncio/prakticheskie-retsepty-nabor-prie-mov/
ππ₯ΠΠΎΠ²ΡΠΉ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π».
π Π£ΡΠΈΠΌΡΡ Π½Π°Π±Π»ΡΠ΄Π°ΡΡ Π·Π° asyncio-ΡΠ΅ΡΠ²ΠΈΡΠΎΠΌ (ΠΊΡΡΡ asyncio)
π Π£ΡΠΈΠΌΡΡ Π½Π°Π±Π»ΡΠ΄Π°ΡΡ Π·Π° asyncio-ΡΠ΅ΡΠ²ΠΈΡΠΎΠΌ: ΠΏΡΠΎΡΠΈΠ»ΠΈΡΠΎΠ²Π°ΡΡ ΠΊΠΎΠ΄ ΠΈ Π½Π°Ρ
ΠΎΠ΄ΠΈΡΡ Π±Π»ΠΎΠΊΠΈΡΡΡΡΠΈΠ΅ ΠΌΠ΅ΡΡΠ°, ΡΠ½ΠΈΠΌΠ°ΡΡ ΠΌΠ΅ΡΡΠΈΠΊΠΈ (Π²ΡΠ΅ΠΌΡ, ΠΎΡΠ΅ΡΠ΅Π΄ΠΈ, Π·Π°Π΄Π°ΡΠΈ), Π΄ΠΎΠ±Π°Π²Π»ΡΡΡ ΡΡΠ°ΡΡΠΈΡΠΎΠ²ΠΊΡ, Π° ΡΠ°ΠΊΠΆΠ΅ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ Π·Π°Π΄Π°Π²Π°ΡΡ ΡΠ°ΠΉΠΌ-Π°ΡΡΡ ΠΈ ΡΠ΅ΡΡΠ°ΠΈ, ΠΈΠ·Π±Π΅Π³Π°Ρ ΡΡΠΎΡΠΌΠ° ΠΏΠΎΠ²ΡΠΎΡΠΎΠ² ΠΈ ΠΊΠ°ΡΠΊΠ°Π΄Π½ΡΡ
ΠΏΠ°Π΄Π΅Π½ΠΈΠΉ.
π https://docs-python.ru/tutorial/kurs-biblioteke-asyncio/uchimsya-nablyudat-asyncio-servisom/
ππ₯ΠΠΎΠ²ΡΠΉ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π».
π ΠΠ΅ΡΠΊΠΎΠ»ΡΠΊΠΎ event loop Π² ΡΠ°Π·Π½ΡΡ
ΠΏΠΎΡΠΎΠΊΠ°Ρ
(ΠΊΡΡΡ asyncio)
π ΠΠ΅ΡΠΊΠΎΠ»ΡΠΊΠΎ event loop Π² ΡΠ°Π·Π½ΡΡ
ΠΏΠΎΡΠΎΠΊΠ°Ρ
Π½ΡΠΆΠ½Ρ, ΠΊΠΎΠ³Π΄Π° ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΡΠΆΠ΅ Π·Π°Π½ΡΡΠΎ (GUI, legacy-ΠΏΠΎΡΠΎΠΊΠΈ), Π° asyncio ΠΆΠΈΠ²ΡΡ Π² ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎΠΌ ΡΠΎΠ½Π΅. Π ΠΏΠΎΡΠΎΠΊΠ΅ ΡΠΎΠ·Π΄Π°ΡΠΌ new_event_loop + set_event_loop + run_forever, Π° ΠΈΠ· Π΄ΡΡΠ³ΠΈΡ
ΠΏΠΎΡΠΎΠΊΠΎΠ² ΠΎΠ±ΡΠ°Π΅ΠΌΡΡ Ρ Π½ΠΈΠΌ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ΅ΡΠ΅Π· call_soon_threadsafe/run_coroutine_threadsafe.
π https://docs-python.ru/tutorial/kurs-biblioteke-asyncio/neskolko-event-loop-raznyh-potokah/
ππ₯ΠΠΎΠ²ΡΠΉ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π».
π ΠΡΡΡ ΠΏΠΎ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ΅ asyncio
π ΠΠΎ Π²ΡΡΡΠΏΠΈΡΠ΅Π»ΡΠ½ΠΎΠΉ ΡΠ°ΡΡΠΈ ΡΠ°Π·Π±Π΅ΡΡΠΌ, ΠΏΠΎΡΠ΅ΠΌΡ ΠΏΡΠΎΡΡΠΎΠΉ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΡΠΉ ΠΊΠΎΠ΄ ΠΈΠ½ΠΎΠ³Π΄Π° ΡΠΎΡΠΌΠΎΠ·ΠΈΡ, ΡΠ΅ΠΌ Π°ΡΠΈΠ½Ρ
ΡΠΎΠ½Π½ΡΠΉ ΠΏΠΎΠ΄Ρ
ΠΎΠ΄ ΠΎΡΠ»ΠΈΡΠ°Π΅ΡΡΡ ΠΎΡ ΠΏΠΎΡΠΎΠΊΠΎΠ² ΠΈ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ², ΠΈ ΠΊΠ°ΠΊΠΈΠ΅ Π±Π°Π·ΠΎΠ²ΡΠ΅ ΠΏΠΎΠ½ΡΡΠΈΡ Π΅ΡΡΡ Π² asyncio: ΡΠΈΠΊΠ» ΡΠΎΠ±ΡΡΠΈΠΉ, ΠΊΠΎΡΡΡΠΈΠ½Π°, Π·Π°Π΄Π°ΡΠ°, Π±ΡΠ΄ΡΡΠ΅Π΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅. Π ΠΊΠΎΠ½ΡΠ΅ Π½Π°ΠΏΠΈΡΠ΅ΠΌ ΠΏΠ΅ΡΠ²ΡΠΉ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΡΠΉ Π°ΡΠΈΠ½Ρ
ΡΠΎΠ½Π½ΡΠΉ ΠΏΡΠΈΠΌΠ΅Ρ.
π https://docs-python.ru/tutorial/kurs-biblioteke-asyncio/
ππ₯ΠΠΎΠ²ΡΠΉ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π».
π Π¨ΠΏΠ°ΡΠ³Π°Π»ΠΊΠ° ΠΏΠΎ SQLAlchemy
π Π¨ΠΏΠ°ΡΠ³Π°Π»ΠΊΠ° ΡΠΎΠ±ΠΈΡΠ°Π΅Ρ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΌΠ΅ΡΡΠ΅ ΠΎΡΠ½ΠΎΠ²Π½ΡΠ΅ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΠΈ SQLAlchemy Core ΠΈ ORM (2.x ΡΡΠΈΠ»Ρ): ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Engine, ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ, Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π·Π°ΠΏΡΠΎΡΠΎΠ², ΡΠ²ΡΠ·ΠΈ, Π·Π°Π³ΡΡΠ·ΡΠΈΠΊΠΈ, ΠΌΠΈΠ³ΡΠ°ΡΠΈΠΈ ΠΈ async. ΠΠ°ΡΠ΅ΡΠΈΠ°Π» ΠΎΡΠΎΡΠΌΠ»Π΅Π½ ΠΊΠ°ΠΊ Π½Π°Π±ΠΎΡ "Π±ΡΡΡΡΡΡ
ΡΠΎΡΠΌΡΠ»" ΠΈ ΡΠΈΠΏΠΎΠ²ΡΡ
ΠΏΠ°ΡΡΠ΅ΡΠ½ΠΎΠ². ΠΠΎΠ΄Ρ
ΠΎΠ΄ΠΈΡ ΠΊΠ°ΠΊ ΠΏΠ°ΠΌΡΡΠΊΠ° Π΄Π»Ρ Π΅ΠΆΠ΅Π΄Π½Π΅Π²Π½ΠΎΠΉ ΡΠ°Π±ΠΎΡΡ.
π https://docs-python.ru/packages/sqlalchemy-python/shpargalka-sqlalchemy/
ππ₯ΠΠΎΠ²ΡΠΉ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π».
π Π§ΡΠΎ ΠΈΠΌΠ΅Π½Π½ΠΎ Π΄Π°Π΅Ρ unicodedata ΠΈ ΠΊΠΎΠ³Π΄Π° ΠΎΠ½ Π½ΡΠΆΠ΅Π½
π unicodedata Π½ΡΠΆΠ΅Π½ Π΄Π»Ρ Π½ΠΎΡΠΌΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ, ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ ΠΈ Π²Π°Π»ΠΈΠ΄Π°ΡΠΈΠΈ Unicode-ΡΡΡΠΎΠΊ: ΠΏΡΠΈ Π΄Π΅Π΄ΡΠΏΠ»ΠΈΠΊΠ°ΡΠΈΠΈ, ΠΏΠΎΠΈΡΠΊΠ΅, ΡΠ°Π±ΠΎΡΠ΅ Ρ ΡΠΈΡΡΠ°ΠΌΠΈ ΠΈ ΡΠΈΠ»ΡΡΡΠ°ΡΠΈΠΈ ΠΏΠΎ ΠΊΠ°ΡΠ΅Π³ΠΎΡΠΈΡΠΌ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ².
π https://docs-python.ru/standart-library/modul-unicodedata-python/imenno-daet-unicodedata-nuzhen/
ππ₯ΠΠΎΠ²ΡΠΉ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π».
π Π¨ΠΏΠ°ΡΠ³Π°Π»ΠΊΠ° Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡΠ° Nginx
π Π‘ΠΎΠ±ΡΠ°Π»ΠΈ ΠΊΠΎΠΌΠΏΠ°ΠΊΡΠ½ΡΡ ΡΠΏΠ°ΡΠ³Π°Π»ΠΊΡ ΠΏΠΎ Nginx: ΡΡΡΡΠΊΡΡΡΠ° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ, ΠΊΠ»ΡΡΠ΅Π²ΡΠ΅ Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ²Ρ, ΡΠΈΠΏΠΎΠ²ΡΠ΅ location ΠΈ rewrite, ΡΠ°Π±Π»ΠΎΠ½ HTTPS, Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ ΠΏΡΠΎΠΊΡΠΈ, ΠΊΡΡΠ°, Π»ΠΈΠΌΠΈΡΠΎΠ² ΠΈ Π»ΠΎΠ³ΠΈΡΠΎΠ²Π°Π½ΠΈΡ. Π£Π΄ΠΎΠ±Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΊΠ°ΠΊ ΠΏΠ΅ΡΠ²ΠΈΡΠ½ΡΡ "ΠΏΠ°ΠΌΡΡΠΊΡ" ΠΏΡΠΈ Π½Π°ΡΡΡΠΎΠΉΠΊΠ΅ ΠΈ ΡΠΎΠΏΡΠΎΠ²ΠΎΠΆΠ΄Π΅Π½ΠΈΠΈ.
π https://docs-python.ru/other/server-nginx/shpargalka-administratora/
ππ₯ΠΠΎΠ²ΡΠΉ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π».
π Π Π΅ΡΠ΅ΠΏΡΡ ΠΈ best practices Π΄Π»Ρ Nginx
π Π‘ΠΎΠ±ΡΠ°Π½Ρ ΡΠΈΠΏΠΎΠ²ΡΠ΅, ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ ΠΏΡΠΈΠΌΠ΅Π½ΠΈΠΌΡΠ΅ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ Nginx: ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΡΠ°ΠΉΡ, API Ρ ΠΊΡΡΠ΅ΠΌ ΠΈ Π»ΠΈΠΌΠΈΡΠ°ΠΌΠΈ, SPA + backend, ΠΌΡΠ»ΡΡΠΈΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΡ ΠΈ ΡΠ°Π±Π»ΠΎΠ½Ρ Π»ΠΎΠ³ΠΈΡΠΎΠ²Π°Π½ΠΈΡ. ΠΠ°ΠΆΠ΄ΡΠΉ ΡΠ΅ΡΠ΅ΠΏΡ ΠΌΠΎΠΆΠ½ΠΎ Π²Π·ΡΡΡ ΠΊΠ°ΠΊ ΠΎΡΠ½ΠΎΠ²Ρ ΠΈ Π°Π΄Π°ΠΏΡΠΈΡΠΎΠ²Π°ΡΡ ΠΏΠΎΠ΄ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΠΉ ΠΏΡΠΎΠ΅ΠΊΡ.
π https://docs-python.ru/other/server-nginx/retsepty-best-practices/
ππ₯ΠΠΎΠ²ΡΠΉ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π».
π ΠΠΎΠ³ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Nginx Π² ΡΠΎΡΠΌΠ°ΡΠ΅ JSON
π ΠΠ°ΠΊ Π½Π°ΡΡΡΠΎΠΈΡΡ Π»ΠΎΠ³ΠΈ Nginx Π² ΡΠΎΡΠΌΠ°ΡΠ΅ JSON Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ² log_format ΠΈ access_log. Π Π°Π·Π±ΠΈΡΠ°Π΅ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ escape=json, Π²ΡΠ±ΠΎΡ ΠΊΠ»ΡΡΠ΅Π²ΡΡ
ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ
($request_time, $upstream_response_time ΠΈ Π΄Ρ.) ΠΈ Π±Π°Π·ΠΎΠ²ΡΠ΅ ΠΏΡΠΈΡΠΌΡ ΠΏΠΎΡΠ»Π΅Π΄ΡΡΡΠ΅Π³ΠΎ ΡΠ°Π·Π±ΠΎΡΠ° ΡΠ°ΠΊΠΈΡ
Π»ΠΎΠ³ΠΎΠ².
π https://docs-python.ru/other/server-nginx/logirovanie-json/
ππ₯ΠΠΎΠ²ΡΠΉ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π».
π ΠΠΈΠ½ΠΈβΠΏΡΠΎΠ΅ΠΊΡΡ Ρ Redis ΠΈ Python
π Π ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π»Π΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½Ρ Π³ΠΎΡΠΎΠ²ΡΠ΅ ΠΌΠΈΠ½ΠΈ-ΠΏΡΠΎΠ΅ΠΊΡΡ, ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½ΡΡΡΠΈΠ΅ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ Π°ΡΠΏΠ΅ΠΊΡΡ ΡΠ°Π±ΠΎΡΡ Ρ Redis Π² Python. Π Π°ΡΡΠΌΠΎΡΡΠ΅Π½Ρ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΊΠ΅ΠΉΡΡ: Ρ
ΡΠ°Π½Π΅Π½ΠΈΠ΅ ΡΠ΅ΡΡΠΈΠΉ, ΠΎΠ³ΡΠ°Π½ΠΈΡΠΈΡΠ΅Π»Ρ Π·Π°ΠΏΡΠΎΡΠΎΠ², ΡΠ°Π±Π»ΠΈΡΠ° Π»ΠΈΠ΄Π΅ΡΠΎΠ², ΡΠ°Ρ, ΠΎΡΠ΅ΡΠ΅Π΄Ρ ΠΏΠΈΡΠ΅ΠΌ ΠΈ ΠΊΠ΅ΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅.
π https://docs-python.ru/other/podgotovka-okruzheniya-redis/mini-proekty/
ππ₯ΠΠΎΠ²ΡΠΉ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π».
π Π¨ΠΏΠ°ΡΠ³Π°Π»ΠΊΠ° ΠΏΠΎ Redis Π΄Π»Ρ Python ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠΎΠ²
π Π¨ΠΏΠ°ΡΠ³Π°Π»ΠΊΠ° ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ Π±ΡΡΡΡΡΠΉ ΠΏΠ΅ΡΠ΅ΡΠ΅Π½Ρ ΠΊΠΎΠΌΠ°Π½Π΄ Redis ΠΏΠΎ ΡΠΈΠΏΠ°ΠΌ Π΄Π°Π½Π½ΡΡ
ΠΈ Π³ΠΎΡΠΎΠ²ΡΠ΅ ΠΎΠ±ΡΠ°Π·ΡΡ ΠΊΠΎΠ΄Π° Π½Π° Python Π΄Π»Ρ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ, ΠΊΠ΅ΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ, Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΎΠΊ ΠΈ ΠΎΡΠ΅ΡΠ΅Π΄Π΅ΠΉ. Π Π½Π΅ΠΉ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Ρ ΡΠΈΠΏΠΎΠ²ΡΠ΅ ΡΠΎΡΠΌΠ°ΡΡ ΠΊΠ»ΡΡΠ΅ΠΉ, ΡΠ°ΡΡΡΠ΅ ΠΎΡΠΈΠ±ΠΊΠΈ ΠΈ ΠΊΡΠ°ΡΠΊΠΈΠ΅ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°ΡΠΈΠΈ Π΄Π»Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ².
π https://docs-python.ru/other/podgotovka-okruzheniya-redis/shpargalka-programmistov/
ππ₯ΠΠΎΠ²ΡΠΉ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π».
π ΠΠ°ΠΊΠ΅Ρ ΠΏΡΠ°ΠΊΡΠΈΠΊΠΈ Redis (26 Π·Π°Π΄Π°Ρ Ρ ΡΠ΅ΡΠ΅Π½ΠΈΡΠΌΠΈ)
π ΠΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ Π·Π°Π΄Π°ΡΠΈ ΠΏΠΎ Redis Π΄Π»Ρ Python-ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ². ΠΠ°Π΄Π°Π½ΠΈΡ Π²Π°ΡΡΠΈΡΡΡΡΡΡ ΠΎΡ Π±Π°Π·ΠΎΠ²ΡΡ
ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ Ρ ΡΠΈΠΏΠ°ΠΌΠΈ Π΄Π°Π½Π½ΡΡ
Π΄ΠΎ ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡΠ½ΡΡ
ΠΏΡΠΎΠ΅ΠΊΡΠΎΠ², ΡΠ°ΠΊΠΈΡ
ΠΊΠ°ΠΊ ΠΎΠ³ΡΠ°Π½ΠΈΡΠΈΡΠ΅Π»ΠΈ ΡΠ°ΡΡΠΎΡΡ ΠΈ ΡΠΈΡΡΠ΅ΠΌΡ ΠΎΡΠ΅ΡΠ΅Π΄Π΅ΠΉ. ΠΠ»Ρ ΠΏΡΠΎΡΡΠΎΡΡ Π²ΡΠ΅ ΠΏΡΠΈΠΌΠ΅ΡΡ ΡΠΈΠ½Ρ
ΡΠΎΠ½Π½ΡΠ΅, Ρ ΠΎΠ±ΡΡΠ½ΡΠΌ redis-py.
π https://docs-python.ru/other/podgotovka-okruzheniya-redis/paket-praktiki/
ππ₯ΠΠΎΠ²ΡΠΉ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π».
π Π¨ΠΏΠ°ΡΠ³Π°Π»ΠΊΠ° ΠΏΠΎ ΠΌΠΎΠ΄ΡΠ»Ρ regex (Python)
π Π€ΠΈΠ½Π°Π»ΡΠ½Π°Ρ ΡΠΏΠ°ΡΠ³Π°Π»ΠΊΠ° ΠΏΠΎ regex - ΠΊΡΠ°ΡΠΊΠΈΠΉ ΡΠΏΡΠ°Π²ΠΎΡΠ½ΠΈΠΊ: ΠΎΡΠ½ΠΎΠ²Π½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ, ΡΠ»Π°Π³ΠΈ, ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ Π³ΡΡΠΏΠΏ ΠΈ ΠΊΠ²Π°Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠΎΠ², Unicode-ΡΠ²ΠΎΠΉΡΡΠ²Π° (\p{Cyrillic}, \p{Emoji}), ΠΏΠ»ΠΎΡΠ½ΡΠ΅ ΠΊΠ²Π°Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΡ (*+), Π°ΡΠΎΠΌΠ°ΡΠ½ΡΠ΅ Π³ΡΡΠΏΠΏΡ (?>...), Π½Π΅ΡΡΡΠΊΠΈΠΉ ΠΏΠΎΠΈΡΠΊ ((?e)), ΠΏΠ»ΡΡ Π³ΠΎΡΠΎΠ²ΡΠ΅ ΡΠ°Π±Π»ΠΎΠ½Ρ Π΄Π»Ρ ΡΠΈΠΏΠΎΠ²ΡΡ
Π·Π°Π΄Π°Ρ (ΡΠΌΠΎΠ΄Π·ΠΈ, e-mail, ΡΠΈΡΠ»Π°, ΠΊΠΈΡ
π https://docs-python.ru/packages/modul-regex-python/cheat-sheet-shpargalka/
