Ob-havo botimdan ro'yxatdan o'tgan foydalanuvchilar soni 100 kishiga yetdi. Bu birinchi botim edi ๐
Botga link: @eralionlineobhavobot
๐ @python_backend_dev
Botga link: @eralionlineobhavobot
๐ @python_backend_dev
๐6๐3
Assalomu alaykum barchaga, sizlarni yanada yaqinlashib kelayotgan Yangi yil bayrami bilan tabriklayman ๐๐
Bazi bir ishlar ko'payib ketganligi sababli post joylay olmayapman buni uchun uzur so'rayman, biz to'xtab qolmaymiz.
๐ @python_backend_dev
Bazi bir ishlar ko'payib ketganligi sababli post joylay olmayapman buni uchun uzur so'rayman, biz to'xtab qolmaymiz.
๐ @python_backend_dev
๐3๐1๐1
FastAPI framework - yuqori unumdorlik, o'rganish oson, kodlash tez, ishlab chiqarishga tayyor.
Install:
Union - bir nechta turdagi o'zgaruvchi yaratish uchun
main - main.py bu fayl nomi, istagancha o'zgartirish mumkin
reload - nomidan aniqki kodga biron o'zgartirish kiritilsa proyektni qayta ishga tushurish uchun, qaytadan run qilishingizning oldini oladi.
FastApi bilan ko'proq tanishib chiqing
๐ @python_backend_dev
Install:
pip install fastapi
pip install "uvicorn[standard]"
Run: uvicorn main:app --reload
app - ilova yaratiladiUnion - bir nechta turdagi o'zgaruvchi yaratish uchun
main - main.py bu fayl nomi, istagancha o'zgartirish mumkin
reload - nomidan aniqki kodga biron o'zgartirish kiritilsa proyektni qayta ishga tushurish uchun, qaytadan run qilishingizning oldini oladi.
FastApi bilan ko'proq tanishib chiqing
๐ @python_backend_dev
๐4๐ฅ2๐1
Bugun Django modeli ichidagi kichik qismlari haqida gaplashmiz.
null=True - bu usha fieldni bazadagi joyiga hech qanday qiymat kelmasa ham xatolikka uchramaydi degani ya'ni usha moydonda biron, o'zini tipiga doir qiymat bo'lishi ham bo'lmasligi ham mumkin.
blank=True - masalan siz frontend qismida biron forma to'ldiryapsiz yoshingizni kiritmadingiz bunda xatolikka uchramaysiz ammo shu maydonda null=True ishlatilmagan bo'lsa bazaga saqlashda xatolikka uchraysiz. Shuning uchun ko'pincha ikkisi bir vaqtda ishlatilganligi ma'qulroq.
SET_NULL - admin post joylagan bir qancha vaqtdan keyin uni adminlikdan olib tashlamoqchisiz shunda adminning shaxsiy ma'lumotlari o'chib ketadi lekin joylagan postlari saqlanib qoladi.
CASCADE - bunda ham admin ham u joylagan postlari ham bazadan o'chib ketadi.
Post yoqqan bo'lsa yaqinlarga ham ulashamiz. Yangi yilingiz bilan ๐ฅณ๐ฅณ
๐ @python_backend_dev
null=True - bu usha fieldni bazadagi joyiga hech qanday qiymat kelmasa ham xatolikka uchramaydi degani ya'ni usha moydonda biron, o'zini tipiga doir qiymat bo'lishi ham bo'lmasligi ham mumkin.
blank=True - masalan siz frontend qismida biron forma to'ldiryapsiz yoshingizni kiritmadingiz bunda xatolikka uchramaysiz ammo shu maydonda null=True ishlatilmagan bo'lsa bazaga saqlashda xatolikka uchraysiz. Shuning uchun ko'pincha ikkisi bir vaqtda ishlatilganligi ma'qulroq.
SET_NULL - admin post joylagan bir qancha vaqtdan keyin uni adminlikdan olib tashlamoqchisiz shunda adminning shaxsiy ma'lumotlari o'chib ketadi lekin joylagan postlari saqlanib qoladi.
CASCADE - bunda ham admin ham u joylagan postlari ham bazadan o'chib ketadi.
Post yoqqan bo'lsa yaqinlarga ham ulashamiz. Yangi yilingiz bilan ๐ฅณ๐ฅณ
๐ @python_backend_dev
๐8
Salom qadrli๐obunachilarโบ๏ธsizlarni kelayotganโ๏ธyangi๐ 2023๐yil๐bilan๐ฒtabriklaymiz sizlarga๐uzoqโ๏ธumir๐sihatโ๏ธsalomatlik๐ปbaxt๐ฒtilaymiz๐ฒyangi๐yildaโ๏ธ nimani๐niyyat๐qilgan๐boสปlsangizlarโ๏ธalbatta๐amalga๐oshishini eski๐ฒyildagi๐ushalmagan๐orzu๐niyyatlaringiz๐บyangi๐yildaโ๏ธ albatta amalgaโ๏ธoshishini๐ซtilaymiz.๐Yangi๐yilโ๏ธsizlarga๐baxt๐ฅคomad โ๏ธquvonch๐shodlik๐kulgu๐olib๐kelishiga tilakdoshmiz.
Yangi๐yilda๐yangi๐ซmarralar๐ulkanโ๏ธzafarlar๐tilab qolamiz๐ฅณ
๐ @python_backend_dev
Yangi๐yilda๐yangi๐ซmarralar๐ulkanโ๏ธzafarlar๐tilab qolamiz๐ฅณ
๐ @python_backend_dev
๐4
Dict(Lug'at) elementlariga kirish
Kvadrat qavs ichidagi kalit nomiga murojaat qilib lug'at elementlariga kirishingiz mumkin va xuddi shu natijani beradigan get() metodi ham mavjud. Lug'at ichida listdan foydalanganda, unga index orqali murojaat qilinadi.
#python #dict
๐ @python_backend_dev
Kvadrat qavs ichidagi kalit nomiga murojaat qilib lug'at elementlariga kirishingiz mumkin va xuddi shu natijani beradigan get() metodi ham mavjud. Lug'at ichida listdan foydalanganda, unga index orqali murojaat qilinadi.
#python #dict
๐ @python_backend_dev
๐5
Python-da match-case, xuddi switch-case ga o'xshaydi.
#python #match #case
๐ @python_backend_dev
case 401 | 403 | 404:kabi ham ishlatish mumkin.
return "Not allowed"
#python #match #case
๐ @python_backend_dev
๐6
Xayrli kech barchaga, ko'proq qaysi mavzularda post joylab borishimni hohlaysiz izohlarda yozib qoldiring.
Fikrlaringiz men uchun juda muhim ๐
๐ @python_backend_dev
Fikrlaringiz men uchun juda muhim ๐
๐ @python_backend_dev
๐3๐2๐2
books-agiliq-com-django-orm-cookbook-en-latest.pdf
1.1 MB
Django ORM boสปyicha bilimini oshirish istagida boสปlganlar uchun foydali boสปlgan Django ORM CookBook kitobini tavsiya qilaman.
๐ @python_backend_dev
๐ @python_backend_dev
๐6๐1
Aiogram API dan foydalanib yuborilgan rasmni qabul qilib olib adminga yoki kanalga yuborish.
๐ @python_backend_dev
๐ @python_backend_dev
๐6๐1
Paskal uchburchagi ๐ซก
Birinchi qatorda bitta element bor u 1 ga teng. Keyingi satrlardagi har bir element to'g'ridan-to'g'ri uning ustidagi ikkita raqamning yig'indisidan hosil boสปladi.
Qanaqadir natijasi chiroyli koสปrinishda chiqarkan shunga uni ham rasm sifatida ulashishni maสผqul deb topdim ๐
Post yoqqan boสปlsa, doสปstlaringizga ham ulashishni va ularni kanalga taklif qilishni unutmang ๐
๐ @python_backend_dev
Birinchi qatorda bitta element bor u 1 ga teng. Keyingi satrlardagi har bir element to'g'ridan-to'g'ri uning ustidagi ikkita raqamning yig'indisidan hosil boสปladi.
Qanaqadir natijasi chiroyli koสปrinishda chiqarkan shunga uni ham rasm sifatida ulashishni maสผqul deb topdim ๐
Post yoqqan boสปlsa, doสปstlaringizga ham ulashishni va ularni kanalga taklif qilishni unutmang ๐
๐ @python_backend_dev
๐5๐2
Video formatini Gif formatiga o'tkazish ๐
Oสปrnatish:
๐ @python_backend_dev
Oสปrnatish:
pip install moviepy
#python #moviepy๐ @python_backend_dev
๐4๐1
Pythonda PostgreSQL ma'lumotlar bazasiga ulanish.
Buning uchun psycopg2 modulini oสปrnatish talab etiladi.
Psycopg2 - bu Python dasturlash tili uchun eng mashhur PostgreSQL ma'lumotlar bazasi adapteri(driveri) hisoblanadi.
Oสปrnatish:
Buning uchun psycopg2 modulini oสปrnatish talab etiladi.
Psycopg2 - bu Python dasturlash tili uchun eng mashhur PostgreSQL ma'lumotlar bazasi adapteri(driveri) hisoblanadi.
Oสปrnatish:
pip install psycopg2
๐ @python_backend_dev๐8
Anagram tekshiruvi
Satrlar anagram yoki yo'qligini tekshirish uchun (masalan, harflarning tasodifiy almashtirilishi natijasi) collections modulining Counter klassi yordam beradi.
๐ @python_backend_dev
Satrlar anagram yoki yo'qligini tekshirish uchun (masalan, harflarning tasodifiy almashtirilishi natijasi) collections modulining Counter klassi yordam beradi.
๐ @python_backend_dev
๐5๐1
Django AbstractBaseUser va AbstractUser oโrtasidagi farq.
Django'da AbstractBaseUse va AbstractUser o'rtasidagi farqni tushunish juda muhim sanaladi. Ayniqsa Django loyihasini boshlayotganingizda qaysi birini ishlatish kerakligini bilishingiz zarur.
AbstractUser
AbstractUser class User classni meros qilib oladi va maสผlumotlar bazasida foydalanuvchi uchun zarur boสปlgan qoสปshimcha maydonlarni qoสปshish uchun ishlatiladi. U asosan mavjud foydalanuvchi modeliga date_of_birth , address and bio_info kabi va boshqa maydonlarni qo'shish uchun ishlatiladi.
Masalan:
AbstractBaseUser
AbstractBaseUser faqat autentifikatsiya funksiyasiga ega, unda kichik sinfda foydalanish uchun maydonlarni taqdim etadigan haqiqiy maydonlar yo'q. Bu class'da faqat 3 ta field mavjud, ular id, password va last_login.
Ungacha qaysi maydon username fieldsโni ifodalaydi va bu foydalanuvchilar qanday boshqariladi.
Masalan , autentifikatsiyada emailโdan foydalanish kerak, Odatda Django autentifikatsiyada username nomidan foydalanadi , shuning uchun uni emailโdan foydalanish uchun qanday o'zgartirish mumkin?
Agar sizga foydalanuvchi modeli ustidan to'liq nazorat kerak bo'lsa, AbstractBaseUser'dan foydalangan ma'qul, lekin agar siz faqat mavjud foydalanuvchiga biror narsa qo'shayotgan bo'lsangiz, masalan, qo'shimcha maydon bio, address maydoni yoki boshqa profil ma'lumotlarini qo'shmoqchi bo'lsangiz, AbstractUserโdan foydalaning.
Postda kamchiliklar yoki qo'shimcha fikrlar bo'lsa izohlarda yozib qoldiring ๐
๐ @python_backend_dev
Django'da AbstractBaseUse va AbstractUser o'rtasidagi farqni tushunish juda muhim sanaladi. Ayniqsa Django loyihasini boshlayotganingizda qaysi birini ishlatish kerakligini bilishingiz zarur.
AbstractUser
AbstractUser class User classni meros qilib oladi va maสผlumotlar bazasida foydalanuvchi uchun zarur boสปlgan qoสปshimcha maydonlarni qoสปshish uchun ishlatiladi. U asosan mavjud foydalanuvchi modeliga date_of_birth , address and bio_info kabi va boshqa maydonlarni qo'shish uchun ishlatiladi.
Masalan:
from django.db import models
from django.contrib.auth.models import AbstractUser
class CustomUser(AbstractUser):
date_of_birth = models.DateField()
address = models.CharField(max_length=200, blank=True)
bio_info = models.TextField(max_length=700)
def str(self):
return self.username
Bunda qoโshilgan 3 ta fields User classning 11 ta fieldsโiga qoโshimcha boโladi.AbstractBaseUser
AbstractBaseUser faqat autentifikatsiya funksiyasiga ega, unda kichik sinfda foydalanish uchun maydonlarni taqdim etadigan haqiqiy maydonlar yo'q. Bu class'da faqat 3 ta field mavjud, ular id, password va last_login.
Ungacha qaysi maydon username fieldsโni ifodalaydi va bu foydalanuvchilar qanday boshqariladi.
Masalan , autentifikatsiyada emailโdan foydalanish kerak, Odatda Django autentifikatsiyada username nomidan foydalanadi , shuning uchun uni emailโdan foydalanish uchun qanday o'zgartirish mumkin?
from django.db import models
from django.contrib.auth.models import AbstractBaseUser
class CustomUser(AbstractBaseUser):
email = models.EmailField(
verbose_name='Email address',
max_length=65,
unique=True,
)
date_of_birth = models.DateField()
is_active = models.BooleanField(default=True)
is_admin = models.BooleanField(default=False)
objects = MyUserManager()
USERNAME_FIELD = 'email'
REQUIRED_FIELDS = ['date_of_birth']
Endi qaror qabul qilish vaqti keldi, qaysi birini ishlatish kerak?Agar sizga foydalanuvchi modeli ustidan to'liq nazorat kerak bo'lsa, AbstractBaseUser'dan foydalangan ma'qul, lekin agar siz faqat mavjud foydalanuvchiga biror narsa qo'shayotgan bo'lsangiz, masalan, qo'shimcha maydon bio, address maydoni yoki boshqa profil ma'lumotlarini qo'shmoqchi bo'lsangiz, AbstractUserโdan foydalaning.
Postda kamchiliklar yoki qo'shimcha fikrlar bo'lsa izohlarda yozib qoldiring ๐
๐ @python_backend_dev
๐8
๐ ha albatta bu ikki tushunchani juda katta farqi bor ๐
Buni faqatgina Senior dasturchi yozadigan kodni koสปrib tushunish mumkin.
๐ @python_backend_dev
Buni faqatgina Senior dasturchi yozadigan kodni koสปrib tushunish mumkin.
๐ @python_backend_dev
๐3๐3