Fulfil Education
Backend bo'yicha bepul onlayn ochiq darsimizga ro'yxatdan o'ting — Backend dasturlashni JavaScript, NodeJS orqali tajribali ustozdan noldan mutaxassisgacha o'rganing. — JavaScript, NodeJS Backend kursimiz haftada 3 marta 2 soatdan onlayn Zoom platformasida…
Assalomu alaykum barchaga shunchaki ochiq darsga qatnashganiz uchun Javascript asoslari darslari tekinga berilarkan. Bu imkoniyatdan quruq qolmanglar deb buni sizlar uchun ulashdim 🫡
👍4
This media is not supported in your browser
VIEW IN TELEGRAM
Kod yozishdagi Junior va Seniorning farqi 😊
Palindrommi yoki palindrom emasligini aniqlash.
Palindrom - ikki tarafdan ham bir xil oʻqiladigan sonlar va matnlarga aytiladi.
👉 @python_backend_dev
Palindrommi yoki palindrom emasligini aniqlash.
Palindrom - ikki tarafdan ham bir xil oʻqiladigan sonlar va matnlarga aytiladi.
👉 @python_backend_dev
👍3💯2
Forwarded from Jakhongir Rakhmonov - IT
Dasturchi sifatida o’sishning eng yaxshi usuli
Bu judda ham oddiy. Qilayotgan ishingizni to’g’ri tanlash kerak. Juda qiyin ish tanlab qo’ysangiz ham, juda oson ish tanlab qo’ysangiz ham ma’lum bir muammolarga duch kelasiz.
Agar qilmoqchi bo’lgan ishingiz juda oson bo’lsa sizda o’sish bo’lmaydi. Chunki bu ishni siz ortiqcha qiyinchiliklarsiz bitira olasiz. Agar juda qiyin bo’lsa esa sizda qiziqish yo’qolib qolish ehtimoli katta bo’ladi. Juda ham qiynalib ketganingizdan bu ishni tashlab qo’yishingiz mumkin.
Shuning uchun ham o’zingizning darajangizdan sal balandroq bo’lgan ish tanlash kerak. Masalan sizning darjangizni “x” deb olsak, qilishingiz kerak bo’lgan ish “x+1” yoki “x+2” darajasida bo’lishi kerak, “x+10” yoki “x-5” emas. Natijada siz o’zingiz qiziqib, izlanib, bilmagan joyingizni o’rganib bu ishni ohirigacha yetkazasiz va sizda progress bo’ladi.
Seniorlar ham mana shu mantiq bilan o’zining jamoasidagi junior yoki middlelarga vazifalar tanlab berishlari kerak. Aynan seniorlar va menejerlar sabab dasturchilar ishdan ketgan holatlar juda ko’p kuzatiladi. “Ha?” desangiz “qiladigan ishlarim yoqmasdi” degan javobni olasiz.
Work smart.
@jakhonrakhmonov
Bu judda ham oddiy. Qilayotgan ishingizni to’g’ri tanlash kerak. Juda qiyin ish tanlab qo’ysangiz ham, juda oson ish tanlab qo’ysangiz ham ma’lum bir muammolarga duch kelasiz.
Agar qilmoqchi bo’lgan ishingiz juda oson bo’lsa sizda o’sish bo’lmaydi. Chunki bu ishni siz ortiqcha qiyinchiliklarsiz bitira olasiz. Agar juda qiyin bo’lsa esa sizda qiziqish yo’qolib qolish ehtimoli katta bo’ladi. Juda ham qiynalib ketganingizdan bu ishni tashlab qo’yishingiz mumkin.
Shuning uchun ham o’zingizning darajangizdan sal balandroq bo’lgan ish tanlash kerak. Masalan sizning darjangizni “x” deb olsak, qilishingiz kerak bo’lgan ish “x+1” yoki “x+2” darajasida bo’lishi kerak, “x+10” yoki “x-5” emas. Natijada siz o’zingiz qiziqib, izlanib, bilmagan joyingizni o’rganib bu ishni ohirigacha yetkazasiz va sizda progress bo’ladi.
Seniorlar ham mana shu mantiq bilan o’zining jamoasidagi junior yoki middlelarga vazifalar tanlab berishlari kerak. Aynan seniorlar va menejerlar sabab dasturchilar ishdan ketgan holatlar juda ko’p kuzatiladi. “Ha?” desangiz “qiladigan ishlarim yoqmasdi” degan javobni olasiz.
Work smart.
@jakhonrakhmonov
👍3
This media is not supported in your browser
VIEW IN TELEGRAM
Assalomu alaykum barchaga salomatmisizlar. Kanalning yangi profil rasmiga fikrlaringizni izohda qoldiring 👇
Yoki qaysi biri maʼqulroq scrn qilib izohda qoldiringlar 🙂
👉 @python_backend_dev
Yoki qaysi biri maʼqulroq scrn qilib izohda qoldiringlar 🙂
👉 @python_backend_dev
👍3
Nested Serializers in DRF
Bizda ikkita Author va Book modellari mavjud va ikki modeldan daraxtsimon(yoki ichma-ich deymizmi) API chiqarish kerak, bu quyidagicha amalga oshiriladi.
Misol uchun bitta authorga bir nechta kitob tegishli bo'lishi mumkin. Yoki boshqa bi misol, bir xil xarakteristikali bir necha brendli telefon va kompyuterlarni olish mumkin.
Book model:
Bizda ikkita Author va Book modellari mavjud va ikki modeldan daraxtsimon(yoki ichma-ich deymizmi) API chiqarish kerak, bu quyidagicha amalga oshiriladi.
Misol uchun bitta authorga bir nechta kitob tegishli bo'lishi mumkin. Yoki boshqa bi misol, bir xil xarakteristikali bir necha brendli telefon va kompyuterlarni olish mumkin.
Book model:
class Book(models.Model):
# relations
author = models.ForeignKey(Author, on_delete=models.CASCADE, related_name='books')
# ...
from rest_framework import serializers
from .models import Author, Book
class BookSerializer(serializers.ModelSerializer):
class Meta:
model = Book
fields = ['id', 'title', 'publication_date', 'is_published']
class AuthorSerializer(serializers.ModelSerializer):
book = BookSerializer(source='books', many=True, read_only=True)
class Meta:
model = Author
fields = ['id', 'name', 'email', 'book']
Savollar boʻlsa izohga marhamat 👇
👉 @python_backend_dev👍3
Forwarded from Jakhongir Rakhmonov - IT
Mutaxsis sifatida o’sishning eng yaxshi usuli
2019chi yildan men “Building Your Own Python Web Framework” degan kurs chiqargan edim. Uning ustida tahminan 2 oycha ishlaganman. Shu paytgacha $10000 dan ortiq daromad olib kelgan. Katta pul emas, lekin juda yoqimli pul, passiv bo'lgani uchun. Bir uhlab tursangiz cho’ntagingizda $50 paydo bo'lib qolsa kimga yoqmaydi?
Bu kurs yozishdan oldin menda frameworklar yozishda umuman tajribam bo'lmagan. Qanday uddalaganman aytaymi? Ko'chirganman. Ha, to'g'ri o'qidingiz, ko'chirganman.
O'zimga yoqqan 3-4ta frameworklarning kodini o'rganib chiqqanman. Qanday ishlashini ko'rib chiqqanman. Birinchisidan ozgina ko'chirganman, ikkinchisidan ozgina ko'chirganman va hokazo. O’zim oz-moz o'zgartirishlar kiritganman. Hammasini birlashtirib shu kursni qilganman. Natijada bilimim oshgan, qolganlarga foydali bo'lgan, cho'ntakka ham foydali bo'lgan.
Siz ham ko'chiring.
Yaxshi dastruchi bo’lmoqchimisiz, siz bilgan yaxshi dasturchi qilgan ishlarni ko’chiring. Python o’rganyapsizmi, yaxshi yozilgan Python kodini topingda, ko’chiring. Django o’rganyapsizmi, yaxshi yozilgan Django loyihani topingda, ko’chiring.PHP o’rganyapsizmi, yaxshi fermer tanishingiz qilayotgan ishlarni ko’chiring.
Yetarlicha ko’chirdingizmi? Darajangiz oshganini sezyapsizmi? Keyingi qadam: kichik o’zgartirishlar kiriting. Qilgan ishingizni u yeriga tegib ko’ring, bu yeriga tegib ko’ring. O’zgartiring. Freestyle qiling. Tutoriallardan, kitoblardan tashqariga chiqing.
Shu qadamlarni yetarlicha qilganing. Tabriklayman, sizning unvoningiz endi Senior Copy Cat Developer. Hazil albatta. Lekin darajangiz oshgani aniq.
@jakhonrakhmonov
2019chi yildan men “Building Your Own Python Web Framework” degan kurs chiqargan edim. Uning ustida tahminan 2 oycha ishlaganman. Shu paytgacha $10000 dan ortiq daromad olib kelgan. Katta pul emas, lekin juda yoqimli pul, passiv bo'lgani uchun. Bir uhlab tursangiz cho’ntagingizda $50 paydo bo'lib qolsa kimga yoqmaydi?
Bu kurs yozishdan oldin menda frameworklar yozishda umuman tajribam bo'lmagan. Qanday uddalaganman aytaymi? Ko'chirganman. Ha, to'g'ri o'qidingiz, ko'chirganman.
O'zimga yoqqan 3-4ta frameworklarning kodini o'rganib chiqqanman. Qanday ishlashini ko'rib chiqqanman. Birinchisidan ozgina ko'chirganman, ikkinchisidan ozgina ko'chirganman va hokazo. O’zim oz-moz o'zgartirishlar kiritganman. Hammasini birlashtirib shu kursni qilganman. Natijada bilimim oshgan, qolganlarga foydali bo'lgan, cho'ntakka ham foydali bo'lgan.
Siz ham ko'chiring.
Yaxshi dastruchi bo’lmoqchimisiz, siz bilgan yaxshi dasturchi qilgan ishlarni ko’chiring. Python o’rganyapsizmi, yaxshi yozilgan Python kodini topingda, ko’chiring. Django o’rganyapsizmi, yaxshi yozilgan Django loyihani topingda, ko’chiring.
Yetarlicha ko’chirdingizmi? Darajangiz oshganini sezyapsizmi? Keyingi qadam: kichik o’zgartirishlar kiriting. Qilgan ishingizni u yeriga tegib ko’ring, bu yeriga tegib ko’ring. O’zgartiring. Freestyle qiling. Tutoriallardan, kitoblardan tashqariga chiqing.
Shu qadamlarni yetarlicha qilganing. Tabriklayman, sizning unvoningiz endi Senior Copy Cat Developer. Hazil albatta. Lekin darajangiz oshgani aniq.
@jakhonrakhmonov
👍5
Search query in Django
views.py faylga quyidagi funksiyani yozamiz
So'rovning search_results.html sahifada chiqishi:
views.py faylga quyidagi funksiyani yozamiz
from django.db.models import Q
from django.shortcuts import render
from myapp.models import MyModel
def my_view(request):
query = request.GET.get('q')
if query:
instances = MyModel.objects.filter(
Q(titleicontains=query) | Q(descriptionicontains=query)
)
else:
instances = MyModel.objects.none()
context = {'instances': instances}
return render(request, 'search_results.html', context)
index.html da GET usuli bilan forma:<form method="get">
<input type="search" name="q" />
<button type="submit">Search</button>
</form>
So'rovning search_results.html sahifada chiqishi:
{% if instances %}
<ul>
{% for instance in instances %}
<li>{{ instance.title }}</li>
{% endfor %}
</ul>
{% else %}
<p>No instances found.</p>
{% endif %}
👉 @python_backend_dev👍6🔥1
Qiziqarli masala
Funksiyalar bilan ishlash qobilyatingizni tekshirgan holda javobingizni izohda qoldiring 👇🏻
👉 @python_backend_dev
Funksiyalar bilan ishlash qobilyatingizni tekshirgan holda javobingizni izohda qoldiring 👇🏻
👉 @python_backend_dev
👍6
Dataclasses modulining dataclass metodi
dataclass - dekorator hisoblanib, faqat ma'lumotlar qiymatlarini saqlash uchun mo'ljallangan sinfdir. dataclass oddiy classdan deyarli farq qilmaydi, faqat bunda oddiy classga qaraganda init, repr, str va boshqa metodlari oldindan mavjud, ularni qaytadan yozish talab etilmaydi.
Eslatma: Bu modul faqat Python 3.7 va undan yuqori versiyalarda ishlaydi.
Ko'proq tanishib chiqish uchun manbalar: DATAQUEST RealPython
👉 @python_backend_dev
dataclass - dekorator hisoblanib, faqat ma'lumotlar qiymatlarini saqlash uchun mo'ljallangan sinfdir. dataclass oddiy classdan deyarli farq qilmaydi, faqat bunda oddiy classga qaraganda init, repr, str va boshqa metodlari oldindan mavjud, ularni qaytadan yozish talab etilmaydi.
Eslatma: Bu modul faqat Python 3.7 va undan yuqori versiyalarda ishlaydi.
Ko'proq tanishib chiqish uchun manbalar: DATAQUEST RealPython
👉 @python_backend_dev
👍6
REST API
REST API (Representational State Transfer Application Programming Interface) turli dasturiy taʼminot tizimlari oʻrtasida aloqani taʼminlash uchun HTTP soʻrovlaridan foydalanadigan veb-API (Ilova dasturlash interfeysi) turidir.
REST API-lar noyob URL manzillari (Uniform Resource Locators) bilan identifikatsiya qilingan resurslarda ishlaydi. Ushbu resurslarni GET, POST, PUT, PATCH va DELETE kabi oldindan belgilangan HTTP usullari to'plami yordamida boshqarish mumkin.
REST API javobi odatda JSON (JavaScript Object Notation) yoki XML (Extensible Markup Language) formatida bo‘ladi, bu mashinalar o‘qishi va tahlil qilishi oson bo‘lgan engil ma’lumotlar almashish formatidir. REST API-lar veb-ishlab chiqish, mobil ilovalarni ishlab chiqish va boshqa dasturiy ta'minot tizimlarida turli ilovalar bilan muloqot qilish va ma'lumotlarni almashish uchun keng qo'llaniladi.
REST API-lar turli maqsadlarda dasturiy ta'minotni ishlab chiqishda keng qo'llaniladi, jumladan:
1. Veb-ilovalarni yaratish: Veb-ishlab chiquvchilar o'z ilovalarini boshqa veb-xizmatlarga ulash yoki o'z ilovalarining turli qismlari o'rtasida ma'lumot almashish uchun REST API-dan foydalanishlari mumkin.
2. Mobil ilovalarni ishlab chiqish: REST API-lar mobil ilovalar ishlab chiquvchilari tomonidan serverlardan ma'lumotlarni olish va boshqa ilovalar bilan ma'lumot almashish uchun ishlatiladi.
3. Turli dasturiy ta'minot tizimlarini integratsiyalash: REST API'lari turli dasturiy ta'minot tizimlariga bir-biri bilan muloqot qilish imkonini beradi, bu esa turli platformalar va texnologiyalar bo'yicha ma'lumotlar almashinuvi va tizim integratsiyasini ta'minlaydi.
4. Mikroservislarni qurish: REST API-lar odatda mikroservislarni yaratish uchun ishlatiladi, ular kichik, mustaqil xizmatlar bo'lib, muayyan funktsiyalarni bajaradilar va kattaroq ilovalarni yaratish uchun birlashtirilishi mumkin.
5. Narsalar Interneti (IoT) ilovalarini yaratish: REST API-dan IoT qurilmalari va sensorlarini bulutga ulash uchun foydalanish mumkin, bu esa real vaqt rejimida ma’lumotlar almashish va tahlil qilish imkonini beradi.
Umuman olganda, REST API-lar turli dasturiy ta'minot tizimlari o'rtasida ma'lumot almashishning moslashuvchan va samarali usulini ta'minlaydi, bu esa birgalikda muammosiz ishlaydigan ilovalarni yaratish va birlashtirishni osonlashtiradi.
Manba: Linkedin
👉 @python_backend_dev
REST API (Representational State Transfer Application Programming Interface) turli dasturiy taʼminot tizimlari oʻrtasida aloqani taʼminlash uchun HTTP soʻrovlaridan foydalanadigan veb-API (Ilova dasturlash interfeysi) turidir.
REST API-lar noyob URL manzillari (Uniform Resource Locators) bilan identifikatsiya qilingan resurslarda ishlaydi. Ushbu resurslarni GET, POST, PUT, PATCH va DELETE kabi oldindan belgilangan HTTP usullari to'plami yordamida boshqarish mumkin.
REST API javobi odatda JSON (JavaScript Object Notation) yoki XML (Extensible Markup Language) formatida bo‘ladi, bu mashinalar o‘qishi va tahlil qilishi oson bo‘lgan engil ma’lumotlar almashish formatidir. REST API-lar veb-ishlab chiqish, mobil ilovalarni ishlab chiqish va boshqa dasturiy ta'minot tizimlarida turli ilovalar bilan muloqot qilish va ma'lumotlarni almashish uchun keng qo'llaniladi.
REST API-lar turli maqsadlarda dasturiy ta'minotni ishlab chiqishda keng qo'llaniladi, jumladan:
1. Veb-ilovalarni yaratish: Veb-ishlab chiquvchilar o'z ilovalarini boshqa veb-xizmatlarga ulash yoki o'z ilovalarining turli qismlari o'rtasida ma'lumot almashish uchun REST API-dan foydalanishlari mumkin.
2. Mobil ilovalarni ishlab chiqish: REST API-lar mobil ilovalar ishlab chiquvchilari tomonidan serverlardan ma'lumotlarni olish va boshqa ilovalar bilan ma'lumot almashish uchun ishlatiladi.
3. Turli dasturiy ta'minot tizimlarini integratsiyalash: REST API'lari turli dasturiy ta'minot tizimlariga bir-biri bilan muloqot qilish imkonini beradi, bu esa turli platformalar va texnologiyalar bo'yicha ma'lumotlar almashinuvi va tizim integratsiyasini ta'minlaydi.
4. Mikroservislarni qurish: REST API-lar odatda mikroservislarni yaratish uchun ishlatiladi, ular kichik, mustaqil xizmatlar bo'lib, muayyan funktsiyalarni bajaradilar va kattaroq ilovalarni yaratish uchun birlashtirilishi mumkin.
5. Narsalar Interneti (IoT) ilovalarini yaratish: REST API-dan IoT qurilmalari va sensorlarini bulutga ulash uchun foydalanish mumkin, bu esa real vaqt rejimida ma’lumotlar almashish va tahlil qilish imkonini beradi.
Umuman olganda, REST API-lar turli dasturiy ta'minot tizimlari o'rtasida ma'lumot almashishning moslashuvchan va samarali usulini ta'minlaydi, bu esa birgalikda muammosiz ishlaydigan ilovalarni yaratish va birlashtirishni osonlashtiradi.
Manba: Linkedin
👉 @python_backend_dev
👍6
Ushbu misolda biz berilgan ro'yxatdagi manfiy sonlar sonini topishning uch xil usulini ko'rib chiqamiz.
Siz qaysi usullarni bilasiz? Izohda fikringizni qoldiring 👇
👉 @python_backend_dev
Siz qaysi usullarni bilasiz? Izohda fikringizni qoldiring 👇
👉 @python_backend_dev
👍3👏2
Pendulum
O'rnatish:
Bu kutubxona sanalar, vaqtlar va vaqt zonalari bilan ishlash uchun toza va qulay API taqdim etadi. U mahalliy datetime moduliga asoslangan, lekin foydalanuvchilarga qulayroq interfeys va qo‘shimcha funksiyalarni taklif etadi:
- Turli vaqt zonalarini qo'llab-quvvatlash va ular o'rtasida konvertatsiya qilish.
- Vaqt zonalari orasidagi farqlarni oson boshqarish.
- Arifmetik, taqqoslash va kesish kabi umumiy operatsiyalarni bajarish uchun qulay API.
- Django, Flask va SQLAlchemy kabi mashhur uchinchi tomon kutubxonalari bilan integratsiya.
Ushbu misolda biz pendulum modulini import qilamiz va "Asia/Tashkent" vaqt mintaqasida 2023-yil 11-mayni ifodalovchi Pendulum datetime dt obyektini yaratamiz.
Datetime obyektini manipulyatsiya qilgandan so'ng, misolda vaqtni ko'rsatish uchun 'YYYY-AA-DD HH:dd:ss' format qatoridan foydalanamiz.
Ko'proq tanishib chiqish: GeeksForGeeks
👉 @python_backend_dev
O'rnatish:
pip install pendulumBu kutubxona sanalar, vaqtlar va vaqt zonalari bilan ishlash uchun toza va qulay API taqdim etadi. U mahalliy datetime moduliga asoslangan, lekin foydalanuvchilarga qulayroq interfeys va qo‘shimcha funksiyalarni taklif etadi:
- Turli vaqt zonalarini qo'llab-quvvatlash va ular o'rtasida konvertatsiya qilish.
- Vaqt zonalari orasidagi farqlarni oson boshqarish.
- Arifmetik, taqqoslash va kesish kabi umumiy operatsiyalarni bajarish uchun qulay API.
- Django, Flask va SQLAlchemy kabi mashhur uchinchi tomon kutubxonalari bilan integratsiya.
Ushbu misolda biz pendulum modulini import qilamiz va "Asia/Tashkent" vaqt mintaqasida 2023-yil 11-mayni ifodalovchi Pendulum datetime dt obyektini yaratamiz.
Datetime obyektini manipulyatsiya qilgandan so'ng, misolda vaqtni ko'rsatish uchun 'YYYY-AA-DD HH:dd:ss' format qatoridan foydalanamiz.
Ko'proq tanishib chiqish: GeeksForGeeks
👉 @python_backend_dev
👍5
SQL JOIN ma'lumotlar bilan bog'liq har qanday intervyuda eng ko'p takrorlanadigan savoldir.
Ba'zida eslash qiyin bo'lishi mumkin, bu yerda kontseptsiyani eslab qolish uchun juda kulgili misol 😊
👉 @python_backend_dev
Ba'zida eslash qiyin bo'lishi mumkin, bu yerda kontseptsiyani eslab qolish uchun juda kulgili misol 😊
👉 @python_backend_dev
👍4🤣2