<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:cc="http://cyber.law.harvard.edu/rss/creativeCommonsRssModule.html">
    <channel>
        <title><![CDATA[Stories by AslDev006 on Medium]]></title>
        <description><![CDATA[Stories by AslDev006 on Medium]]></description>
        <link>https://medium.com/@asldev006?source=rss-67bf60c2d064------2</link>
        <image>
            <url>https://cdn-images-1.medium.com/fit/c/150/150/1*y8f9WUCYrmclpat0DYQIBQ.jpeg</url>
            <title>Stories by AslDev006 on Medium</title>
            <link>https://medium.com/@asldev006?source=rss-67bf60c2d064------2</link>
        </image>
        <generator>Medium</generator>
        <lastBuildDate>Fri, 13 Nov 2026 23:09:46 GMT</lastBuildDate>
        <atom:link href="https://medium.com/@asldev006/feed" rel="self" type="application/rss+xml"/>
        <webMaster><![CDATA[yourfriends@medium.com]]></webMaster>
        <atom:link href="http://medium.superfeedr.com/" rel="hub"/>
        <item>
            <title><![CDATA[Django middleware haqida !]]></title>
            <link>https://medium.com/@asldev006/django-middleware-haqida-4d07731f5778?source=rss-67bf60c2d064------2</link>
            <guid isPermaLink="false">https://medium.com/p/4d07731f5778</guid>
            <category><![CDATA[asldev006]]></category>
            <category><![CDATA[middleware]]></category>
            <category><![CDATA[django]]></category>
            <category><![CDATA[asldev]]></category>
            <category><![CDATA[uzbekcha]]></category>
            <dc:creator><![CDATA[AslDev006]]></dc:creator>
            <pubDate>Mon, 01 Apr 2024 15:50:58 GMT</pubDate>
            <atom:updated>2024-04-01T15:50:58.410Z</atom:updated>
            <content:encoded><![CDATA[<h3>Django middleware haqida !</h3><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*6ohX5eBSdzdLSUDfKLkXhQ.jpeg" /></figure><p>Django middleware, Django framework-i ichidagi bir qisim bo’lib, HTTP so’rovlarini qabul qilish va javob berish jarayonida ishlaydigan kod qismidir. Middleware so’rov va javoblar orasida joylashgan va ularga o’zgartirishlar qilish imkoniyatini beradi.</p><p>Django middleware-i server tomonidan kelgan HTTP so’rovlarni o’z ichiga oladi va ularga ishlov berishdan oldin va keyin bir nechta qo’shimcha operatsiyalarni bajarish imkoniyatini beradi. Misol uchun, so’rovni tekshirish, autentifikatsiya va yetkilash, loyihada statistik ma’lumotni yig’ish, so’rovga qo’shimcha ma’lumotlar qo’shish va h.k. kabi amallarni bajarish uchun middleware qo’shish mumkin.</p><pre>MIDDLEWARE = [<br>    &#39;django.middleware.security.SecurityMiddleware&#39;,<br>    &#39;django.contrib.sessions.middleware.SessionMiddleware&#39;,<br>    &#39;django.middleware.common.CommonMiddleware&#39;,<br>    &#39;django.middleware.csrf.CsrfViewMiddleware&#39;,<br>    &#39;django.contrib.auth.middleware.AuthenticationMiddleware&#39;,<br>    &#39;django.contrib.messages.middleware.MessageMiddleware&#39;,<br>    &#39;django.middleware.clickjacking.XFrameOptionsMiddleware&#39;,<br>]</pre><p>Middleware-lar, Django-dagi MIDDLEWARE sozlamada ro&#39;yxatlangan tartibda ishlaydi. Har bir middleware, process_request, process_view, process_exception va process_response kabi usullarni o&#39;z ichiga oladi, bunday usullar server tomonidan kelgan so&#39;rovlar va javoblar jarayonida ishlov beradi.</p><p>process_request usuli serverga kelgan so&#39;rovni qabul qilib, uni to&#39;g&#39;rilab berishga imkoniyat beradi. Misol uchun, autentifikatsiya middleware-i foydalanuvchini tekshirib, autentifikatsiya qilmasa, avtorizatsiya sahifasiga yo&#39;naltirishi mumkin.</p><p>process_view usuli, so&#39;rovning muqobilini (view) o&#39;z ichiga oladi va uni to&#39;g&#39;rilab berishga imkoniyat beradi. Bu usulni ishlatish orqali, middleware-lar so&#39;rovni tekshirish, qo&#39;shimcha ma&#39;lumotlarni qo&#39;shish yoki so&#39;rovnigacha ma&#39;lumotlarni o&#39;zgartirish imkoniyatiga ega bo&#39;ladi.</p><p>process_exception usuli, serverda xato yuz berish paydo bo&#39;lganida ishlaydi. Misol uchun, middleware, xatoni to&#39;g&#39;rilab berish uchun ma&#39;lumotlar bazasiga yoki xatolarni saqlash uchun qo&#39;shimcha jarayonlarni bajarish imkoniyatini beradi.</p><p>process_response usuli, serverdan kelgan javobni o&#39;z ichiga oladi va uni to&#39;g&#39;rilab berishga imkoniyat beradi. Misol uchun, middleware-lar javobni tekshirish, javobga qo&#39;shimcha ma&#39;lumotlar qo&#39;shish yoki javobni modifikatsiya qilish uchun ishlatilishi mumkin.</p><p>Django middleware-i, kodni qayta ishlash va kengaytirishga imkon beradi, chunki bu kodni alohida jarayonlarda qo’llashni ta’minlaydi. Shuningdek, middleware-lar Django loyihalarda keng tarqalgan ishga kelayotgan kodni birjalanishi va kodni modifikatsiya qilish imkonini beradi.</p><p>Umid qilamanki, bu maqola sizga Django middleware-i haqida to’liq tushuntirishga yordam berdi. Agar sizga qo’shimcha savollar bo’lsa, murojaat qilishinggiz mumkin <br>Telegram: @AslDev_Blog<br>Instagram: @<a href="https://medium.com/u/67bf60c2d064">AslDev006</a></p><p>Created by <a href="https://medium.com/u/67bf60c2d064">AslDev006</a></p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=4d07731f5778" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[JWT authentication haqida !]]></title>
            <link>https://medium.com/@asldev006/jwt-authentication-haqida-cc8d6beb326b?source=rss-67bf60c2d064------2</link>
            <guid isPermaLink="false">https://medium.com/p/cc8d6beb326b</guid>
            <category><![CDATA[uzbek]]></category>
            <category><![CDATA[uzbekistan]]></category>
            <category><![CDATA[asldev]]></category>
            <category><![CDATA[jwt]]></category>
            <category><![CDATA[jwt-authentication]]></category>
            <dc:creator><![CDATA[AslDev006]]></dc:creator>
            <pubDate>Fri, 29 Mar 2024 12:40:41 GMT</pubDate>
            <atom:updated>2024-03-29T12:40:41.095Z</atom:updated>
            <content:encoded><![CDATA[<h3>#JWT authentication haqida !</h3><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*-N4m_jVUEglCtJxh79UVWg.png" /></figure><p>JWT (JSON Web Token), autentifikatsiya (authentication) protokollari uchun ishlatiladigan bir standartdır. Bu protokol avtorizatsiya (authorization) maqsadlari uchun ham qo’llaniladi. JWT autentifikatsiyasi, server va istemalarni o’rtasida ma’lumot almashishni amalga oshirish uchun imzolangan va shifrlangan JSON formatidagi tokenlarni ishlatadi. Tokenlar o’z ichiga ma’lumotlarni (payload) o’zlashtiradi va imzoni (signature) taqdim etadi.</p><p>JWT autentifikatsiyasi quyidagi turlarda ishlatiladi:</p><ol><li>Istemalarni autentifikatsiya qilish: JWT autentifikatsiyasi, foydalanuvchining kimligini tasdiqlash uchun foydalaniladi. Foydalanuvchi serverga so’rov yuborganida, server foydalanuvchini tasdiqlash uchun JWT tokenini generatsiya qiladi va foydalanuvchiga yuboradi. Foydalanuvchi so’rovni keltirganida, istemada JWT tokenini o’zgartirishsiz jo’natadi. Server esa tokenni o’qib, foydalanuvchining kimligini tasdiqlayadi.</li><li>API autentifikatsiyasi: JWT autentifikatsiyasi, RESTful API’lar uchun ham yaxshi variantdir. APIga so’rov yuborgan foydalanuvchilar uchun, har bir so’rovda JWT tokeni yuboriladi. Server tokenni tekshirib, foydalanuvchining ruhsatini va kimligini tasdiqlayadi. Bu usul, server tomonidan ko’proq talab qilinadigan sessiyalar va server tomonidan saqlanadigan holatni o’z ichiga olmaydi.</li><li>Single Sign-On (SSO): JWT autentifikatsiyasi, SSO tizimlari uchun ham foydalaniladi. Foydalanuvchilar bir marta ro’yxatdan o’tib, autentifikatsiya qilinadi va keyin boshqa ilovalardagi xizmatlarga kirish uchun o’zlarining autentifikatsiya ma’lumotlarini takroriy ko’rsatishlari talab qilmaydi. SSO tizimi foydalanuvchilar uchun JWT tokenini generatsiya qiladi va ular uchun turli xizmatlarga kirish imkonini beradi.</li></ol><p>JWT autentifikatsiyasi xavfsizlikni ta’minlash uchun quyidagi asosiy xavfsizlik tadbirlarini o’z ichiga oladi:</p><ul><li>Imzo va shifrlash: JWT tokenlari server tomonidan imzolangan va shifrlangan bo’lishi mumkin. Bu, tokenlarni o’zgartirishga qarshi himoyalaydi va hujjatlarni xavfsiz tarzda almashishga yordam beradi.</li><li>Ma’lumotlarni minimalizatsiya: JWT tokenlari o’z ichiga faqat zarur ma’lumotlarni (payload) o’zlashtirishi kerak. Maxfiylikni ta’minlash uchun maxsus ma’lumotlarni (masalan, parollar) tokenlar ichiga kiritilmaydi.</li><li>Token muddati: JWT tokenlarining muddati nazorat qilinadi. Token muddati o’tgandan so’ng, tokenlar avtomatik ravishda bekor qilinadi va yana yangi token talab qilinadi.</li></ul><p>JWT autentifikatsiyasi, osonlik, portativlik va xavfsizlik imkoniyatlari bilan keng qo’llaniladi. Uning standart formati va oson integratsiya imkoniyatlari, qo’llashni oson va samarali qiladi.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=cc8d6beb326b" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Python tilini o’rganish uchun qanday resurslardan foydalanish mumkin ?]]></title>
            <link>https://medium.com/@asldev006/python-tilini-organish-uchun-qanday-resurslardan-foydalanish-mumkin-729cf27ed5e3?source=rss-67bf60c2d064------2</link>
            <guid isPermaLink="false">https://medium.com/p/729cf27ed5e3</guid>
            <category><![CDATA[asldev]]></category>
            <category><![CDATA[uzbek]]></category>
            <category><![CDATA[django]]></category>
            <category><![CDATA[python]]></category>
            <category><![CDATA[samarkand]]></category>
            <dc:creator><![CDATA[AslDev006]]></dc:creator>
            <pubDate>Thu, 28 Mar 2024 12:42:53 GMT</pubDate>
            <atom:updated>2024-03-28T12:57:40.531Z</atom:updated>
            <content:encoded><![CDATA[<h3>Python tilini o’rganish uchun qanday resurslardan foydalanish mumkin ?</h3><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*U4ksvgeYmS09Kx-hIxgqUA.png" /></figure><p>1) <a href="https://python.org/?fbclid=IwAR3bX5zyxmsdDxNayEGZR-PAbWuB7yn0Y5phu2CKRDZDJdK0zpdp-GKm4A8_aem_AULC5HsMOXlC9Su2fw7Reb3WsAdDP-OXBI1XqOOoSvj8TlmH3U9FxZB2aht7hhfLV-dB56socBlA7jdrEzlUWI5f">Python.org:</a> Pythonning rasmiy veb-sayti (<a href="https://l.facebook.com/l.php?u=https%3A%2F%2Fwww.python.org%2F%3Ffbclid%3DIwAR1yMUPRpem50E1xChIByVE7hM9AcpZZ9cfMDdkgW_p8ggt2YQvlJw05Pr4_aem_AUI3qR_SkFDnRDSrLcqQDqaY6N38p7lFmy_JrHDENJPmXmM1tT6zTa_tKDa8XeEXIaNb4GNxyiC6Msxdynu8eDtE&amp;h=AT0hc7yWkJl7BEtilrf4WgfkS4gKtOb4_n4dx0e7DWX-U_NNMVhpsQ7qmbhT8DKNlBHXMu28GL2BJg_G9MYQ2JO-5bcoBHGE4ojCZm_os7nIV_UmEW45nnDpAw5YCANo4Zbx&amp;__tn__=-UK-R&amp;c[0]=AT2m6x97g6J1aWv-oSMo45GGKWS5aHzvpAZ-waWv4Axu1kN3JCvmOL_kWpm_H7PMKV5CNRGo_XcmT3EBdIHse59vn7a2MNWlav5vM2Zo0nCYPtf0ktoS-Vhx5-vE8G7uoPa_">https://www.python.org</a>) Pythonning asosiy hujjatlari, o’qishlar, Python tartibi va ko’p yondosh materiallar bilan ta’minlaydi. Ushbu saytda Python tilini o’rganish uchun ma’lumotlar, kitoblar va Pythonning eng so’ngi versiyalari mavjud.</p><p>2) <a href="https://python.org/?fbclid=IwAR37M3oY0F7ntVMn_0WU-HOSBRJuqjyWvewtWYN5-GELeB4GpTDHp88S8-I_aem_AUJ0Xf2datmLu9Gj706lDEqky83UhHKNlEYSiaEz1JORNewJO_OQ8AKf4UrGonRHw8kdNxpPe9ncozAnA8dJt1KN">Python.org</a> Learning Resources: <a href="https://l.facebook.com/l.php?u=https%3A%2F%2FPython.org%2F%3Ffbclid%3DIwAR00M0aMpSch3hlGBp_yTykbYkUrBS2_tbf3KciMKRW3ucUeUZFuPGzv03I_aem_AUIqjjGudGH5emUCQIrmmP5DGWD4nRXM-c2Xd3M7uZ650TV20rZXquzBTdk1Qaa-nF1PXnjfRDlBjorvgsc0CIRs&amp;h=AT2owxN436EqtIedyyhD1eUpngwe6Dfj3AS5Q04cMUkdWTYI-evE491ECsNGNMxtClDXJkxagbbGZ8UVD0mNLF0yaDeGiFl67ALOnjLfQyGeR3Dov0iblphS7MKcsaumIa1P&amp;__tn__=-UK-R&amp;c[0]=AT2m6x97g6J1aWv-oSMo45GGKWS5aHzvpAZ-waWv4Axu1kN3JCvmOL_kWpm_H7PMKV5CNRGo_XcmT3EBdIHse59vn7a2MNWlav5vM2Zo0nCYPtf0ktoS-Vhx5-vE8G7uoPa_">Python.org</a> sayti o’z ichida Pythonni o’rganish uchun yo’nalishlar, onlayn kitoblar, video darslar va mashqlar kabi qismlarni ham o’z ichiga oladi. Bu resurslar Pythonning asosiy qavramlarini va sintaksisini o’rganishga yordam beradi.</p><p>3) <a href="https://l.facebook.com/l.php?u=https%3A%2F%2FPython.org%2F%3Ffbclid%3DIwAR26lozTBoZ9BvWmsXKc52A5irbfdEHJ1gLnsfRIcaEyPfIHMggpAx-vNVg_aem_AUKHar1qjUMe__8Cm94DXZ8aGwZlPRkdQhNWB6fyW6h4KjebfTV5u_6SVIcGc5ihXjOA8c8ZUL7zNSeJAG6Axn9_&amp;h=AT2owxN436EqtIedyyhD1eUpngwe6Dfj3AS5Q04cMUkdWTYI-evE491ECsNGNMxtClDXJkxagbbGZ8UVD0mNLF0yaDeGiFl67ALOnjLfQyGeR3Dov0iblphS7MKcsaumIa1P&amp;__tn__=-UK-R&amp;c[0]=AT2m6x97g6J1aWv-oSMo45GGKWS5aHzvpAZ-waWv4Axu1kN3JCvmOL_kWpm_H7PMKV5CNRGo_XcmT3EBdIHse59vn7a2MNWlav5vM2Zo0nCYPtf0ktoS-Vhx5-vE8G7uoPa_">Python.org</a> Tutorial: <a href="https://l.facebook.com/l.php?u=https%3A%2F%2FPython.org%2F%3Ffbclid%3DIwAR0E-2Ynv5WMniqBLfLOUQhGpeVNijw05rqr-JdoF4JCJixHFVdxbYbgvCQ_aem_AUIBDECXFCoYCQ83ajmai5SIK1WaMi-rkz-ONZOgaOxfrsef5_bW3uvr9_fDZFlPrfgH92E4DWpx8uPl-X3qC66V&amp;h=AT2owxN436EqtIedyyhD1eUpngwe6Dfj3AS5Q04cMUkdWTYI-evE491ECsNGNMxtClDXJkxagbbGZ8UVD0mNLF0yaDeGiFl67ALOnjLfQyGeR3Dov0iblphS7MKcsaumIa1P&amp;__tn__=-UK-R&amp;c[0]=AT2m6x97g6J1aWv-oSMo45GGKWS5aHzvpAZ-waWv4Axu1kN3JCvmOL_kWpm_H7PMKV5CNRGo_XcmT3EBdIHse59vn7a2MNWlav5vM2Zo0nCYPtf0ktoS-Vhx5-vE8G7uoPa_">Python.org</a> saytida Python tilini o’rganish uchun boshlang’ich darslar ham mavjud. Ular asosiy sintaksisni, o’zgaruvchilar, funktsiyalar, ro’yxatlar, fayllar bilan ishlash va boshqalar kabi asosiy mavzularni qamrab o’tadi.</p><p>4) <a href="https://l.facebook.com/l.php?u=https%3A%2F%2FPython.org%2F%3Ffbclid%3DIwAR1ImA5Q8Web5jkaA8ubmz6gviLlkwcM37xzJs-KS43lbtHCTlnTzZ7pHWo_aem_AUK0eQw45JLZcYhvGP4X6iLTUnJgUgiPoNKl9B1PurU2SOpMmh9bqXKehTmV-17EJQYm8pwLcbShDm5ZWp-enL8j&amp;h=AT2owxN436EqtIedyyhD1eUpngwe6Dfj3AS5Q04cMUkdWTYI-evE491ECsNGNMxtClDXJkxagbbGZ8UVD0mNLF0yaDeGiFl67ALOnjLfQyGeR3Dov0iblphS7MKcsaumIa1P&amp;__tn__=-UK-R&amp;c[0]=AT2m6x97g6J1aWv-oSMo45GGKWS5aHzvpAZ-waWv4Axu1kN3JCvmOL_kWpm_H7PMKV5CNRGo_XcmT3EBdIHse59vn7a2MNWlav5vM2Zo0nCYPtf0ktoS-Vhx5-vE8G7uoPa_">Python.org</a> Documentation: Python tilining rasmiy qo’llanmasi, Pythonning asosiy hujjatlari, modullar va kutubxonalarni tushuntiradi. Ushbu qo’llanma o’z ichiga Pythonning barcha qismlarini o’z ichiga oladi va o’rganish jarayonida yaxshi murojaat manba sifatida ishlaydi.</p><p>5) “Python Crash Course” kitobi: Eric Matthes tomonidan yozilgan bu kitob Python tilini boshlang’ich darajada o’rganishga yordam beradi. Ushbu kitobda amaliy mashqlar, misollar va proyektlar bor, shuningdek, web dasturlash va datalar analiziga doir qo’llanmalar ham mavjud.</p><p>6) Coursera va Udemy: Onlayn ta’lim platformalari, masalan, Coursera (<a href="https://www.coursera.org/?fbclid=IwAR1wu4dKmTJgJio_yOUCALss2lIfkVwW3YHB_vmR0hEjGjCOMMBwBGENCRs_aem_AUJy2QREw6AQcOXnGHdtfak5cnj5cyAei6gq8tZw9WKuPR0F_TVIPwbkKtgAqwPiX-baGvednmS2ZCUJG6j01Ktp">www.coursera.org</a>) va Udemy (<a href="https://l.facebook.com/l.php?u=http%3A%2F%2Fwww.udemy.com%2F%3Ffbclid%3DIwAR38njBEHC0vmU1RV-glHhhMFxWlQ17mnfWU7nAK0c2NdRa_K_3Wrr_oe4g_aem_AUJUEaCU-9Flgwa45MnYkwelzpSKOanCKiRp-HTebCiOzbKR5HWHZBmRMDbLoGNQwitqj-IUiXdxzeDlQo1MsMGY&amp;h=AT27c4Il1MPNpSXSQtdb6HfKUmcNiID1kfuy5DMTIfpWKTJGVOMFyN97StFrh2F43JxJUs7laLDo54k3y7za2QBu10ruXrYna28xpcdYS_2nFL-b_GPTHGxG5AaS4e7LAlst&amp;__tn__=-UK-R&amp;c[0]=AT2m6x97g6J1aWv-oSMo45GGKWS5aHzvpAZ-waWv4Axu1kN3JCvmOL_kWpm_H7PMKV5CNRGo_XcmT3EBdIHse59vn7a2MNWlav5vM2Zo0nCYPtf0ktoS-Vhx5-vE8G7uoPa_">www.udemy.com</a>) Python tilini o’rganish uchun bir nechta kurslar taqdim etadi. Sizga qulay bo’lgan kursni tanlab, o’zingizga mos keluvchi vaqt rejimida o’rganish imkoniyatiga ega bo’lasiz.</p><p>7) YouTube darsliklari: Python tilini o’rganish uchun YouTube-da bir nechta yaxshi darsliklar mavjud. Corey Schafer, Sentdex va Tech With Tim kabi kanallar Pythonning turli xususiyatlari va dasturlash ustunliklari bo’yicha video darsliklarni taqdim etishadi.</p><p>8) Python forumlari va to’plamlari: Python tilini o’rganishda muhim manba sifatida Python forumlarini, masalan, Reddit’ni (<a href="https://www.reddit.com/r/Python">www.reddit.com/r/Python</a>) va Stack Overflow (<a href="http://stackoverflow.com/questions/tagged/python?fbclid=IwAR1wu4dKmTJgJio_yOUCALss2lIfkVwW3YHB_vmR0hEjGjCOMMBwBGENCRs_aem_AUJy2QREw6AQcOXnGHdtfak5cnj5cyAei6gq8tZw9WKuPR0F_TVIPwbkKtgAqwPiX-baGvednmS2ZCUJG6j01Ktp">stackoverflow.com/questions/tagged/python</a>) kabi sohalarini kuzating. Bu yerlarda savollar berishingiz, yordam so’rangishingiz va Python sohasidagi so’rovlarga javob topishingiz mumkin.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=729cf27ed5e3" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[python nima ?]]></title>
            <link>https://medium.com/@asldev006/python-nima-53ce4b4d4036?source=rss-67bf60c2d064------2</link>
            <guid isPermaLink="false">https://medium.com/p/53ce4b4d4036</guid>
            <category><![CDATA[python]]></category>
            <category><![CDATA[backend]]></category>
            <category><![CDATA[developer]]></category>
            <category><![CDATA[django]]></category>
            <dc:creator><![CDATA[AslDev006]]></dc:creator>
            <pubDate>Mon, 25 Sep 2023 08:03:04 GMT</pubDate>
            <atom:updated>2023-09-25T08:06:04.450Z</atom:updated>
            <content:encoded><![CDATA[<h3>python nima ?</h3><h3>Deyarli har qanday maqsad uchun yaratilgan mashhur va keng tarqalgan dasturlash tili bu Python.</h3><figure><img alt="" src="https://cdn-images-1.medium.com/max/520/0*g8JlLFAucsrjeyCs.jpg" /></figure><p>Python-bu turli xil ilovalar uchun ishlatilishi mumkin bo’lgan mashhur umumiy maqsadli dasturlash tili. U yuqori darajadagi ma’lumotlar tuzilmalari, dinamik yozish, dinamik bog’lash va boshqa ko’plab xususiyatlarni o’z ichiga oladi, bu esa uni skript yoki komponentlarni bir-biriga bog’laydigan “yopishtiruvchi kod” kabi murakkab dasturlarni ishlab chiqish uchun foydali qiladi. Bundan tashqari, deyarli barcha operatsion tizimlarga tizim qo’ng’iroqlarini amalga oshirish va C yoki C++da yozilgan kodni ishlatish uchun kengaytirilishi mumkin. Hamma joyda va deyarli har bir tizim arxitekturasida ishlash qobiliyati tufayli Python turli xil dasturlarda mavjud bo’lgan universal tildir. Dasturlash tili Python Package Index (PyPI) da mavjud bo’lgan minglab uchinchi tomon modullarini o’z ichiga oladi. PyPI veb-ishlab chiqish uchun Django va NumPy, Pandalar va ma’lumotlar fanlari uchun Mathplotlib kabi turli xil tajribalar uchun mashhur standartlarni taqdim etadi.</p><h3>Python Haqida</h3><p>Birinchi marta 1980-yillarning oxirida Gvido van Rossum tomonidan ishlab chiqilgan Python ochiq manbali dasturlash Tili sifatida Python-ni takomillashtirish bo’yicha takliflar (PEPs) orqali jamoatchilik muhokamasini boshqarish orqali rivojlandi. 2018 yilda van Rossum tilning hayot uchun xayrixoh diktatori (BDFL) lavozimidan ketdi va rasmiy ravishda aytilganidek PEP 13, tilning etakchisi sifatida xizmat qilish uchun boshqaruv kengashi tashkil etildi.</p><p>The Python dasturiy ta’minot fondi(PSF)-bu 501(c) (3) notijorat korporatsiyasi intellektual mulk orqasida huquqlar Python dasturlash tili. Bunga Python 2.1 va undan keyingi versiyalari, PyPI, Python ma’lumotnomasini amalga oshirish va tilni saqlash uchun infratuzilma kiradi. PSF shuningdek, dasturiy ta’minot hunarmandchiligi uchun grantlar beradi va yiliga bir nechta PyCon konferentsiyalarini o’tkazadi.</p><p>Python hozirda uchinchi asosiy versiyasida va muntazam ravishda yangilanadi.</p><h3>Python ochiq manbami?</h3><p>Ha, Python-ning barcha zamonaviy versiyalari ochiq manba tashabbusi bilan tasdiqlangan GPL-ga mos litsenziya asosida mualliflik huquqiga ega. Python logotipi savdo belgisiga ega, ammo sozlash imkonini beradi .</p><h3>Nima uchun Python foydalanish kerak ?</h3><p>Python sizning nuqtai nazaringiz va ichki dunyoyingizga qarab dasturlash tili sifatida yaxshi tanlov bo’lishining bir qancha sabablari bor.</p><h3>Dasturchilar uchun Python</h3><p>Dasturlash uchun yangi bo’lganlar Python-ning yuqori darajadagi abstraktsiyasidan foydalanishlari mumkin. Bu juda interaktiv va o’ziga xos sintaksis (shu jumladan bo’sh joy) atrofida “kuchli fikrlari” bilan mashhur. Python, boshqa yuqori darajadagi tillar singari, xotirani boshqarish yoki foydalanilmagan resurslarni o’chirish uchun axlat yig’ish jarayoniga ega. Foydalanuvchi buyruq satriga python yozish yoki brauzerga asoslangan ishlab chiqish tajribasini xohlasa, JupyterLab kabi loyihalardan foydalanish orqali tarjimondan tezkor fikr-mulohazalarni olishi mumkin. Ko’pgina foydalanuvchilar, shuningdek, Python kompilyator tomonidan qo’llaniladigan qat’iy sintaksisga ega ekanligini qadrlashadi va bu dastur yozish uchun bitta “to’g’ri yo’l” ga ega bo’lishni osonlashtiradi. Ushbu rivojlanish uslubi Python Zen orqali mustahkamlanadi:</p><p>Python Zen, Tim Peters tomonidan</p><p>Chiroyli chirkindan yaxshiroqdir.<br>Oshkor aniqlikdan yaxshiroqdir.<br>Oddiy kompleksdan yaxshiroqdir.<br>Kompleks murakkabdan yaxshiroqdir.<br>Yassi uyadan yaxshiroqdir.<br>Siyrak zichdan yaxshiroqdir.<br>Okunabilirlik soni.<br>Maxsus holatlar qoidalarni buzish uchun etarlicha maxsus emas.<br>Garchi amaliylik poklikni uradi.<br>Xatolar hech qachon jimgina o’tmasligi kerak.<br>Ochiq jim bo’lmasa.<br>Noaniqlik oldida, taxmin qilish vasvasasini rad eting.<br>Buni qilishning bitta-va faqat bitta-aniq usuli bo’lishi kerak.<br>Garchi siz golland bo’lmasangiz, bu yo’l dastlab aniq bo’lmasligi mumkin.<br>Endi hech qachon emas.<br>Garchi hech qachon hozir *o’ng* dan yaxshiroq emas.<br>Agar amalga oshirishni tushuntirish qiyin bo’lsa, bu yomon fikr.<br>Agar amalga oshirishni tushuntirish oson bo’lsa, bu yaxshi fikr bo’lishi mumkin.<br>Namespaces biri honking buyuk fikr bor-ning o’sha ko’proq qilsin!<br>Tajriba darajasidan qat’i nazar, turli xil kelib chiqishi bo’lgan dasturchilar tilga sezilarli darajada hissa qo’shadilar. Python bepul va mulkiy vositalarning etuk ekotizimiga ega, shu jumladan integratsiyalashgan rivojlanish muhiti (IDE), linters va ramkalar. PyPI va Conda orqali ulashilgan modullar deyarli har bir mavzuni qamrab oladigan chuqurlik va kenglikka ega. Eng mashhurlaridan ba’zilari:</p><h3>Kimlar Pythondan foydalanadi?</h3><p>Ko’pgina tashkilotlar Python foydalanuvchilari. Python-dan foydalanadigan eng taniqli va taniqli kompaniyalarga quyidagilar kiradi:</p><p>Firefox uchun eng yaxshi tanilgan Mozilla Pythonda yozilgan “230K kod satrlari” ga ega ekanligini aytadi.<br>Google o’zining ichki Python treningini baham ko’radi.<br>Microsoft IDE, Visual Studio kodi bilan Python rivojlanishini targ’ib qiladi.<br>Netflix ma’lumotlar ilm-fan uchun mintaqaviy failover monitoring dasturi har bir narsa uchun Python uning keng foydalanish ulashmoqda.<br>Uber ma’lumot almashish uchun Jupyter Notebook va IPython-dan foydalanishini aytadi.<br>Reddit asosan Pythonda yozilgan va GitHub-da manba kodini baham ko’radi.<br>Dropbox jamoat himoyachisi bo’lgan Python 3 uning infratuzilmasida.<br>Slack, Digital Ocean, Lyft, sous laboratoriyalari va tez-tez Python yordamida o’sish maqolasida eslatib o’tilgan.<br>CapitalOne, Bloomberg va JPMorgan kabi ko’plab moliyaviy firmalar Python ishlab chiquvchilarini yollashadi.<br>Bundan tashqari, ko’plab it infratuzilmasi texnologiyalari Pythonda yozilgan. Bu butun dunyo bo’ylab ma’lumotlar markazlarida xususiy va ommaviy bulutlarni kuchaytiradigan OpenStack bulutli hisoblash loyihasi uchun ishlatiladigan asosiy tildir. Ansible infratuzilmasini avtomatlashtirish dasturi Python-da ham yozilgan.</p><p>Bundan tashqari, Caliber va OpenShot kabi ish stoli dasturlarini yozish uchun ishlatiladi. Blender foydalanuvchilarga Python-da skript yozishga imkon beradigan boshqa tillarda yozilgan ko’plab dasturlardan biridir. Bu, shuningdek, mashinani o’rganish va ilmiy, statistik, matematik va boshqa ixtisoslashtirilgan hisoblash turlari uchun mashhur tildir. Hatto Raspberry Pi ham o’z nomini asoschilarning pitonni o’qitish uchun platformadan foydalanish rejasidan oldi.</p><p>Qisqasi, Python nima uchun ishlatiladi? Deyarli hamma narsa!</p><h3>Bizni kuzatib boring !</h3><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*MXs5f3vyoUakLA7y37id9Q.jpeg" /></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*DPImyqEFgAFwnsVXLXAdMw.jpeg" /></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*ACuzgiAhn_PWQ8jZLAe2dQ.jpeg" /></figure><p>#python #django #EFP_uz</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=53ce4b4d4036" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Django User Authentication]]></title>
            <link>https://medium.com/@asldev006/django-user-authentication-4f301e41ce1c?source=rss-67bf60c2d064------2</link>
            <guid isPermaLink="false">https://medium.com/p/4f301e41ce1c</guid>
            <category><![CDATA[django-auth]]></category>
            <category><![CDATA[django-authentication]]></category>
            <dc:creator><![CDATA[AslDev006]]></dc:creator>
            <pubDate>Fri, 15 Sep 2023 07:09:42 GMT</pubDate>
            <atom:updated>2023-09-15T07:09:42.889Z</atom:updated>
            <content:encoded><![CDATA[<p>Djangoda autentifikatsiyani tushunish va kodlash uchun molehilldan tog ‘ yaratmaylik. Autentifikatsiya, barchamiz bilganimizdek, foydalanuvchilarning haqiqiy xazina yoki umuman dasturga duch kelishidan oldin o’tishlari uchun zarur bo’lgan asosiy zaruratdir. Bu unga xavfsiz kirishni ta’minlash uchun ilova tomonidan kiyiladigan himoya vositasi. Bu erda men sizni Django ilovangiz bilan autentifikatsiyani birlashtirishda sizga yordam beradigan 5 oddiy qadam orqali yuraman.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/700/0*Jb1lm76W2EwKaWeh" /></figure><p>Django loyihasini boshlash uchun -</p><pre>django-admin startproject auth_django .if windows, <br>django-admin.exe startproject auth_django .</pre><p>1-qadam: sozlamalarni boshqarish settings.py<br>Agar bizda loyiha o’rnatilgan bo’lsa, keling, bir nechta autentifikatsiya URL manzillarini tezda aniqlaymiz settings.py loyiha (auth_django) papkasidagi fayl (ilovaning soddaligi tufayli ilova ko’rib chiqilmaydi).</p><pre># Login &amp; Logout URLs<br>LOGIN_URL = &#39;/login/&#39;<br>LOGIN_REDIRECT_URL = &#39;/home/&#39;<br>LOGOUT_REDIRECT_URL = &#39;/login/&#39;</pre><p>Shuningdek, ‘DIRS’DAGI Andoza/ jildga o’tish yo’lini ishga tushiring.</p><pre>TEMPLATES = [<br>{ <br>  &#39;DIRS&#39;: [os.path.join(BASE_DIR, &#39;templates/&#39;)],<br>  ...<br>]</pre><p>Note: Create a folder named templates/ in parent auth_django/ directory.</p><p>2-qadam: fikrlarni aniqlash views.py<br>Django qarashlari mantiq joylashgan joy. Yaratish views.py auth_django fayl/ auth_django / yo’l. Biz ikkita ko’rinishni aniqlaymiz — biri foydalanuvchi registriga, ikkinchisi esa uy sahifasini ko’rsatishga yordam beradi. Kirish va chiqish qarashlari oldindan belgilangan auth_vish olingan (qadam ko’rish uchun 3).</p><pre>from django.shortcuts import render, redirect, reverse<br>from django.contrib.auth import login, authenticate<br>from django.contrib.auth.forms import UserCreationForm<br>from django.contrib.auth.decorators import login_required<br> <br># Views<br>@login_required<br>def home(request):<br>    return render(request, &quot;registration/success.html&quot;, {})<br> <br>def register(request):<br>    if request.method == &#39;POST&#39;:<br>        form = UserCreationForm(request.POST)<br>        if form.is_valid():<br>            form.save()<br>            username = form.cleaned_data.get(&#39;username&#39;)<br>            password = form.cleaned_data.get(&#39;password1&#39;)<br>            user = authenticate(username = username, password = password)<br>            login(request, user)<br>            return redirect(&#39;home&#39;)<br>    else:<br>        form = UserCreationForm()<br>    return render(request, &#39;registration/register.html&#39;, {&#39;form&#39;: form})</pre><p>Uy ko’rinishi muvaffaqiyat sahifasini ko’rsatadi. @ login_required-bu uyga tasdiqlanmagan foydalanuvchilar uchun kirish imkoni yo’qligiga ishonch hosil qilish. Ro’yxatdan o’tish ko’rinishida dastlab foydalanuvchidan foydalanuvchi nomi, parol va parolni tasdiqlashni talab qiladigan UserCreationForm ko’rsatiladi. Foydalanuvchi shaklni topshirganda, tafsilotlar olinadi va tasdiqlanadi. Agar tasdiqlash muvaffaqiyatli bo’lsa, tafsilotlar standart ma’lumotlar bazasida (SQLite) saqlanadi va foydalanuvchi autentifikatsiya orqali bosh sahifaga olib boriladi.</p><p>3-qadam: URL manzillarini ishga tushirish urls.py<br>Autentifikatsiya URL-larining barchasi Ko’rishlar bilan bog’liq urls.py. uy va ro’yxatdan o’tish URL manzillari quyidagi ko’rinishlar bilan taqqoslanadi views.py. kirish va chiqish ichki auth_viarships bilan bog’langan. as_vyu () sinf Loginvyu bir usuli hisoblanadi/bir chaqiriladigan ko’rinishini qaytaradi Logoutvyu.</p><pre>from django.contrib.auth import views as auth_views<br>from . import views<br> <br>urlpatterns = [<br>    path(&#39;login/&#39;, auth_views.LoginView.as_view(), name=&#39;login&#39;),<br>    path(&#39;logout/&#39;, auth_views.LogoutView.as_view(), name=&#39;logout&#39;),<br>    path(&#39;home/&#39;, views.home, name=&#39;home&#39;),<br>    path(&#39;register/&#39;, views.register, name=&#39;register&#39;),<br>    path(&#39;admin/&#39;, admin.site.urls),<br>]</pre><p>4-Qadam: Shablonlarni Yaratish<br>Foydalanuvchilar dasturni shablonlar orqali tushunishadi. kirish ko’rinishi sukut bo’yicha ro’yxatdan o’tish/kirishdan foydalanadi.shablonlarda/ papkada html. Shunday qilib, biz ro’yxatdan barcha andozalari aniqlash/ papka.</p><p>asos.html-tashqi kutubxonalarni qamrab oladi</p><pre><br>&lt;html&gt;<br>  &lt;head&gt;<br>    &lt;title&gt;Base template&lt;/title&gt;<br> <br>    &lt;!-- CSS only --&gt;<br>    &lt;link<br>      rel=&quot;stylesheet&quot;<br>      href=&quot;https://stackpath.bootstrapcdn.com/bootstrap/4.5.0/css/bootstrap.min.css&quot;<br>      integrity=&quot;sha384-9aIt2nRpC12Uk9gS9baDl411NQApFmC26EwAOH8WgZl5MYYxFfc+NcPb1dKGj7Sk&quot;<br>      crossorigin=&quot;anonymous&quot;<br>    /&gt;<br>    &lt;style&gt;<br>      .col-centered {<br>        text-align: center;<br>      }<br>    &lt;/style&gt;<br>  &lt;/head&gt;<br>  &lt;body&gt;<br>    {% block content %} {% endblock %}<br> <br>    &lt;!-- JS, Popper.js, and jQuery --&gt;<br>    &lt;script<br>      src=&quot;https://code.jquery.com/jquery-3.5.1.slim.min.js&quot;<br>      integrity=&quot;sha384-DfXdz2htPH0lsSSs5nCTpuj/zy4C+OGpamoFVy38MVBnE+IbbVYUew+OrCXaRkfj&quot;<br>      crossorigin=&quot;anonymous&quot;<br>    &gt;&lt;/script&gt;<br>    &lt;script<br>      src=&quot;https://cdn.jsdelivr.net/npm/popper.js@1.16.0/dist/umd/popper.min.js&quot;<br>      integrity=&quot;sha384-Q6E9RHvbIyZFJoft+2mJbHaEWldlvI9IOYy5n3zV9zzTtmI3UksdQRVvoxMfooAo&quot;<br>      crossorigin=&quot;anonymous&quot;<br>    &gt;&lt;/script&gt;<br>    &lt;script<br>      src=&quot;https://stackpath.bootstrapcdn.com/bootstrap/4.5.0/js/bootstrap.min.js&quot;<br>      integrity=&quot;sha384-OgVRvuATP1z7JjHLkuOU7Xw704+h835Lr+6QL9UvYjZE3Ipu6Tp75j7Bh/kR0JKI&quot;<br>      crossorigin=&quot;anonymous&quot;<br>    &gt;&lt;/script&gt;<br>  &lt;/body&gt;<br>&lt;/html&gt;</pre><p>2. login.html — Login Form</p><pre>{% extends &#39;registration/base.html&#39; %} {% block content %}<br>&lt;section&gt;<br>  &lt;div class=&quot;container&quot;&gt;<br>    &lt;div class=&quot;row&quot;&gt;<br>      &lt;div class=&quot;col-md-12 col-centered&quot;&gt;<br>        &lt;h1 class=&quot;mt-5 mb-3&quot;&gt;Login&lt;/h1&gt;<br>      &lt;/div&gt;<br>    &lt;/div&gt;<br>    &lt;div class=&quot;row&quot;&gt;<br>      &lt;div class=&quot;col-md-6 offset-md-3 mt-3&quot;&gt;<br>        &lt;form method=&quot;post&quot; action=&quot;{% url &#39;login&#39; %}&quot;&gt;<br>          {% csrf_token %}<br>          &lt;div class=&quot;form-group&quot;&gt;<br>            {{ form.username.label_tag }}<br>            &lt;input<br>              type=&quot;text&quot;<br>              name=&quot;username&quot;<br>              class=&quot;form-control&quot;<br>              maxlength=&quot;150&quot;<br>              id=&quot;id_username&quot;<br>              required<br>            /&gt;<br>          &lt;/div&gt;<br>          &lt;div class=&quot;form-group&quot;&gt;<br>            {{ form.password.label_tag }}<br>            &lt;input<br>              type=&quot;password&quot;<br>              name=&quot;password&quot;<br>              class=&quot;form-control&quot;<br>              id=&quot;id_password&quot;<br>              required<br>            /&gt;<br>          &lt;/div&gt;<br>          {% if form.non_field_errors %} {% for error in form.non_field_errors %}<br>          &lt;p style=&quot;font-size: 13px;&quot;&gt;<br>            {{ error|escape }}<br>          &lt;/p&gt;<br>          {% endfor %} {% endif %}<br>          &lt;button type=&quot;submit&quot; class=&quot;btn btn-primary&quot;&gt;Login&lt;/button&gt;<br>        &lt;/form&gt;<br>      &lt;/div&gt;<br>    &lt;/div&gt;<br>  &lt;/div&gt;<br>&lt;/section&gt;<br>{% endblock %}</pre><p>3. register.html — Registration Form</p><pre><br>{% extends &#39;registration/base.html&#39; %} {% block content %}<br>&lt;section&gt;<br>  &lt;div class=&quot;container&quot;&gt;<br>    &lt;div class=&quot;row&quot;&gt;<br>      &lt;div class=&quot;col-md-12 col-centered&quot;&gt;<br>        &lt;h1 class=&quot;mt-5 mb-3&quot;&gt;Register&lt;/h1&gt;<br>      &lt;/div&gt;<br>    &lt;/div&gt;<br>    &lt;div class=&quot;row&quot;&gt;<br>      &lt;div class=&quot;col-md-6 offset-md-3 mt-3&quot;&gt;<br>        &lt;form method=&quot;post&quot; action=&quot;{% url &#39;register&#39; %}&quot;&gt;<br>          {% csrf_token %} {% for field in form %}<br>          &lt;div class=&quot;form-group&quot;&gt;<br>            {{ field.label_tag }}<br>            &lt;input<br>              type=&quot;{% if &#39;password&#39; in field.label_tag %}password{% else %}text{% endif %}&quot;<br>              name=&quot;{{ field.html_name }}&quot;<br>              class=&quot;form-control&quot;<br>              maxlength=&quot;{% if &#39;username&#39; in field.label_tag %}150{% endif %}&quot;<br>              id=&quot;{{ field.id_for_label }}&quot;<br>              required<br>            /&gt;<br>          &lt;/div&gt;<br>          {% if field.errors %} {% for error in field.errors %}<br>          &lt;p style=&quot;font-size: 13px;&quot;&gt;<br>            {{ error|escape }}<br>          &lt;/p&gt;<br>          {% endfor %} {% endif %} {% endfor %}<br>          &lt;button type=&quot;submit&quot; class=&quot;btn btn-primary mt-2&quot;&gt;Register&lt;/button&gt;<br>        &lt;/form&gt;<br>      &lt;/div&gt;<br>    &lt;/div&gt;<br>  &lt;/div&gt;<br>&lt;/section&gt;<br>{% endblock %}</pre><p>4. success.html — Home page</p><pre>{% extends &#39;registration/base.html&#39; %} <br>{% block content %}<br>&lt;section&gt;<br>  &lt;div class=&quot;container&quot;&gt;<br>    &lt;div class=&quot;row&quot;&gt;<br>      &lt;div class=&quot;col-md-12 col-centered&quot;&gt;<br>        &lt;h1 class=&quot;mt-5 mb-3&quot;&gt;Login Success!&lt;/h1&gt;<br>      &lt;/div&gt;<br>    &lt;/div&gt;<br>    &lt;div class=&quot;row&quot;&gt;<br>      &lt;div class=&quot;col-md-12 col-centered mt-3&quot;&gt;<br>        &lt;a href=&quot;{% url &#39;logout&#39; %}&quot; class=&quot;btn btn-primary&quot;&gt;Logout&lt;/a&gt;<br>      &lt;/div&gt;<br>    &lt;/div&gt;<br>  &lt;/div&gt;<br>&lt;/section&gt;<br>{% endblock %} </pre><p>Loyiha Katalogi Tuzilishi -</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/316/0*WwbWz-qd8LXvnnaz.png" /></figure><p>Qadam 5:Kodi Hosil!<br>Qulay buyruqlar:</p><p>Ma’lumotlar bazasini ko’chirish uchun -</p><pre>python3 manage.py migrate</pre><p>To run server -</p><pre>python3 manage.py runserver</pre><figure><img alt="" src="https://cdn-images-1.medium.com/max/700/0*iSQzBEUqvVhEHzMb" /></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/700/0*0E9BfSzUUoH7isth" /></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/700/0*QVDj_r_uALMU0trB" /></figure><p>Umid qilamanki, ushbu maqola sizga yordam berdi. O’qish uchun rahmat!</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=4f301e41ce1c" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Django Contact Form]]></title>
            <link>https://medium.com/@asldev006/django-contact-form-ac6bc1d9c9db?source=rss-67bf60c2d064------2</link>
            <guid isPermaLink="false">https://medium.com/p/ac6bc1d9c9db</guid>
            <dc:creator><![CDATA[AslDev006]]></dc:creator>
            <pubDate>Thu, 03 Aug 2023 07:26:36 GMT</pubDate>
            <atom:updated>2023-08-03T07:26:36.884Z</atom:updated>
            <content:encoded><![CDATA[<h3>Django Contact Form qanday yaratiladi ?.</h3><p>Avvalo biz virtual muhitni skalantirib olishimiz kerak. So’ngra pip yordamida django o’rnatamiz</p><pre>pip install django</pre><p>Agar sizda sukut bo’yicha o’rnatilgan eng so’nggi emas, balki sizga kerak bo’lgan ma’lum bir versiya bo’lsa, ushbu buyruqni bajaring va versiya raqamini ko’rsating:</p><pre>pip install django==4.2</pre><p>Keyinchalik, kontakt shaklini boshlashdan oldin haqiqiy loyihani o’rnatishingiz kerak bo’ladi. Buni buyruqni bajarish orqali bajaring django-admin startproject &lt;projectname&gt;, bu erda &lt; projectname&gt; — bu Sizning Django loyihangizga bermoqchi bo’lgan ism. Bizning misolimizda biz uni myproject deb nomlaymiz</p><pre>django-admin startproject myproject</pre><p>Ushbu buyruq asosiy Sozlamalar va konfiguratsiya fayllarini o’z ichiga olgan myproject deb nomlangan yangi katalog yaratadi.</p><pre>myproject/<br>    manage.py<br>    myproject/<br>        __init__.py<br>        settings.py<br>        urls.py<br>        asgi.py<br>        wsgi.py</pre><p>***manage.py fayl-bu loyiha bilan o’zaro aloqada bo’lishga yordam beradigan buyruq qatori yordam dasturi.</p><p>Endi siz asosiy aloqa shaklini yaratishni boshlashga tayyormiz.<br>Yangisini yaratish bilan boshlang forms.py myproject papkasidagi fayl.</p><p>Tasdiqlash va ko’rsatish kabi turli xil shakl bilan bog’liq funktsiyalarga kirish uchun Django-ning o’rnatilgan shakl sinfini meros qilib olgan shakl sinfini yarating. Bu erda siz foydalanuvchidan to’plamoqchi bo’lgan shakl maydonlarini belgilashingiz mumkin. Faylga kiradigan to’liq kod:</p><pre>from django import forms<br><br><br>class ContactForm(forms.Form):<br>    name = forms.CharField(required=True)<br>    email = forms.EmailField(required=True)<br>    message = forms.CharField(widget=forms.Textarea)</pre><p>Bu shunchaki asosiy misol, lekin foydalanuvchi ma’lumotlarni to’g’ri kiritishini ta’minlash uchun qo’shimcha maydonlar va o’rnatilgan tasdiqlarni qo’shishingiz mumkin:</p><pre>from django import forms<br>from django.core.validators import EmailValidator<br><br><br>class ContactForm(forms.Form):<br>    name = forms.CharField(max_length=100)<br>    email = forms.CharField(validators=[EmailValidator()])<br>    phone = forms.CharField(max_length=15)<br>    subject = forms.CharField(max_length=100)<br>    message = forms.CharField(widget=forms.Textarea)</pre><p>Kontakt formasi sinfi yaratilgandan so’ng, yangisini yarating views.py fayl va unda kontakt shakli shablonini ko’rsatadigan va yuborishni boshqaradigan ko’rinish funktsiyasini qo’shing:</p><pre>from django.shortcuts import render, redirect<br>from myproject.forms import ContactForm<br>from django.http import HttpResponse<br><br><br>def contact(request):<br>    if request.method == &#39;POST&#39;:<br>        form = ContactForm(request.POST)<br>        if form.is_valid():<br>            # Process the form data<br>            pass<br>            return redirect(&#39;success&#39;)<br>    else:<br>        form = ContactForm()<br>    return render(request, &#39;contact.html&#39;, {&#39;form&#39;: form})<br><br><br>def success(request):<br>   return HttpResponse(&#39;Success!&#39;)</pre><p>Bu erda biz veb-so’rovni qabul qiladigan va ko’rsatilgan aloqa shakli shablonini qaytaradigan contact deb nomlangan ko’rish funktsiyasini aniqladik.</p><p>Ko’rish funktsiyasi quyidagilar uchun javobgardir:<br> * foydalanuvchi tomonidan taqdim etilgan shakl ma’lumotlarini qayta ishlash<br> *so’rov pochta so’rovi ekanligini tekshirish <br> *Is_valid () usuli orqali taqdim etilgan ma’lumotlarni tasdiqlash uchun * *kontakt formasi sinfining namunasini yaratish<br>*Ushbu misolda biz shunchaki o’tamiz, lekin siz ham mumkin:</p><p>Shakl ma’lumotlarini elektron pochta orqali yuboring. Buni quyidagi keyingi bosqichda kod misollari bilan batafsilroq ko’rib chiqamiz. <br>Shakl ma’lumotlarini ma’lumotlar bazasiga saqlang:</p><pre>import csv<br>from django.shortcuts import redirect<br><br>name = form.cleaned_data[&#39;name&#39;]<br>email = form.cleaned_data[&#39;email&#39;]<br>message = form.cleaned_data[&#39;message&#39;]<br><br>file = open(&#39;responses.csv&#39;, &#39;a&#39;)<br>writer = csv.writer(file)<br>writer.writerow([name,email,message])<br>file.close()<br><br>return redirect(&#39;success&#39;)</pre><p>Ushbu yondashuv shakl ma’lumotlarini ma’lumotlar bazasi o’rniga CSV fayliga saqlashini unutmang. Shakl ma’lumotlarini ma’lumotlar bazasiga saqlash uchun siz ma’lumotlarni saqlash uchun modelni belgilashingiz kerak. Django-da modellarni aniqlash haqida ko’proq ma’lumot olish uchun modellarni sozlash bo’yicha Django qo’llanmasini ko’rib chiqing.</p><p>Biz yaratgan ko’rish funktsiyasidan foydalanish uchun URL orqali kirish mumkin bo’lgan veb-sahifa yoki so’nggi nuqta yaratish uchun URL-ni ko’rish funktsiyasiga xaritalashingiz kerak bo’ladi.</p><p>Bu kontakt() funktsiyasiga ishora qiluvchi URL naqshini belgilaydigan path() funktsiyasi yordamida amalga oshiriladi. Ushbu kod chaqirilgan faylga o’tishi kerakligini unutmang myproject/urls.py</p><pre>from django.urls import path<br>from myproject.views import contact, success<br><br>urlpatterns = [<br>    path(&#39;contact/&#39;, contact, name=&#39;contact&#39;),<br>    path(&#39;success/&#39;, success, name=&#39;success&#39;)<br>]</pre><p>Ushbu nuqtada siz kontakt shakli uchun HTML-ni noldan yozishingiz yoki tayyor shablon faylidan foydalanishingiz kerak bo’ladi. HTML shablonlari uchun bir nechta manbalar mavjud va siz tanlaganingiz sizga kerakli dizayn va funksionallikka bog’liq.</p><p>Ba’zi manbalar quyidagilar bo’lishi mumkin:<br>Djangoning o’rnatilgan shablonlari<br>Bootstrap yoki shunga o’xshash ramkalar <br>GitHub-dagi ochiq manbali loyihalar<br>Bizning yo’riqnomamiz bilan ishlaydigan shablonni o’rnatish uchun bir necha oddiy qadamlar:</p><p>Buni shablonlar sozlamalariga qo’shing settings.py:</p><pre>&#39;DIRS&#39;: [<br>           os.path.join(BASE_DIR, &quot;templates&quot;)<br>       ],</pre><p>Shablonlar yaratish / aloqa.html bizning loyihamizda quyidagi tarkib bilan</p><pre>&lt;form action=&quot;/contact/&quot; method=&quot;post&quot;&gt;<br>   {% csrf_token %}<br>   {% for field in form %}<br>       &lt;div class=&quot;fieldWrapper&quot;&gt;<br>           {{ field.errors }}<br>           {{ field.label_tag }} {{ field }}<br>       &lt;/div&gt;<br>   {% endfor %}<br>   &lt;input type=&quot;submit&quot; value=&quot;Submit&quot;&gt;<br>&lt;/form&gt;</pre><p>Oxirgi teginish sifatida, yuborish tugmachasini bosgandan so’ng foydalanuvchi yo’naltiriladigan muvaffaqiyat sahifasini qo’shing:</p><pre>from django.shortcuts import render, redirect<br>from myproject.forms import ContactForm<br><br>def contact(request):<br>    if request.method == &#39;POST&#39;:<br>        form = ContactForm(request.POST)<br>        if form.is_valid():<br>            # Process the form data<br>            return redirect(&#39;success&#39;)<br>    else:<br>        form = ContactForm()<br>    return render(request, &#39;contact.html&#39;, {&#39;form&#39;: form})<br><br>def success(request):<br>    return render(request, &#39;success.html&#39;)</pre><p>To run all of the example codes from this tutorial, and to check the result, execute the following command in your terminal: python3 manage.py runserver</p><p>After that, open your web browser and enter this URL <a href="http://127.0.0.1:8000/contact/">http://127.0.0.1:8000/contact/</a></p><p>to access the contact form page. Here’s an example of what you should see:</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/576/1*_kXSXVhoAo5wgoegd5rRjQ.png" /></figure><h3>How to send an email via a Django contact form?</h3><p>As shown earlier, there are a few actions that you can set the form to do once it’s submitted. In most cases, you’ll want it to send an email with the form’s information. For this to happen, you’ll need to list the SMTP server configuration and your credentials in the <strong>settings.py</strong> file.</p><p>In the following code example, we are using <a href="https://mailtrap.io/email-sending/">Mailtrap Email Sending</a> as the SMTP server, but of course, it can be Gmail or any other SMTP server of an email service provider.</p><pre>EMAIL_BACKEND = &#39;django.core.mail.backends.smtp.EmailBackend&#39;<br>EMAIL_HOST = &#39;live.smtp.mailtrap.io&#39;<br>EMAIL_PORT = 587<br>EMAIL_HOST_USER = &#39;example_username&#39;<br>EMAIL_HOST_PASSWORD = &#39;example_password&#39;<br>EMAIL_USE_TLS = True</pre><p>Elektron pochta sozlamalarini sozlaganingizdan so’ng, ko’rish funksiyangizga elektron pochta xabarini yuborish uchun Django-ning o’rnatilgan elektron pochta yuborish funksiyasidan foydalaning.</p><p>Elektron pochta xabarini yuborish uchun biz ilgari yaratgan kontakt() ko’rish funktsiyasini qanday o’zgartirish haqida to’liq kod:</p><pre>from django.shortcuts import render, redirect<br>from django.core.mail import EmailMessage<br>from myproject.forms import ContactForm<br>from django.conf import settings<br><br>def contact(request):<br>    if request.method == &#39;POST&#39;:<br>        form = ContactForm(request.POST)<br>        if form.is_valid():<br>            name = form.cleaned_data[&#39;name&#39;]<br>            email = form.cleaned_data[&#39;email&#39;]<br>            message = form.cleaned_data[&#39;message&#39;]<br><br><br>           EmailMessage(<br>               &#39;Contact Form Submission from {}&#39;.format(name),<br>               message,<br>               &#39;form-response@example.com&#39;, # Send from (your website)<br>               [&#39;JohnDoe@gmail.com&#39;], # Send to (your admin email)<br>               [],<br>               reply_to=[email] # Email from the form to get back to<br>           ).send()<br><br>            return redirect(&#39;success&#39;)<br>    else:<br>        form = ContactForm()<br>    return render(request, &#39;contact.html&#39;, {&#39;form&#39;: form})</pre><h3>Aloqa shaklingizni Mailtrap elektron pochta testi bilan sinab ko’rish</h3><p>Tegishli funktsionallik uchun, kontakt shaklini sinab ko’rish va shu sababli, Django ilovasi yoki veb-saytingiz tomonidan joylashtirishdan oldin yuborilgan har qanday elektron pochta har doim tavsiya etiladi.</p><p>Mailtrap elektron pochta sinovlari foydalanuvchilarga spam yuborish xavfisiz rivojlanish muhitida elektron pochta funktsiyalarini sinab ko’rish uchun foydali vositadir. Django ilovangiz tomonidan yuborilgan barcha elektron pochta xabarlarini ushlab turish va yozib olish orqali elektron pochta sinovlari elektron pochtangizning HTML/CSS-ning turli xil elektron pochta mijozlari bilan mosligini baholash, elektron pochta xabarlari turli xil qurilmalarda qanday paydo bo’lishini tekshirish, batafsil spam-tahlilni olish va elektron pochta ma’lumotlarini ko’rib chiqish imkonini beradi.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*8l-e-1pMpbivK22ylPFOLA.png" /></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*HOGDqAy-Sx35ziXg5V93JA.png" /></figure><p>Mailtrap hisob qaydnomangizga ega bo’lgach, SMTP hisob ma’lumotlarini elektron pochta orqali sinab ko’rishni sozlang settings.py “mening kirish qutim” sahifasida joylashgan foydalanuvchi nomingiz va parolingizni kiriting va kiriting. Bu Mailtrap-ga arizangizning aloqa shaklidan yuborilgan har qanday elektron pochtani ushlab qolish va uni keyingi tekshirish uchun asboblar panelida ko’rsatish imkonini beradi.</p><pre>EMAIL_BACKEND = &#39;django.core.mail.backends.smtp.EmailBackend&#39;<br>EMAIL_HOST = &#39;sandbox.smtp.mailtrap.io&#39;<br>EMAIL_PORT = 2525<br>EMAIL_HOST_USER = &#39;example_username&#39;<br>EMAIL_HOST_PASSWORD = &#39;example_password&#39;<br>EMAIL_USE_TLS = True</pre><h3>Xulosa<br>Ushbu qadamlar bilan siz foydalanuvchilaringiz bilan bog’lanishingizga yordam beradigan veb-saytingiz uchun ishonchli va samarali aloqa shaklini ishlab chiqa olasiz. Shunday qilib, davom eting va bugun veb-saytingizda Django aloqa shaklini amalga oshiring! Agar sizga Django va Python haqida ko’proq foydali mavzular kerak bo’lsa, ularni tekshiring:</h3><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=ac6bc1d9c9db" width="1" height="1" alt="">]]></content:encoded>
        </item>
    </channel>
</rss>