Forwarded from Jakhongir Rakhmonov - IT
Ma'lumotlar bazasi (database) nima va u nima uchun kerak?
Deyarli barcha turdagi dasturlar ma'lumotlar bilan ishlaydi. Ma'lumotlarni saqlaydi, o'zgartiradi, o'chiradi va hokazo.
Database (DB) bu shu ishlarni tartibli va samarali usulda qiladigan tizim/dastur.
"Lekin, ma'lumotlarni o'zgaruvchilarda, hashmaplarda, arraylarda ham saqlash mumkinku" deyishingiz mumkin. To'ppa to'g'ri. Ularda ham saqlash mumkin.
Muammo shundaki, ular ma'lumotlarni RAMda saqlaydi va dasturingiz/programmangiz to'xtatilishiga u ma'lumotlar yo'qoladi.
"Agar to'xtatmasakchi? Buni ilojisi borku". To'g'ri. AWS, GCPlarning serverlariga qo'yilsa, shunday qilsa bo'ladi. Ularda svet o'chmaydi. Har qalay serverlari bizda Andijonning Shaxrihon qishlog'ida joylashmagan. Lekin, Amerikalarda ham to'fonlar bo'lib turadi ;) To'xtamagan taqdirda ham RAM odatda chegaralangan bo'ladi.
Demak bizga boshqa bir ma'lumotlarni saqlash usuli kerak.
"Ha, text fayllarda saqlasak bo'ladi" deysizmi? To'ppa to'gri! Kundalikni olib keling.
Muammo shundaki text fayllar yetarlicha murakkab dasturlar uchun to'g'ri kelmaydi. Chunki fayllarda muammolar (synchronization, security va hokazo) ko'p. Hullas ular ma'lumotlar bazasi sifatida ishlatishga mo'ljallanmagan.
Shuning uchun ham mahsus ma'lumotlar bazasi o'ylab topilgan.
Ular fayl shaklida bo'lishi mumkin. Masalan SQLite. Shunda sizning dasturingiz to'g'ridan to'g'ri shu fayl shaklidagi database bilan muloqot qiladi.
Bunday databaselar kichik dasturlar uchun yaxshi qo'l kelishi mumkin. Lekin murakkab dasturlar uchun bunday ma'lumotlar bazasi to'g'ri kelmaydi.
Unday dasturlar uchun boshqa bir dastur ko'rinishidagi databaselar kerak. Bunday databaselarga PostgreSQL, MySQL va SQL Serverlarni misol qilib aytishimiz mumkin. Shunday sizning dasturingiz shu database dasturlar bilan muloqot qiladi. Bu databaselar esa o'zlarining ichida bir nechta fayllarni optimal tarzda boshqaraveradi.
Sizning dasturingiz fayllar bilan gaplashmaydi.
Ana endi savol tug'iladi. SQLite, PostgreSQL va boshqalar bilan dasturlar qanday gaplashadi? Buning uchun computer scientistlar mahsus til o'ylab topgan: SQL. Bu haqida endi boshqa postda bo'ladi.
@JakhonRakhmonBot
Deyarli barcha turdagi dasturlar ma'lumotlar bilan ishlaydi. Ma'lumotlarni saqlaydi, o'zgartiradi, o'chiradi va hokazo.
Database (DB) bu shu ishlarni tartibli va samarali usulda qiladigan tizim/dastur.
"Lekin, ma'lumotlarni o'zgaruvchilarda, hashmaplarda, arraylarda ham saqlash mumkinku" deyishingiz mumkin. To'ppa to'g'ri. Ularda ham saqlash mumkin.
Muammo shundaki, ular ma'lumotlarni RAMda saqlaydi va dasturingiz/programmangiz to'xtatilishiga u ma'lumotlar yo'qoladi.
"Agar to'xtatmasakchi? Buni ilojisi borku". To'g'ri. AWS, GCPlarning serverlariga qo'yilsa, shunday qilsa bo'ladi. Ularda svet o'chmaydi. Har qalay serverlari bizda Andijonning Shaxrihon qishlog'ida joylashmagan. Lekin, Amerikalarda ham to'fonlar bo'lib turadi ;) To'xtamagan taqdirda ham RAM odatda chegaralangan bo'ladi.
Demak bizga boshqa bir ma'lumotlarni saqlash usuli kerak.
"Ha, text fayllarda saqlasak bo'ladi" deysizmi? To'ppa to'gri! Kundalikni olib keling.
Muammo shundaki text fayllar yetarlicha murakkab dasturlar uchun to'g'ri kelmaydi. Chunki fayllarda muammolar (synchronization, security va hokazo) ko'p. Hullas ular ma'lumotlar bazasi sifatida ishlatishga mo'ljallanmagan.
Shuning uchun ham mahsus ma'lumotlar bazasi o'ylab topilgan.
Ular fayl shaklida bo'lishi mumkin. Masalan SQLite. Shunda sizning dasturingiz to'g'ridan to'g'ri shu fayl shaklidagi database bilan muloqot qiladi.
Bunday databaselar kichik dasturlar uchun yaxshi qo'l kelishi mumkin. Lekin murakkab dasturlar uchun bunday ma'lumotlar bazasi to'g'ri kelmaydi.
Unday dasturlar uchun boshqa bir dastur ko'rinishidagi databaselar kerak. Bunday databaselarga PostgreSQL, MySQL va SQL Serverlarni misol qilib aytishimiz mumkin. Shunday sizning dasturingiz shu database dasturlar bilan muloqot qiladi. Bu databaselar esa o'zlarining ichida bir nechta fayllarni optimal tarzda boshqaraveradi.
Sizning dasturingiz fayllar bilan gaplashmaydi.
Ana endi savol tug'iladi. SQLite, PostgreSQL va boshqalar bilan dasturlar qanday gaplashadi? Buning uchun computer scientistlar mahsus til o'ylab topgan: SQL. Bu haqida endi boshqa postda bo'ladi.
@JakhonRakhmonBot
👍4
Clean code yozish oddiy kod yozishdan ko'ra ko'proq vaqt olsa-da, umuman olganda vaqtingizni tejaydi.
DRY, SOLID, KISS kabi prinsplarga asosan yozilgan Clean codega o'zgartirish kiritish, yangi componentlar qo'shish va o'chirish oson bo'ladi. Bo'lmasa, kodingizni tushunish va maintenance qilish qiyin bo'lib qoladi va qachondir kodingiz "legacy code"ga aylanib qoladi. Tamom. Only god knows how it works.
Clean codega 1 soatda kiritish mumkin bo'lgan o'zgarish bad codeda 1-2 kun, hatto haftalar olishi mumkin.
Commentlardan foydalaning. "Komment shart bo'lmaydigan kod yozing" degan gap yuradi*. Shaxsan men uchun bu gap faqat "Wow, cool!" deyish uchun o'ylab topilgan. Agar menga ishonmasangiz biror kattaroq texnologiya yoki projectning kodini titkilab ko'ring. Plus, agar comment shart bo'lmaganda, uni umuman o'ylab topishmasdi. Xullas, o'zingizdan keyin bu kodni o'qiydiganlarni ham o'ylang.
*Unaqalarga jazo sifatida competetive programmingda yozgan kodlarimni tushunishni bergan bo'lardim :-)
Bir uyum 🥴 kodga qarab shular haqida o'ylab qoldim.
DRY, SOLID, KISS kabi prinsplarga asosan yozilgan Clean codega o'zgartirish kiritish, yangi componentlar qo'shish va o'chirish oson bo'ladi. Bo'lmasa, kodingizni tushunish va maintenance qilish qiyin bo'lib qoladi va qachondir kodingiz "legacy code"ga aylanib qoladi. Tamom. Only god knows how it works.
Clean codega 1 soatda kiritish mumkin bo'lgan o'zgarish bad codeda 1-2 kun, hatto haftalar olishi mumkin.
Commentlardan foydalaning. "Komment shart bo'lmaydigan kod yozing" degan gap yuradi*. Shaxsan men uchun bu gap faqat "Wow, cool!" deyish uchun o'ylab topilgan. Agar menga ishonmasangiz biror kattaroq texnologiya yoki projectning kodini titkilab ko'ring. Plus, agar comment shart bo'lmaganda, uni umuman o'ylab topishmasdi. Xullas, o'zingizdan keyin bu kodni o'qiydiganlarni ham o'ylang.
*Unaqalarga jazo sifatida competetive programmingda yozgan kodlarimni tushunishni bergan bo'lardim :-)
Bir uyum 🥴 kodga qarab shular haqida o'ylab qoldim.
👍3
PostgreSQL bo'yicha docsdan tashqari yaxshi manbaa izlayotganlar bormi?
Mana sizga xazina:
www.postgresqltutorial.com
P.S. PostgreSQL docs yaxshi yozilgan, lekin biroz "sovuqqon".
Bu saytdagi maqolalarni esa o'qib rohatlanasiz.
Mana sizga xazina:
www.postgresqltutorial.com
P.S. PostgreSQL docs yaxshi yozilgan, lekin biroz "sovuqqon".
Bu saytdagi maqolalarni esa o'qib rohatlanasiz.
Forwarded from Mujohiddin Khamolov
def createOrder(request):
form = OrderForm()
if request.method == 'POST':
# print('Printing POST', request.POST
form = OrderForm(request.POST)
if form.is_valid():
form.save()
return redirect('/')
context = {'form': form}
return render(request, 'accounts/order_form.html', context)
form = OrderForm()
if request.method == 'POST':
# print('Printing POST', request.POST
form = OrderForm(request.POST)
if form.is_valid():
form.save()
return redirect('/')
context = {'form': form}
return render(request, 'accounts/order_form.html', context)
👍1
Forwarded from Mujohiddin Khamolov
shu jarayondi oddiy qilib tushuntrib berdin tushindim lekin toliq anglab yetmadim iloji bolsa
Forwarded from Bobosher Musurmonov
User pagega kirgan vaqtida GET request yuborib pageni qabul qilib oladi.
Bunda
Demak, biz userga bo'sh form yubordik. Shu bilan birinchi request tugadi.
Endi user formni qabul qilib olgach, kerakli joylariga ma'lumot kiritib, submit qiladi.
Form action bosh turgani uchun submit qilingan natija ham shu urlga keladi, faqat bu safar POST request bo'lib.
Endi if blokining ichi bajariladi. OrderFormga bizga kelgan request ichidagi ma'lumotlarni kiritsak, u bizga python object qaytaradi. is_valid() methodi orqali esa u bizning so'ragan model classimizga(form class yozayotganda kiritgan) to'g'ri kelish yoki kelmasligi tekshiriladi. Agar to'g'ri kelsa, demak, u xavfsiz. save orqali uni databasega saqlab, bizni kutib turgan userni main pagega jo'natib yuborayapmiz.
Bunda
form = OrderForm() degan joyi ishlab, keyingi if ishlamaydi(sababi, bizda GET request). Natijada form contextga qo'shilib, userga response qilib yuboriladi.Demak, biz userga bo'sh form yubordik. Shu bilan birinchi request tugadi.
Endi user formni qabul qilib olgach, kerakli joylariga ma'lumot kiritib, submit qiladi.
Form action bosh turgani uchun submit qilingan natija ham shu urlga keladi, faqat bu safar POST request bo'lib.
Endi if blokining ichi bajariladi. OrderFormga bizga kelgan request ichidagi ma'lumotlarni kiritsak, u bizga python object qaytaradi. is_valid() methodi orqali esa u bizning so'ragan model classimizga(form class yozayotganda kiritgan) to'g'ri kelish yoki kelmasligi tekshiriladi. Agar to'g'ri kelsa, demak, u xavfsiz. save orqali uni databasega saqlab, bizni kutib turgan userni main pagega jo'natib yuborayapmiz.
Forwarded from Bobosher Musurmonov
buni bunday yozishingiz ham mumkin edi:
def createOrder(request):
if request.method == 'GET':
form = OrderForm
context = {'form': form}
return render(requst, <template>, context)
if request.method == 'POST':
...
return redirect('/')Bir tanishim kursdoshlari bilan ingliz tilidagi ajoyib manbaani o'zbek tiliga tarjima qilishibdi.
Hali o'zim ham deyarli o'qimadim, lekin meni o'ziga tortdi. Bu yerda yaxshicoder software engineer bo'lish uchun talab qilinadigan bilimlar haqida va gigant kompaniyalarning interviewlariga qanday tayyorlanish haqida yozilgan ekan.
Qiziqqanlar uchun maqolaning originaliga link ham bor.
https://github.com/jwasham/coding-interview-university/blob/main/translations/README-uz.md
Tarjima mualliflaridan birining kanali:
@py_notes_uz
Hali o'zim ham deyarli o'qimadim, lekin meni o'ziga tortdi. Bu yerda yaxshi
Qiziqqanlar uchun maqolaning originaliga link ham bor.
https://github.com/jwasham/coding-interview-university/blob/main/translations/README-uz.md
Tarjima mualliflaridan birining kanali:
@py_notes_uz
GitHub
coding-interview-university/translations/README-uz.md at main · jwasham/coding-interview-university
A complete computer science study plan to become a software engineer. - jwasham/coding-interview-university
Forwarded from ㅤㅤㅤㅤㅤㅤ
Wu model.
Bunda ticket har bir yangi news ucun yangittan ociliwi kk
Bunda ticket har bir yangi news ucun yangittan ociliwi kk
Forwarded from ㅤㅤㅤㅤㅤㅤ
Misol ucun A konsert 250ta joy bor oshandan joyni tanlab sotib olsa boladi.
Korvotgan bosela unique true qilib quyganma sitlarni.
Hozir man B konsert yaratdim undayam 250ta joy bow boliwi kk manda unaqa bomayapdi.
A konsert de egallangan joylar ham korinvotti B da nima qilsam boladi
Korvotgan bosela unique true qilib quyganma sitlarni.
Hozir man B konsert yaratdim undayam 250ta joy bow boliwi kk manda unaqa bomayapdi.
A konsert de egallangan joylar ham korinvotti B da nima qilsam boladi
Forwarded from Bobosher Musurmonov
Assalomu alaykum, yaxshi savol.
Mana bu yerda yechim ko'rsatilgan:
https://docs.djangoproject.com/en/3.2/ref/models/options/#unique-together
Mana bu yerda yechim ko'rsatilgan:
https://docs.djangoproject.com/en/3.2/ref/models/options/#unique-together
Forwarded from Bobosher's blog | #FreePalestine
Ba'zi dasturchilar:
Yana o'sha dasturchilar:
Tushungan tushundi :-)
#uz #fun
CREATE TABLE girlfriend (
id BIGINT PRIMARY KEY,
name VARCHAR
);Yana o'sha dasturchilar:
ERROR: bigint out of range.Tushungan tushundi :-)
#uz #fun
👍2
Forwarded from Bobosher's blog | #FreePalestine
Men:
SELECT * FROM girlfriend;
ERROR: Relation "girlfriend" does not exist.👍2
Forwarded from Azizbek Xushnazarov
Assalomu alaykum. bitta narsani query qiliw kerak. yordam berolasmi.
BaseCategory
-category1
-category2
-category3
Product1 category1 ga kiradi.
menga product1 orqali category2 va category3 dagi productlarni olish kerak.
categroy1.parent desa BaseCategory ni beradi.
BaseCategory.subcategories desa sub categoriyalar ni beradi.
BaseCategory
-category1
-category2
-category3
Product1 category1 ga kiradi.
menga product1 orqali category2 va category3 dagi productlarni olish kerak.
categroy1.parent desa BaseCategory ni beradi.
BaseCategory.subcategories desa sub categoriyalar ni beradi.