django orm regex qidiruvlar

PPT 20 pages 4.3 MB Free download

Page preview (5 pages)

Scroll down 👇
1 / 20
презентация powerpoint 6. django’da regex orqali maxsus so‘rovlar yaratish --- orm (filter(), exclude(), annotate()) ichida regex ishlatish. ---__regex orqali qidiruvlar bajarish. django orm (object-relational mapping) ma’lumotlar bazasi bilan ishlash uchun kuchli va qulay vositalarni taqdim etadi. filter(), exclude(), va annotate() usullari yordamida regex (regular expressions) dan foydalanish mumkin. django orm-da regex ishlatish django orm qidiruvlar uchun regex (muntazam ifodalar) dan foydalanish imkoniyatini beradi. filter() va exclude() metodlarida __regex va __iregex lookup’lar mavjud. lookup tavsif field__regex="pattern" katta-kichik harflarga sezgir regex qidiruv field__iregex="pattern" katta-kichik harflarga sezgir emas regex qidiruv filter() bilan regex ishlatish filter() metodidan foydalanib, ma’lumotlarni regex shabloni bo‘yicha filtrlash mumkin. misol: foydalanuvchilar (user) jadvalidan faqat "admin" bilan boshlanadigan foydalanuvchi nomlarini olish. from myapp.models import user admin_users = user.objects.filter(username__regex=r"^admin") bu kodda: ^admin → matn "admin" bilan boshlanishi kerak. filter(username__regex="^admin") → "admin" bilan boshlanadigan barcha username’larni tanlaydi. exclude() bilan regex ishlatish exclude() metodidan foydalanib, berilgan regex pattern’ga mos kelmaydigan yozuvlarni chiqarib tashlash …
2 / 20
when(email__regex=r"@gmail\.com$", then=value(1)), default=value(0), output_field=integerfield() ) ) 🔹 bu kodda: agar email "@gmail.com" bilan tugasa, is_gmail = 1 bo‘ladi. aks holda, is_gmail = 0 bo‘ladi. annotate() yordamida har bir yozuvga yangi ustun qo‘shildi (is_gmail). __iregex bilan katta-kichik harflarga sezgir bo‘lmagan qidiruv __iregex orqali katta-kichik harflarga sezgir bo‘lmagan qidiruv amalga oshirish mumkin. misol: "manager" so‘zi istalgan joyda kelgan username’larni topish (katta-kichik harflarga sezgir emas). users = user.objects.filter(username__iregex=r"manager") 🔹 bu kodda: manager → "manager" so‘zi username'ning istalgan joyida bo‘lishi mumkin. __iregex → "manager", "manager", "manager" kabi har xil variantlarni ham topadi. regex orqali telefon raqamlarini tekshirish django orm regex orqali faqat ma’lum formatdagi telefon raqamlarini tanlab olish mumkin. misol: +998 bilan boshlanadigan va 9 ta raqamga ega bo‘lgan telefon raqamlarini olish. from myapp.models import contact uzb_numbers = contact.objects.filter(phone_number__regex=r"^\+998\d{9}$") 🔹 bu kodda: ^\+998 → "998" bilan boshlanishi kerak. \d{9}$ → keyin 9 ta raqam bo‘lishi kerak. 7. django view va middleware da regex bilan …
3 / 20
id'), re_path(r'^user/(?p [a-za-z]+)/$', views.user_detail_by_username, name='user-detail-username'), ] 🔹 bu kodda: (?p \d+) → faqat raqamli id larni qabul qiladi. (?p [a-za-z]+) → faqat harfli username larni qabul qiladi. re_path() → bu yerda regex asosida url yo‘naltirish amalga oshiriladi. django views ichida regex bilan so‘rovlarni tekshirish django views ichida get yoki post so‘rov ichidagi ma’lumotlarni regex yordamida tahlil qilish mumkin. misol: post so‘rovda telefon raqamni tekshirish import re from django.http import jsonresponse from django.views import view class phonevalidationview(view): def post(self, request, *args, **kwargs): phone = request.post.get("phone", "") # telefon raqam regex shabloni pattern = r"^\+998\d{9}$" if re.match(pattern, phone): return jsonresponse({"message": "telefon raqam to‘g‘ri!"}) else: return jsonresponse({"error": "telefon raqam noto‘g‘ri!"}, status=400) 🔹 ushbu kodda: post so‘rov ichidagi telefon raqamni regex bilan tekshiryapmiz. ^\+998\d{9}$ → "998" bilan boshlanadigan va 9 ta raqamga ega bo‘lgan telefon raqamlari qabul qilinadi. re.match(pattern, phone) → agar raqam regex pattern’ga mos kelsa, to‘g‘ri deb qaytariladi. middleware ichida regex bilan …
4 / 20
ignorecase) → agar user-agent ichida "bot", "crawl", yoki "spider" so‘zi bo‘lsa, so‘rovni bloklaymiz. middleware orqali ip manzillarni tekshirish ba’zi hollarda faqat ma’lum ip manzillardan kelgan so‘rovlarni qabul qilish kerak bo‘ladi. buni regex yordamida middleware ichida amalga oshirish mumkin. misol: faqat 192.168.1.x dan kelgan ip’larni qabul qilish import re from django.http import jsonresponse class ipfiltermiddleware: def __init__(self, get_response): self.get_response = get_response def __call__(self, request): client_ip = request.meta.get("remote_addr", "") # 192.168.1.x ip'larini qabul qilish allowed_ip_pattern = r"^192\.168\.1\.\d+$" if not re.match(allowed_ip_pattern, client_ip): return jsonresponse({"error": "sizning ip manzilingizga ruxsat yo‘q!"}, status=403) response = self.get_response(request) return response 🔹 bu kodda: request.meta.get("remote_addr", "") → foydalanuvchi ip manzilini olamiz. ^192\.168\.1\.\d+$ → 192.168.1.x ko‘rinishidagi ip’lar ruxsat oladi. agar ip mos kelmasa, 403 (forbidden) qaytariladi. middleware orqali url ichidagi parametrlarni regex bilan tekshirish agar url’lar orqali kelayotgan parametrlar ma’lum bir shablon (pattern) ga mos kelishini tekshirmoqchi bo‘lsak, middleware dan foydalanishimiz mumkin. misol: url ichidagi order_id faqat raqam bo‘lishi kerak …
5 / 20
nish. --- django testlarida regex asosida natijalarni tekshirish. django testlash tizimi unittest kutubxonasiga asoslangan bo‘lib, assertregex() metodi yordamida matn ichida regex orqali ma’lum naqshlarni (pattern) tekshirish mumkin. bu metod test sinflari (testcase) ichida ishlatiladi va so‘rov javoblari, log ma’lumotlari yoki foydalanuvchi kiritgan ma’lumotlarni tekshirish uchun ishlatiladi. assertregex() metodiga umumiy tushuncha assertregex(string, pattern, msg=none) 📌 parametrlari: string → tekshirilayotgan matn. pattern → regex (muntazam ifoda) orqali tekshiriladigan naqsh. msg (ixtiyoriy) → agar test muvaffaqiyatsiz bo‘lsa, chiqadigan xabar. 📌 ishlash tamoyili: agar string ichida pattern topilsa, test o‘tadi. agar pattern mos kelmasa, test muvaffaqiyatsiz tugaydi. assertregex() ni django testlarida ishlatish misol: url manzildan foydalanuvchi id ajratish agar url manzil ichida id faqat raqamlardan iborat bo‘lishi kerak bo‘lsa, assertregex() yordamida tekshiramiz: from django.test import testcase class urlpatterntest(testcase): def test_user_id_in_url(self): url = "/profile/12345/" self.assertregex(url, r"/profile/\d+/", "url noto‘g‘ri formatda!") ✅ test muvaffaqiyatli o‘tadi, chunki "12345" raqamdan iborat. agar url = "/profile/abc/" bo‘lsa, test muvaffaqiyatsiz bo‘ladi, …

Want to read more?

Download all 20 pages for free via Telegram.

Download full file

About "django orm regex qidiruvlar"

презентация powerpoint 6. django’da regex orqali maxsus so‘rovlar yaratish --- orm (filter(), exclude(), annotate()) ichida regex ishlatish. ---__regex orqali qidiruvlar bajarish. django orm (object-relational mapping) ma’lumotlar bazasi bilan ishlash uchun kuchli va qulay vositalarni taqdim etadi. filter(), exclude(), va annotate() usullari yordamida regex (regular expressions) dan foydalanish mumkin. django orm-da regex ishlatish django orm qidiruvlar uchun regex (muntazam ifodalar) dan foydalanish imkoniyatini beradi. filter() va exclude() metodlarida __regex va __iregex lookup’lar mavjud. lookup tavsif field__regex="pattern" katta-kichik harflarga sezgir regex qidiruv field__iregex="pattern" katta-kichik harflarga sezgir emas regex qidiruv filter() bilan regex ishlatish filter() metodi...

This file contains 20 pages in PPT format (4.3 MB). To download "django orm regex qidiruvlar", click the Telegram button on the left.

Tags: django orm regex qidiruvlar PPT 20 pages Free download Telegram