ToCode
Kanalga Telegramโda oโtish
ืืืคืื ืงืฆืจืื ืืืชืื ืชืื ืืืช ืื ืื ืคืจืง
Ko'proq ko'rsatish1 420
Obunachilar
Ma'lumot yo'q24 soatlar
+27 kunlar
-230 kunlar
Postlar arxiv
1 420
# ืืืค ืืื ืืงืก: ืื ืืกื ืืกืจืืืกืื ืืืืฆืขืืช SSH Tunnel
ืฆืจืืืื ืืืชืืืจ ืืกืจืืืก ืฉืจืฅ ืขื ืืืื ื ืืืจืช ืืื ื ืืกืืื ืืืื ืืืืช ืืฉ? ืืกืจืืืก ืืืจืืืง ืืงืฉืื ืจืง ืืืืืืจืื ื localhost ืืืชื ืืืืขืื ืืืืืฅ ืืืื ืืืช ืจืืฆืื ืืืฉืช? ืื ืชืืืจื ืืฉื ืืช ืืช ืืืืจืืช ืืืืช ืืืฉ ืื ืืฉื ืืช ืืช ื listen interface. ืื ืืฉ ืืื ืืืฉืช ssh ืืืืื ื ืืืจืืง ืืคืฉืื ืืื ืืืื ืืชืช ืคืืชืจืื ืืจืื ืืืชืจ ืืืืจ.
ืืืชื
-L ืืคืงืืืช ssh ืคืืชื ืชืขืื (tunnel) ืืื ืืืืื ื ืฉืืื ืืืืื ื ืืืจืืืงืช, ืื ืฉืชืืื ื ืชืืื ืืจืืฅ ืขื ืืืืื ื ืฉืืื ืืื ืกืืช ืืืชืืืจ ืืคืืจื ืืกืืื - ืืืืืืืืืช ืืืืืขื ืชืืฉืื ืืชืขืื ืืืืื ื ืืฉื ืื ืืชืชื ืื ืืืืื ืืชืืื ื ืฉืืื ืจืฆื ืขื ืืืืื ื ืืฉื ืื. ืืฆืืจื ืืืืช ืืคืฉืจ ืืืชืืืจ ืืืกืืก ื ืชืื ืื Production ืืจื ืืืฉืง ืืจืคื, ืืคืืื ืื ืืคืืจื ืฉื ืืกืืก ืื ืชืื ืื ืกืืืจ ืืืกืืก ืื ืชืื ืื ืืืืื ืจืง ืืืืืืจืื ืืงืืืืื.
ืืืื ื ืจืื ืืืืื ืขื redis - ืื ื ืืงืื ืฉืชื ืืืื ืืช Ubuntu, ืืชืงืื redis ืขื ืฉืชืืื ืืืืืฆืจ ืืืืืจ ssh ืืื ืืื ืื ืฉืืคืฉืจ ืืืื ืืืืื ื ืืืช ืืืชืืืจ ื ssh ืืืืื ื ืืฉื ืื. ืืชืืืืช ื ip ืฉืื ืื 192.168.64.15 ื 192.168.64.13.
ืงืืื ืื ืื ื ื ืื ืก ืืืืื ื 13 ืืฉื ืืืื ืืช ืฉืจืช ื redis ืื ืฉืืืืืจ ืืงืืื ืืืืฉื (ืืื ืื ืืืชืืืื):
$ systemctl stop redis-server
$ redis-cli
Could not connect to Redis at 127.0.0.1:6379: Connection refused
ืื ื ืื ืืจืืฅ ืืช ืืคืงืืื ืืืื ืืื ืืืืื ืฉืืฉ ืื ืืืฉืช ssh ืืืืื ื 13 ืืืืื ื 15:
ssh ubuntu@192.168.64.15 /bin/true
ืขืืฉืื ื ืื ืก ืืืืื ื 15 ืืฉื ืืืืื ืฉืืฉ ืื ืืืืืจ ื redis ืืืงืืื. ืืืืืจ ืฉื ืื ืืคืชื x ืืืืืื ืขื ืืขืจื 10:
$ ssh ubuntu@192.168.64.15
$ redis-cli
redis-cli
127.0.0.1:6379> set x 10
OK
ืืขืืฉืื ืืืืขืื ืืงืกื. ืืืืื ื 13 ืื ื ืืคืขืื:
$ ssh -L 6379:localhost:6379 ubuntu@192.168.64.15
ืืืกืคืจ 6379 ืืื ืืคืืจื ืฉื ืจืืืก. ืื ื ืืืชื ืืืชื ืคืขืืืื ืืื ืฉืืืืืจืื ืืืืื ื ืืืงืืืืช ื 6379 ืืืืืจื ืืืืืืืืช ืืคืืจื 6379 ืืืืื ื ืืฉื ืื. ืืคืงืืื ืืืจืืช ืืืคืขืืช SSH Session ืื ืื ืชืืคืชืขื ืืฉืืชื ืืืฆืืื ืืช ืขืฆืืื ืืชืื shell ืืืืื ื 15.
ื ืคืชื ืืช ืืืื ื 13 ืืืืื ื ืืกืฃ ืืฉื ืื ื ืืืชื:
$ redis-cli
ืืืคืขื ืืคืงืืื ืื ื ืืฉืื. ืืืชืจ ืืื ืื ื ืืืื ืืืืคืืก ืืช ืืขืจื ืฉื ืืคืชื x ืืืงืื 10, ืจืง ืืฉืืื ืืืืืช ืืืื ืฉืื ื ืืืืืจ ืืืืชื ืจืืืก:
127.0.0.1:6379> get x
"10"
ืืืืืจ ืืคืงืืื redis-cli ืฉืจืฆื ืขื ืืืื ื 13 ืืชื ืืืช ืืืืื ืขื ืืืืื ื ืืืงืืืืช ืืคืืจื 6379 ืืฉ ืฉืจืช redis, ืืืฆื ืืฉื ื ืืืืืืจ ื ืจืื ืืืืื ืืื ืืืืข ืืืืืื ื ืืืงืืืืช ืืืื ืืืจืืช ืฉ redis ืืงืฉืื ืจืง ืืืืฉืง ืืจืฉืช ืืืงืืื ืขืืืื ืืฆืืื ื ืืืชืืืจ ืืืื.1 420
# ืฉืืืจืื ืืืืคืืง ืืชืืงืืืช ืืืืืืืืช ืืงืืจืก ืจืืืงื
ืืื ืืืืจืื ืฉืื ื ืืืื ืืงืืจืก ืจืืืงื ืคื ืืืชืจ ืืื ืืืฆืืจื ืฉื ืคืจืืืงื ืืืคืก ืืื ืืืืืืืืช, ืืืฉืจ ืืื ืืืืื ืืฉ ืงืืืฅ webpack.config.js ืืฉืื. ืื ื ืืืืข ืฉืืขืืื ืืืืืชื ืืจืื ืคืขืืื ืชืฉืชืืฉื ื vite ืื create-react-app ืืื ืืืฆืืจ ืืช ืชืื ืืช ืืคืจืืืงื, ืืื ื ืืคืืื ืืืื ืืช ืืืืื ืืืื ืืืกืืจืช ืืงืืจืก, ืืื ืื ืืืืื ืฉืืฉืืืืืืืืช ืคืฉืืืืช ืืืคืฉืจ ืืืืื ืก ืืื ืงืืฆื ืืืืืจืืช ืืืืืื ืื ืื ืฉืืจื ืฉื ืื ืขืืืจ ืืืืื ืืื ืืืจืื ืขืืืืื.
(ืืื, ืืชื ืื ืจืื ืื ืชืฆืืืื ืืืืื ืก ืืื ืงืืฆื ืืืืืจืืช ืฉื create-react-app ืืฉืืชื ืจืง ืืชืืืืื ืืช ืืืจื ืืจืืืงื. ืืื ืขื ืงืืืฅ ืืืืคืืง ืฉื 20 ืฉืืจืืช ืื ื ืืืืื ืฉืชืกืชืืจื).
ืื ืฉืื ืืืื ืืฉืื ืืฆืืจื ืืืืื ืจืืืงื ืื ืืืืจืกื ืฉื ืืืืคืืง. ืคืจืืืงื ืืืืืื ืืฉืชืืฉ ื webpack 4 ืื ืื ืื ืฉืืื ืืืืชื ืืื ืฉืืชืืชื ืืืชื. ืืื ืืืชืจืื ืืช ืืืชืืืช ืงืืฆื ืืืืจืืช ืคืจืืืงื ืืืคืก ืื ืฉืื ืืกืคืืง ืคืฉืืืื ืืื ืืฉืจืื ืืช ืคืืขื ืืืื. ืื ืืคืืืช ืืช ืืืง ืืคืืขื ืืืื.
ืืืืจืื ื ืืืืืชื ืืืจื ืืงืฉื ืฉ Node ืืืกืืคื ืืฉืื ืฉืืชื ืืฉ ืขื webpack 4, ืื ืฉืืจ ืืื ืืืจืื ื create-react-app ืืื ืื ืืช ืืืืจืืช ืืคืจืืืงื ืืงืื ืืช ืฉืื. ืืฉ ืคืจืืื ืืงืืฉืืจ ืืื. ืืื ืืงืจื ืืฉืืืจืื ื ืฉืืจืื ืืืช ืชืืื ืืืืื ืืช ืืืื ืืฉืืจื.
ืขืืืจ ืื ืืคืจืืืงืืื ืืชืืงืืืช ืืืืืืืืช ืืฉืื ืื ืืืืื ืฉืืื ืืฉืืขืืชื ืืงืืืฅ ืืืืืจืืช ืืื ืฉืื ืื ืืืืืืงื:
devServer: {
overlay: true,
},
ื:
devServer: {
client: {
overlay: true,
}
},
ืืคืจืืืงืืื ืืืชืจ ืืืืืื ืืงืืฆื ืืืืจืืช ืืืชืจ ืืกืืืืื ืื ืจืื ืฉืชืฆืืจืื ืืขืืื ืืืชืจ ืงืฉื. ืืืจืื ืืคืืจื ืืฉืืืจืื ืงืืฆื ืืืืจืืช ืืืืคืืง ื-4 ื-5 ืืคืฉืจ ืืืฆืื ืืงืืฉืืจ ืืื.
ืื ืขืืืื ืืฉืืืจ ืืืชื ื ืขื ืงืืจืก Webpack ืฉืื ืคื ืืืชืจ ืฉืืืื ืืืืคืืง 4. ืขืื ื ืฆืืจื ืืขืืืจ ืืืฉืืจื ืื ืืช ืื ืืืืืืืืช ืฉื.
ืืื ืืงืจื ืื ืืชื ืืงืืจืก ืจืืืงื ืคืฉืื ืชืืจืืื ืืืืฉ ืืช ืชืืงืืืช ืืืืืืืืช ืืชืงืืื ืืืจืกื ืืืฉื ื ืืฆืฆืช ืืขืืืืช ืขื ื webpack ืืืืฉ.1 420
# ืืฆืื ืืช ืืืชืืืื!
ืืืื ืชื ืืขืืืช ืืืืืื ืฉื ืืืืก ืืืืื ืืืจืื ืฉืืจืื ืคืขืืื ืืืงื ืืื ืืืืืช ืฉืืืขืื ืืกืืื ืฉืืชืงืื ืืขืฆื ืื ืืื ืืืืฉืจ ืืื ืฉืืฉืื ื ืฉืืืื, ืืคืฉืจ ืืืืื ืืื ืืืจืื ืืงืืืืช ืืืืจื ืฉื ืจืืืื ืืช ืขืืืื ืืคืื ืืืืืช "ืืืืืช ืืช ืืืชืืืื" ืื "ืืืื ืขื ืืืืฆืจ".
ืืื ื ืืืื, ืื ืื ื ืคืขื ื ืคืืชื ืืืืจืืช ืืืื.
ืืฆื ืืื ืืื ืืืื ืจืืฆืื ืืืืืื ืืช ืืฆืืืช, ืืืฆื ืฉื ื ืืืืข ืืืื ืื ืืื ืืืชืจืืืื ืืืชื ืืคืื - ืืคืื ืฉืืืื ืืื ืื ืืืื ืืช ืืืืจืืืช ืืื ืฉืฆืจืื ืืฉืชืขืืื ืืื, ืืคืื ืฉืืืื ืืื ืืืชืื ืงืื ืฉืืืจื ืื ืืกืื ืืืชื ืื ืืืจืื ืื ืืืืจืืืช ืจืข, ืืื ืื ืืคืื ืืืฉืื ืื. ื ืืื, ืืืฆื ืขืืฉืื ืืืื ืื ืืฉืื ืืืคืืชืื ืื ืืชืงืื ืืกืคืืง ืืืจ, ืืื ืืคืืืช ืื ืื ืืฉืื ืืืกืื ืฉืื ืื ื ืืืืจืื.
ืืืื ืืืงืื ืืืคืฉ ืืืคื ืืื ืืื ืฉืืืืข ืื ืืืื ืืชืจืื ืืชื ืืืฆื ืืช ืขืฆืื ื ืื ืก ืืืื ื ื, ืฉืืื ืคืจืื ืืจืืืืื ืฉืืฃ ืืื ืื ืืืืจ ืจืง ืืื ืืืจืืืช ืฉืืืืขืื ืฉืืืื ืื ืืื ืืกืคืืง. ืืฉ ืื ืืืจ ืฉืืจืืืื ืืืืื ืืจืืฉืื ืื ืฉื ืืืื ืืจื ื ืื ืืชืงืื ืืขืืืื ืืืื ืฉืื ืืืข ืืื ืืฆืืืจ ืคืื ืืช ืขืืืืืช ื div (ืืื ืื ืืื ืืคื ื ืฉืืื ืื ื border-radius), ืืืืจ ืืืจ ืฉืืืจ ืืืืืก ืืจืืืื ืจืืืงื ืืืจื ืฉืื ืืืข ืืขื ืคื ืืช ืืฉืืืช ืฉื ืื ื Lifecycle Methods ืฉืืื.
ืืฉืื ืื ื ืืืคืฉืื ืืชืืืื ืืื ืคืื ื ืื ืืคืชืืข ืฉืื ืื ื ืืืฆืืื ืืงืืืช. ืืจืื ืืืชืจ ืืขื ืืื ืืืืื ืื ืืื ืฉืื ืฉืืืื ืืืืื ืขืจื ืื ืื ืืืืืื ืืืืื ืืืืจื. ืื ื ืืื ืฉืืืืช ืคืชืืืืช ืืืืชืจ ืืขื ืืื ืืช ืฉืืคืฉืจ ืืฉืืื ืืจืืืื:
1. ืกืคืจื ืขื ืืคืจืืืงื ืืืืจืื ืฉืื ืืช.
2. ืกืคืจื ืขื ืืชืืจืื ืืขื ืืื ืื ืฉื ืชืงืืช ืืื ืืคืจืืืงื.
3. ืืืื ืคืืฆ'ืจ ืืื ืื ืงืฉื ืืืืฉ ืืืื.
4. ืืืื ืคืืฆ'ืจ ืืืืช ืืืืื ืฉืืืื ืืื, ืืื ื ืฉืืจ ืืคืจืืืงืฉื? ืื ืงืจื ืฉื?
5. ืกืคืจื ืขื ืชืงืืช ืคืจืืืงืฉื ืืขื ืืื ืช ืฉืืืคืืช ืื.
6. ืืื ื ืจืื ืชืืืื ืคืืชืื ืชืืื ื ืืืืืื ืืื ืืื?
ืืจืืืื ืขืืืื ืืืื ืื ืกืืช ืืืฆืืจ ืฉืื ืืืืืื ืืช ืืืืืืืช ืฉื ืืื ืืื ืฉืืืื ื. ืืืืจื ืืื ืืืืืจ ืืืขืื ืืืื 10 ืืืขืืืื ืืืืื ืืืืจื ืืืืืื ืฉืื ืืงืจื ืืื ืื ื ืฆืืื ืืจืืืช ืืช ืืืื ื-9 ืฉืื ื ืืืจ.
1 420
# ืืื ืื ืื ืืื?
ืืฉืคืจืืืงื ืืชืงืื ืืื ืืืชืจ ืืืฆืคืื ืื ืืืขื ืชืืื ืืืื ืืืช ืื ืืืชืจ ืืืกืืืืช ืืืืืช:
1. ืื ืืืืจืื ืืกืคืืง ืืช ืืืื ืืืืืื.
2. ืืคืจืืืงื ืื ืืืืคืืื ืืกืคืืง ืืื ืืฆืจืื ืืืงืืจ ืื ืืื ืื ืชืื ืืื ืชื ืืขื.
3. ืืคืจืืืงื ืืืจืฉ ืฉืื ืืืื ืืืื ืฉืืืืข ืฉืืืจ (ืืขืืงืจ ืืืื ื ืืกืืก ืื ืชืื ืื) ืืฆืืจื ืฉืืืจืฉืช ืืืืจืฆืื ืืืืืข ืืฉื.
4. ืืคืจืืืงื ืืืจืฉ ืฉืื ืืืื ืืงืื ืงืืื ืฉืื ืื ืื ืืฉืื ืืืื.
ืืช ืฉืืืฉืช ืืจืืฉืื ืื ืงื ืืจืืืช. ืืจืืืขื ืืฆืืื ืืืคืชืืข ืืืชื ื ืื ืคืขื. ืืื ืืืืคืืื ืื ืืืจืืืืื ืฉื ืงืื ืฉืืื ื ืื ืื ืืฉืื ืืืื:
1. ืืืจื ืฉืื ืื ืื ื ืื ืืืืข ืื ืฉืืจืชื.
2. ืฉืื ืื ืืืงืื ืืื ืืืจืฉ ืฉืื ืื ืจืืื ืืขืฉืจืืช ืืงืืืืช ื ืืกืคืื.
3. ืืงืื ืืืื ืืกืคืจ ืื ืื ืื ืื ืฉืื ืื ืืื ืืขืฉืืช ืืช ืืืชื ืืืจ (ืืืืืื ืคืจืืืงื ืืื ืฉืื ืืืื Inline Style ืืงืืืคืื ื ืืืช ืจืืืงื ืืื CSS).
4. ืืงืื ืืืื ืืืืื ื ืกืชืจืื ืฉืฆืฆืื ืืขืงืืืช ืืฉืื ืื ืืืืจืืืื ืืืชื ืืฆืืื ืืืงืืืืช ืฉืื ืจืฆืืชื ืืืืืข ืืืืื.
ืืฉืื ืื ื ื ืชืงืืื ืืงืื ืฉืื ืืชืืื ืืฉืื ืืืื ืืืืจ ืืื ืืจืืข ืืขืฉืืช ืื "ืืกืคืื ืืช ืื", ืืืืฉืืจ ืฉืขืืช ื ืืกืคืืช ืืืื ืืช ืืขืงืคืื ืืื ืฉืืคืืฆ'ืจ ืฉืื ื ืืืืข ืืืื ืืคืจืืืงืฉื. ืืจืื ืืืชืจ ืืื ืืืชืืืื ืขื ืืืขืืืช ืืงืื ืืืืจืื ืืืชื ืืืืฉ ืืื ืฉืื ืืคืืฆ'ืจ ืฉืื ื ืืื ื ืขืืฉืื ืืื ืคืืฆ'ืจืื ืขืชืืืืื ืืืืื ืืืืื ืก ืืจืื ืืืชืจ ืืืจ.
(ืืื ืืจืืจ ืื ืฉืืคืขืืื ืืื ืืจืืจื ืืืื ืื ืืขืงืคืื. ืืฉืืื ืจืง ืืืืื ืคืจืง ืืื. ืื ืืฉื ืชืืื ืืืืจืื ืืช ืืฉืงืขืชื ืขื ืื ืคืืฆ'ืจ ืืืืฉ ืืืชืจ ืืื ืฉืืื ืฆืจืื ืจืง ืืืื ืืื ื ืืงืื, ืื ืื ืจืื ืฉืืื ืขืืื ืืื ืคืืืช ืืฉืืช ืคืขื ืืืช ืืกืืจ ืืช ืืงืื ืืืืจื ืื ืืื ืืช ืืช ืฉืืจ ืืคืืฆ'ืจืื. ืืืืื ืฉืจืืคืืช ืืืช ืื ืฉืืืช ืขืืืื ืืืื ืขื ืคืจืืืงื ืชืืื ื).
1 420
# ืชืฉืชืืช ืืชืืจ ืงืื ืืืืฉืืืืช ืฉื ืืืจืืืช
ืฉืืืงืชื ืงืฆืช ืขื AWS ืืฉืืืข ืืืืืื ืืืขืจืืืช ืืืจืืช ืืฉืืืืขืื ืืืืจ ืขื ืงืื ืชืฉืชืืช ืืืจืืืื ืืจืฉืช ืืืืืงืื ืืฉื ื ืกืืืื: ืืืืืจ ืืื ืืื.
ืืืจืื ืืืืจ ืืืื ืืื ืืืฆืืจ ืืฉืืืื ืืจื ื AWS Console, ืขื ืืฉืคืืื ืืื:
> In the AWS Console, create a new WebSocket API
ืืืจืื ื ืืื ืืืืื ืงืื ืืืืืืื ืฉืืืฆืจ ืืช ืืืฉืืืื:
policy = iam_resource.create_policy(
PolicyName=f'{lambda_role_name}-{self.permission_policy_suffix}',
PolicyDocument=json.dumps({
'Version': '2012-10-17',
'Statement': [{
'Effect': 'Allow',
'Action': ['execute-api:ManageConnections'],
'Resource': self.api_arn}]}))
policy.attach_role(RoleName=lambda_role_name)
ืืื ืกืคืง ืฉืืืชืจ ืงื ืืื ืืช ืืขืจืืืช ืขื ืืืจืืืื ืืืกืื ืืฉื ื. ืืืชืืจ (ืืืืืืื) ืื ืืืืื ืฉืืฃ ืืืจืืืช ืืื ืืืช ืชืฉืชืืช ืฉืืื ืืจืื ืคืืืช ืืงืื, ืืืื ืืืจื ืฉืืกืืืืื ืืื ืืช ืืช ืืชืฉืชืืช ืขื ืืืจืื ืืืกืื ืืจืืฉืื, ืขืืืื ืืฉ ืฆืืจื ืืงืืช ืืช ืื ืชืืืื ืืื ืื ืืืืื ืืก ืืืชื ืืงืื. ืจืง ืืืื ืฉืื ืฉืืชื ืืช ืืืืจืื ืืชืขืฆื ืื ืืืืจ ืฉืื ืื ื ืฆืจืืืื.1 420
# ืืื ืืงืจืื ืืืืชืื ืงืืฆื XML ื Python ืขื ElementTree
ืืืืืื ElementTree ืืื ืืืง ืืืกืคืจืื ืืกืื ืืจืืืช ืฉื ืคืืืชืื ืขืื ืืื ืืืจืกื 2.5. ืืื ื ืืฉื ืงื ืืืชืจ ืืืขืื ืืืชืจ ืืืฉืืืื ื xml.dom.minidom. ืืืื ื ืจืื ืืื ืืืฉืชืืฉ ืื ืืขืืจืช ืฉืืืฉ ืืืืืืืช ืคืฉืืืืช.
## ืืฆืืจืช ืืกืื XML ืืชืื ืงืื ืคืืืชืื
ืชืืื ืืช ืจืืฉืื ื ืืืงืืช ืงืื ืคืืืชืื ืืืืฆืจืช ืืกืื XML ืฉืืชืืื ืื. ื ืชืืื ืขื ืืงืื:
import xml.etree.ElementTree as ET
root = ET.Element('items')
for item in ['one', 'two', 'three']:
child = ET.SubElement(root, item)
child.set('length', str(len(item)))
ET.dump(root)
ืืืจื ืืืื ืืืืืื ืืคืื ืงืฆืื ET.Element ืืืฆืจืช ืืืื ื ื XML, ืืืคืื ืงืฆืื ET.SubElement ืืืฆืจืช ืืืื ื ืืื ืืชืื ืืืื ื ืืืจ. ืืคืื ืงืฆืื set ืฉื ืืืื ื ืืืืืจื ืขืจื ื Attribute. ืกื ืืื ืืงืื ืืืคืืก ืืช ืืกืื ื XML ืืื:
<items><one length="3" /><two length="3" /><three length="5" /></items>
ืืื ืืืชืื ืืช ืืืกืื ืืงืืืฅ ืืคืฉืจ ืืืฉืชืืฉ ืืคืื ืงืฆืื write ืฉื ืืืื ื:
root.write('input.xml')
## ืงืจืืืช ืืกืื XML ืืื
ืืืจื ืฉืืชืื ื ืืช ืืงืืืฅ ืืคืฉืจ ืืืชืงืื ืืชืืื ืืช ืฉื ืื ืฉืชืงืจื ืืืชื ืืชืืคืืก ืืช ืฉืืืฉืช ืืืืื ืืื ืืื ื. ืืชืืื ืืช ืืฉืชืืฉืช ืืืืชื ElementTree ืจืง ืฉืืคืขื ืืืืืื ืชืืื ืขื ืืืืื ื. ืื ื ืืงืื:
import xml.etree.ElementTree as ET
doc = ET.parse('input.xml')
root = doc.getroot()
for child in root:
print(f'"{child.text}" has length {child.attrib["length"]}')
ื ElementTree ืืืืื ืืื ืืชื ืืืื ืืื ืืืืืงืืื ืจืืืืื ืฉื ืคืืืชืื - ืืคืฉืจ ืืจืืฅ ืืืืืื ืขื ืืืื ื ืืื ืืงืื ืืช ืื ืืืืืื ืฉืื, ืืคืฉืจ ืืคื ืืช ืืืืื ื ืืืื ืืงืก ืืกืืื ืืื ืืงืื ืืื ืกืคืฆืืคื, ืืืคืฉืจ ืืืฉืช ืืืืคืืื attrib ืืื ืืงืื ืืช ืื ื Attributes ืื ื text ืืื ืืงืื ืืช ืืืงืกื ืฉื ืืืืื ื.
## ืืืคืืฉ ืืืกืื XML ืืขืืจืช XPath
ืคืืฆ'ืจ ืืืืืง ื ืืกืฃ ืฉื ElementTree ืืื ืืชืืืื ื XPath, ืฉืืืคืฉืจืช ืืืคืืฉ ืฉื ืืืื ืืื ืกืคืฆืืคืืื ืืขืฅ. ืืืืืื ืืืื ืื ื ืจืืฆื ืืืฆืื ืืช ืื ืืืืื ืืื ืฉืืืคืืื length ืฉืืื ืืื 3, ืืืืืจ ืืช ืืืืื ืืื one ื two. ืื ื ืืงืื:
import xml.etree.ElementTree as ET
doc = ET.parse('input.xml')
for child in doc.findall("./*[@length='3']"):
print(child.text)
ืืคืื ืงืฆืื findall ืืงืืืช ืฉืืืืชืช xpath ืืืืืืจื ืจืฉืืื ืฉื ืชืืฆืืืช. ืื ืืชื ืื ืืืืืื ืืื ืงืืจืืื ืืช ื XPath ืื ืืงืืฉืืจ ืืื ืืฉ ืืฃ ืงืืฆืืจืื ื ืืื ืฉืืกืืืจ ืขื ืื ืืชืืืืจ.
ืืืืืข ื ืืกืฃ ืืขืื ืืืืืืืช ืขื ElementTree ืฉืืื ืื ืืืืืง ืืช ืชืืขืื ืืืืืื ืืชืืขืื ืฉื ืคืืืชืื ืืงืืฉืืจ:
https://docs.python.org/3/library/xml.etree.elementtree.html1 420
# ืืืฉ ืืืชืจ: ืฉืืขืืจื ืืจืืื (ืืืงืื ืืืืื ืจืื)
ืื ืืืจืื,
ืืื ืฉืืืงืื ืืืื ืฉืืชื ืื ืืฉื ื ืื ืงืืขืชื ืขืืืื ืชืืจืืืื ืืืืืื ืจืื. ืืืืช ืืื ืฉืืฉืืืขืืช ืืืืจืื ืื ืืชืืืืชื ืืืื ืืคืืจืื ืฉื ืืชืื ืื ืฉืื ื ืจืืฆื ืืืืกืืฃ ืืืชืจ. ืืืืืื ืจืื, ืฉืืื ืืืื ืคืืคืืืจืืื ืืชืงืืคืช ืืงืืจืื ื, ืืชืืืื ืืืจืืืฉ ืืืืฉื ืื. ืืฆื ืืื ืืืืชื ืฉืขื ืฉื ืืืืื ืจ ืืืื ืืืืชื ืฉืืืื ืืืื ืืื, ืฉืืคืฉืจ ืืฉืืื ืฉืืืืช ืืฉืืคืฉืจ ืืืจืืื ืืช ืื ืืฉื ืืคื ืืืืื ืื ืฉืืืืช ืืขื ืืื ืื ืืชืื. ืืื ืืฆื ืฉื ื ืื ืฉื ืืกื ืืืืื ืืืืงืืืืช ืฉื ืืืชื ืืืืื ืจืื ืืจืื ืคืขืืื ืืื ืืืืืื ืื ืืื ืฆืจืื ืืืื ืืงืืขืื ืืจืืืื ืืื.
ืืขืื ื ืืกืคืช ืฉืืืชื ืื ืขื ืืืืืื ืจืื ืืืชื ืืืืืฆื ืืฉืขืืช - ืืืื ืฉืืืื ืชื ืืช ืืืื ืืืืชื ืฉืขื ืจืฆืืชื ืืืฆืืจ ืืกืคืืง ืชืืื ืฉืืขื ืืื ืืช ืืืื, ืืื ืื ืืฉืืืจ ืืงืื ืืืืจืื ืืืชืจ ืงืื ืื ืืื ืขืืืื ืฉืืืืฉืืื. ืื ืืืืืื ืจืฆืืชื ืืืจืืืช ืืขืฉืจ ืืงืืช ืืืื ืชืืกืฃ ืืขืืืื ืืืื ืืืชืจ ืขื git ื VS Code, ืืืืชื ืฆืจืื ืืืืืืฉ ืขื ืื ืชืืื ืืฉืขื ืฉืืื ืืื ืื ืชืืื ืืชืืื.
ืืคืืชืจืื ืฉืื ื ืืืื ืื ืกืืช ืืืืืฉืื ืืงืจืืืื ืืืื ืืงืืื ืืกืื ืืจืื ืืช ืฉื ืชืื ื ืืจืืื, ืฉืืืื ืงืฆืจืื ืืืชืจ ืืืืืืงืื ืืืชืจ ืืืืืื ืจืื, ืืืขืืจื ืขืจืืื ืืืืื ืืฉืืขืืจืื ืืงืืจืกืื. ืืืืจื ืฉื ืืืชื ืืืืืงืื ืืื ืืชืช ืืื ืฉืื ืฉื ืืฆืืื ืืงืจืืช ืกืืฃ ืงืืจืก ืื ืฉืืืจ ืกืืืื ืงืืจืก ืืคืฉืจืืช ืืืจืืื ืืช ืืืืข ืขื ืืืชื ื ืืฉื ืฉืืืจ ืืืืจืื. ืื ื ืืชืื ื ืืืชืืื ืขื ืืืืืง ืืื ืืฉืืืข ืืืงืืื ืืืขืืืช ื 2-3 ืืื ืฉืืชืงืื ืืื ืืืช ืืชืฉืชืืืช ืืกืืื.
ืืฉืื ืจืืฉืื ืฉืืขืืจืื ืืื ืืืื ืกืืืจืื ืืื ืืืื ืืืื ืืื ืืงืืจืกืื. ืื ื ืืงืืื ืืื ืฉืืืืืช ืชืืื ืืืงืืื ืืขืชืื ืื ืฉืืขืืจืื ืคืชืืืื, ืืืฉืื ืืงืจื ืื ืืืคืืขื ืจืืื ืื ืคื ืืื ืืืืืืื.
ืืื ืชืืื ืืืืื ืื ืืืืืง ืืช ืฉืืขืืจ ืืืจืืื ืืจืืฉืื ืฉืืืจ ืขืื ืื ืืฉื git ืืืื ืืืื ืืืืื ืฉื Pull Request. ืืฉืืขืืจ ืืื ืืขืฆื ืืจืืื ืฉื ืคืืกื ืฉืืชืืชื ืขื ืืืชื ื ืืฉื, ืืืืืืื ืืืื ืืช ืื ืืฆืขืืื ืืคืืกื ืขื ืืกืืจ ืืคืืจื ืขื ืื ืืื ืืืจืืื ืขื ืืกืื ื ืืืืฆืืข revert ื merge ืืฉื. ืื ืืชื ืื ืืืื ืืขืืืืื ื git ืื ื ืืืื ืฉืืื ืืขืืืจ ืืื.
ืื ืืฉ ืืื ื ืืฉืืื ืงืื ืื ื ืืกืคืื ืฉืืืืชื ืจืืฆืื ืืืืื ืขืืืื ืืืจืืื, ืืื ืืื ืืืขืืืืืช ืฉื ืืืืื ืคื ืืืชืจ, ืืฉืื ืืฉืืืข ืืื ืกืืช ืืืืกืืฃ. ืคืฉืื ืชืฉืืืจื ืืืืขื ืื ืฉืืื ืืืื.
1 420
/** @type {import('tailwindcss').Config} */
module.exports = {
content: [
"./index.html",
"./src/**/*.{js,ts,jsx,tsx}",
],
theme: {
extend: {},
},
plugins: [],
}
ืืืืืกืืฃ 3 ืฉืืจืืช ืืงืืืฅ ื src/index.css ืืคืจืืืงื:
@tailwind base;
@tailwind components;
@tailwind utilities;
ืืชื ืืืืื ืื ืื ืกืืช ืืช ืื ืืืืืืืง ืืช ืงืื ืืืืืื ืฉืื ืืคืจืืืงื ืฉืืฆื ืืื ืืจืืืช ืืช ืืืืืืืื ื ืืคืขืืื ืืคืจืืืงื ืจืืืงื ืฉืืื.1 420
# ืื ืืขืืืื ืขื ืจืืืงื - Tailwind CSS ืืื ืจืขืืื ืืขืืื
ืกืคืจืืืช Tailwind CSS ืืฆืืขื ืคืจืืืืืืจืง ืืืื ืคืฉืื ืืืชืืืช CSS ืืื ืืืชืื CSS ืืืื. ืืจืขืืื ืืื ืฉืืืงืื ืืืชืื ืืืคืืื CSS ืื ืื ื ืืืกืืคืื ืงืืืก ืืืืื ืืืืื ื, ืืืืขืฉื ืืื ืืืคืืื ืืืื ืขืจื ืืฉ ืงืืืก ืฉืืชืืื ืื. ืืื ืฉื ืืืืืืืื ื ืืื ืฉืงืืฆื ื CSS ืืืืฆืจืื ืืื ืืืช ืืคื ืืงืืืกืื ืฉืจืฉืืชื ืื ืฉืืื ืืกืชืืจ ืื CSS ืื ืืืื ืืืจืื ืืืืชืจืื.
ืืืื ืฉื ืืืืืืืื ื ืืืืฉืืื ืจืืืงื ืืื ืฉืื ืคืฉืื ืคืืชืจืื ืืจืื ืืืชืจ ืงื ืืืจืื ืืืชืจ ืืื ืืืชืืืช Inline Styles.
ืืืื ื ืจืื ืืื ืื ืขืืื ืืืื ืืฉืื ืืช ืืืืืืืื ื ืืืืฉืื ืฉืืื.
## ืืืืืืืื ื ืื Inline Style
ืืจืื ืืืกืืกืืช ืขืืืจ ืืืฉืื ืขื Tailwind ืืืฉืืืื ื Inline Style ืฉื ืงืืืคืื ื ืื. ื ื ืื ืฉืื ื ืจืืฆื ืืื ืืช ืงืืืคืื ื ืื ืฉืืฆืืื ืงืฆืช ืืงืกื ืืฉื ื ืืคืชืืจืื, ืื ืื ื ืืืื ืืืฉืชืืฉ ืืงืื ืจืืืงื ืืื:
function App() {
return (
<div className="App">
<h1>My Cool Game</h1>
<ul style={{ listStyle: 'none', padding: '0', display: 'flex', flexDirection: 'column' }}>
<li style={{ margin: '0.5rem 0' }}><MenuButton>Single Player</MenuButton></li>
<li style={{ margin: '0.5rem 0' }}><MenuButton>Multi Player</MenuButton></li>
</ul>
</div>
)
}
function MenuButton({ href="#", children }) {
const style = {
display: 'inline-block',
width: '10rem',
textDecoration: 'none',
background: '#4CAF50',
border: 'none',
color: 'white',
padding: '1rem 1.5rem',
fontSize: '1.5rem',
};
return (
<a href={href} style={style}>{children}</a>
);
}
export default App
ืฉืืฆื ืืื ืืื ืืืื ื ืื ืืืชืืื ืื ืจืื ืงื ืืชืืืืงื, ืืื ืืคืจืืืงื ืืืื ื Inline Style ืืฉ ืืกืคืจ ืืกืจืื ืืช:
1. ืงืฉื ืืืฉืชืืฉ ืืงืืืคืื ื ืื ืืืงืื ืืืจ ืขื ืืืืจืืช ืขืืฆืื ืืืจืืช, ืื ืื ืืคืฉืจ ืืืจืืก Inline Style ืืชืื CSS ืืฆืืจื ื ืืื.
2. ืืฉืืชืืืืื ืืืื ืืก Media Queries, Dark Mode ืื ืืคืืื hover ืื ืื ื ืืืืื ืฉ Inline Style ืืืื ืื ืืกืคืืง ืืฆืจืื ืืืืกืืฃ ืกืคืจืื ื ืืกืคืช ืืื Styled Components. ืื ืื ืืืืจื ืจืข ืืื ืืืกืืฃ ืกืืืืืืืช ืืฉืื.
3. ืืฉ ืฆืืจื ืืืืืจ ืขืจืืื ืฉืจืืจืืชืืื ืืืืฉืชืืฉ ืืืืชื ืขืจืืื ืืื ืงืืืคืื ื ืืืช (ืืืืืื ืืืื ืืฉืืืืื).
ืืืชื ืงืื ืืืืจื ื Tailwind ืืืื ืืืืจืืืช ืืืื ืืืื, ืจืง ืฉืืืืจืืช ืืขืืฆืื ืขืืืจืืช ืืืืคืืื style ืืืืคืืื class ืืฆืืจื ืงืฆืช ืืฆืืจืชืืช:
function App() {
return (
<div className="App p-4">
<h1>My Cool Game</h1>
<ul className="flex p-0 flex-col">
<li className="my-4"><MenuButton>Single Player</MenuButton></li>
<li className="my-4"><MenuButton>Multi Player</MenuButton></li>
</ul>
</div>
)
}
function MenuButton({ href="#", children }) {
return (
<a className="inline-block py-4 px-6 text-white w-40 bg-[#4CAF50]" href={href}>{children}</a>
);
}
export default App
ืืืชืจืื ืืช ืืงืฆืจื:
1. ืืืืจืืช ืืขืืฆืื ืงืฆืจืืช ืืืชืจ.
2. ืื ื ืื ืืืืืจ ืืืืื ืฉืจืืจืืชืืื ืืื ืืฉืชืืฉ ืืืกืคืจืื ืฉื Tailwind ืืื p-4 ืฉืืฆืืื padding ืืืืื 1rem. ืืื ืืคืฉืจ ืืืืืจ ืืช ืืืฉืืขืืช ืฉื p-4 ืืงืืืฅ ืงืื ืคืืืืจืฆืื ืื ืืชื ืฆืจืืืื ืืืืื ืฉืื ืื.
3. ืืื ืืขืื ืืืฉืชืืฉ ืืขืจืืื ืฉืจืืจืืชืืื ืขื ืกืืืจืืื ืืจืืืขืื, ืืื ืฉืขืฉืืชื ืขื ืฆืืข ืืจืงืข, ืืื ืื ืฉื ืืคืฉืจ ืืืืืืจ ืืงืื ืคืืืืจืฆืื ืฉื ืืฆืืข ืืื ืืื ืืืฉืชืืฉ ืืงืืืก ืฉืืชืืื ืื.
4. ืื ืืืืจืืช ืืขืืฆืื ืืืคืืขืืช ืืงืืืกืื, ืื ืฉืืืกืืช ืงื ืืฉืื ืืช ืืงืืืคืื ื ืื ืืืงืืืืช ืืืจืื ืืืืจืืก ืืช ืืขืืฆืื ืืืืฆืขืืช ืฉืืืื ืงืืืฅ CSS ืืืฆืื ื.
5. ื Tailwind ืืฉ ืชืืืื ืืืื ื Media Queries, hover ืืื ืื ืฉืชืจืฆื.
ืืช ืฉืืืช ืืงืืืกืื ืืคืฉืจ ืืืฆืื ืืชืืขืื ืฉื ืืืืืืืื ื, ืืืชืืืืช ืืขืืืื ืืืชื ืืืื ืืืืขืืจ ืืืชืจ transform.tools ืืื ืืืคืื ืื ืงืื CSS ืืจืฉืืืช ืงืืืกืื ืฉื Tailwind. ืงืืฉืืจ ืืืื:
https://transform.tools/css-to-tailwind
## ืืื ืืฉืื ืืืืืืืื ื ืืืืฉืื ืฉืืื
ืืฉืืื ืืื ืืช ืคืจืืืงื ืจืืืงื ืขื Tailwind CSS ืืกื ืืื ืฆืจืื ืืืืช ืืคื ืืืืจืืืช ืืืชืจ ืฉืืื ืืงืืฉืืจ https://tailwindcss.com/docs/guides/vite. ืื ื ืืืืืง ืคื ืืช ืืชืงืฆืืจ ืฉืืืื ืื ื:
$ npm create vite@latest my-project -- --template react
$ cd my-project
$ npm install -D tailwindcss postcss autoprefixer
$ npx tailwindcss init -p
ืืืจื ืื ืฆืจืื ืืขืืื ืงืืืฅ ืงืื ืคืืืืจืฆืื ืืฉื tailwind.config.cjs ืืื ืฉืืืื ืืช ืืชืืื ืืื:1 420
# ืงืื ืืฉืืืืฉ ืืืืจ
ืืืช ืืืขืืืช ืฉืื ื ืืืฆื ืืืชืจ ืืื ืืืขืจืืืช ืืื ืืืชืืจ ืฉื ืฉืืืืฉ ืืืืจ ืืงืื, ืืื ืืืื ืืื - ืืฆื ืืื ืื ืื ื ืจืืฆืื ืืืชืื ืงืื ืฉืืคืฉืจ ืืืื ืืืฉืชืืฉ ืื ืฉืื ืืฉืื, ืืื ืืฆื ืฉื ื ืื ืื ื (ืืจืืข) ืขืกืืงืื ืืื ืืฉืืื ืืขืฉืืช ืืช ืืขืืืื ืืงืฉื ืฉื ืืืชืื ืงืื ืืฉืืืืฉ ืืืืจ. ืืชืืฆืื ืืื ืงืื ืฉื ืจืื ืืื ืงืื ืฉืืชืืื ืืฉืืืืฉ ืืืืจ, ืืื ืืฉืืชื ืื ืืืฉืชืืฉ ืื ืืขืื ืืงืื ืืชื ืืืื ืฉืืฉ ืืืชืจ ืืื ืชืืืืืช. ืืืงืจื ืืืื ืชืคืกืช ืืช ืื ืืืื ืืืชืืช ืืื ืืืืฉ, ืืืงืจื ืืจืข ืชืคืกืช ืืช ืื ืืืืืจ ืืื ืืืชื ืชืงืืข ืืืืฅ ืื ืกื ืืืจืื ืืืืฉ ืืช ืืงืื "ืืฉืืืืฉ ืืืืจ" ืืฆืจืื ืืคืชืืจ ืขืืฉืื ืืืืื ืืฉื ื ืคืืฆ'ืจืื ืืืงืื ืจืง ืืคืืฆ'ืจ ืืืืฉ ืฉืืชื ืืื ื.
ืืืืื? ืืฉืืื. ืงืื ืงืื ืคืืืชืื ืฉืขืืฉื ืืืชืจ ืืื ืขืืืื ืขื ืืฉืคื:
import re
text = "one two three I want to see three four five I am alive"
# delete all spaces in sentences
text = re.sub(r'\s+', '', text)
# replace each letter by its ordinal value
text = [ord(c) for c in text]
# leave only values that are larger than what came before
new_text = [text[0]]
for value in text:
if value > new_text[-1]:
new_text.append(value)
text = new_text
print(sum(text))
ืืงืื ืืฉ ืฉืืืฉื ืืืงืื ืฉืื ืืืื ืืขืืื ืืื ืืืจื ืืฉื ื ืขื ืืขืจื ืฉืืชืืจืช ืื ืขืืฉื ืื ืืืง. ืื ืืืื ืฉืืืื ื ืืื ืื ืืื ืืคืืืช ืืงืื ืกืืืจ ืืืื ืืืืชื ืืงืื, ืืืฃ ืืื ืื ืืืืื ืืืฉืชืืฉ ืื ืืขืื ืืงืื ืืืขืจืืช. ืืืงืจื ืืืจืืข ืืฆืืจืื ืืงืจืื ืืช ืืงืื ืืืืฉ ืืืขืชืืง ืืช ืืฉืืจืืช ืฉืขืืฉืืช ืขืืืื ืืืื.
ืืืจืกื ืืกืืื ืช ืืืชืจ ืฉื ืืงืื ืืื ืขืฉืืื ืืืืจืืืช ืื:
import re
def main():
text = "one two three I want to see three four five I am alive"
text = delete_all_spaces(text)
text = change_to_ord_values(text)
text = change_to_increasing(text)
print_result(text)
def delete_all_spaces(text):
# delete all spaces in sentences
text = re.sub(r'\s+', '', text)
return text
def change_to_ord_values(text):
# replace each letter by its ordinal value
text = [ord(c) for c in text]
return text
def change_to_increasing(text):
# leave only values that are larger than what came before
new_text = [text[0]]
for value in text:
if value > new_text[-1]:
new_text.append(value)
text = new_text
return text
def print_result(text):
print(sum(text))
main()
ืืืื ืืืคื ื ืืื? ืืื ืืกืืืจ ืขืืฉืื ืืคืื ืงืฆืืืช, ืื ืคืื ืงืฆืื ืืงืืืช ืืช ืืงืื ืฉืื ืืืืืืจื ืคืื ืืืชืืื ืืช ืืืืืจื ืืช ืืืชื ืชืืฆืื. ืขืืฉืื ืื ื ืจืฆื ืืืฉืชืืฉ ืจืง ืืืืง ืืืงืื ืืืงืื ืืืจ ื ืืื - ื ืืื?
ืจืื ืืกืืืืืื ืฉืื.
ืืคืื ืงืฆืืืช ืื ืืกืคืืง ืื ืจืืืช ืืฉืืื ืฉืืืื ืืขืืืืช ืืืงืื ืืืจ, ืืชืืชื ืืืชื ืคืฉืื ืืืื ืฉืื ืื ืฉืืื ืื ืืื ืืขืื ืืื ืืืืืืงื ืฉืจืืจืืชืืช ืืืืจื. ืืจืื ืืืชืจ ืกืืืจ ืฉืืืฉืื ืื ืกื ืืืฉืชืืฉ ืืืืช ืืื, ืืืื ืฉืืื ืื ืืืืืง ืงืื ืืืกืื ืฉืืคืื ืงืฆืื ืฆืจืืื ืืื ืืืชืงืข ืืืจืืื ืืืืฉ ืฉื ืืงืื.
ืื ืื ืื ืืฉ ืืื ืืื ืืืชืื ืงืื ืื ืจื, ืืืจืืืืงืืืจื ื ืืื ื ืฉืงื ืืืฉืชืืฉ ืื ืืขืื ืืงืืืืช ืืืชื ืืืืขืื ืืชืืจ ืืงืืืืช ื ืืกืคืื ืืืขืจืืช ืฉืืฆืืจืื ืืืชื - ืืื ืขื ืื ืืืชืื ืืช ืืงืื ืืื ืจื. ืืื ืฉืืื ืืืืืืจ ืืงืื ืฉืจืง ื ืจืื ืื ืจื, ืืฉืืืฉืืจ ืืฉื ืื ืฉื ื ืกื ืืฉืื ืืืชื ืืขืื ืืงืื.
Endi mavjud! Telegram Tadqiqoti 2025 โ yilning asosiy insaytlari 
