پروگرامنگ

الٹیمیٹ ازگر کے ابتدائی رہنما

30 اکتوبر 2021

فہرست کا خانہ

  • ماحولیاتی سیٹ اپ
    • مقامی ماحولیات کا سیٹ اپ
    • ازگر حاصل کرنے کا طریقہ
    • ازگر کو انسٹال کرنے کا طریقہ
    • ونڈوز انسٹالیشن
    • یونکس/لینکس انسٹالیشن
    • میک کی تنصیب
    • ازگر کے لیے راستہ ترتیب دینا
    • یونکس/لینکس کے لیے راستہ ترتیب دینا
    • ونڈوز کے لیے راستہ ترتیب دینا
  • ازگر کے ماحول کے متغیرات
    • Python چل رہا ہے۔
  • بنیادی نحو
    • ازگر کی شناخت کرنے والے
    • ازگر کا بیان
    • Python میں انڈینٹ
    • Python میں تبصرے
    • ان پٹ حاصل کرنا
    • آؤٹ پٹ ڈسپلے کریں۔
  • متغیر اقسام
    • متغیرات کو قدریں تفویض کرنا
    • Python ڈیٹا کی اقسام
    • ڈور
    • ٹوپلس
    • فہرستیں
    • نمبرز
  • بنیادی آپریٹرز
    • اسائنمنٹ آپریٹر
    • بٹ وائز آپریٹر
    • منطقی آپریٹر
    • ریاضی کا آپریٹر
    • موازنہ آپریٹر
    • شناختی آپریٹر
    • ممبرشپ آپریٹر
  • فیصلہ سازی۔
    • اگر بیان
    • اور اگر
    • نیسٹڈ اگر
    • اگر-الف-الس-سیڑھی
    • شارٹ ہینڈ اگر بیان
    • شارٹ ہینڈ if-else بیان
  • لوپس
    • جبکہ لوپ
    • لوپ کے لیے
    • نیسٹڈ لوپس
    • لوپ کنٹرول کے بیانات
    • بیان جاری رکھیں
    • بریک بیان
    • بیان پاس کریں۔
  • نمبرز
    • نمبر کی قسم کی تبدیلی
    • بے ترتیب نمبر کے افعال
    • مثلثی افعال
    • ریاضی کے افعال
  • ڈور
    • تار بنانا
    • اسٹرنگ سپیشل آپریٹرز
    • سٹرنگ فارمیٹنگ آپریٹرز
    • فرار کردار
    • سٹرنگ طریقوں میں بنایا گیا ہے۔
  • ٹوپلس
    • Tuples میں قدروں تک رسائی
    • ٹیپلز کو اپ ڈیٹ کرنا
    • بنیادی ٹوپل آپریٹرز
    • Tuple افعال میں بنایا گیا ہے۔
    • انڈیکسنگ اور سلائسنگ
    • ٹیپل کو حذف کرنا
  • فہرستیں
    • فہرستوں میں قدروں تک رسائی
    • فہرستوں کو اپ ڈیٹ کرنا
    • بنیادی فہرست آپریٹرز
    • فہرست افعال اور طریقوں میں بنایا گیا ہے۔
    • انڈیکسنگ اور سلائسنگ
    • فہرستوں کا عنصر حذف کریں۔
  • لغت
    • ڈکشنری بنانا
    • لغت میں عناصر شامل کرنا
    • لغت سے عناصر کو ہٹانا
    • ازگر لغت کے طریقے
  • تاریخ اور وقت
    • ٹائم ٹیپل
    • ٹائم ماڈیول
    • کیلنڈر ماڈیول
  • افعال
    • فنکشن کی وضاحت کیسے کریں۔
    • ایک فنکشن کال کرنا
    • حوالہ سے گزریں۔
    • قدر سے گزرنا
    • فنکشن دلائل
    • متغیر طوالت کے دلائل
    • مطلوبہ دلائل
    • پہلے سے طے شدہ دلائل
    • مطلوبہ الفاظ کے دلائل
    • گمنام افعال
  • ماڈیولز
    • درآمدی بیان
    • درآمدی بیان سے
    • درآمد سے * بیان
    • ماڈیولز کا پتہ لگانا
    • مقامی () اور عالمی () افعال
    • نام کی جگہیں اور اسکوپنگ
    • dir( ) فنکشن
    • دوبارہ لوڈ () فنکشن
  • فائلیں I/O
    • ایک فائل کھول رہا ہے۔
    • فائل آبجیکٹ کی خصوصیات
    • فائل بند کرنا
    • بیان کے ساتھ
    • لکھنے کا طریقہ
    • پڑھنے کا طریقہ
    • نام تبدیل کریں () طریقہ
    • ہٹائیں() طریقہ
    • فائل کی پوزیشن
  • مستثنیات
    • ایک استثناء کیا ہے؟
    • ایک استثناء کو سنبھالنا
    • استثنیٰ اٹھانا
    • معیاری مستثنیات کی فہرست
    • صارف کی وضاحت شدہ استثناء
    • ازگر میں دعوے
  • کلاسز اور آبجیکٹ
    • کلاسز بنانا
    • کلاس آبجیکٹ
    • صفات تک رسائی حاصل کرنا
    • ان بلٹ کلاس اوصاف
    • کوڑا کرکٹ اکٹھا کرنا
    • کلاس وراثت
    • اوور رائیڈنگ طریقے
    • باقاعدہ اظہار
    • میچ فنکشن
    • سرچ فنکشن
    • ریگولر ایکسپریشن موڈیفائر
    • باقاعدہ اظہار کے پیٹرن
    • کریکٹر کلاسز
    • تکرار کے معاملات
    • اینکرز
  • سی جی آئی پروگرامنگ
  • MySQL ڈیٹا بیس تک رسائی
  • نیٹ ورکس
    • ساکٹ کیا ہیں؟
    • ساکٹ ماڈیول
    • ازگر انٹرنیٹ ماڈیولز
  • ای میل بھیج رہا ہے۔
    • ازگر کا استعمال کرتے ہوئے HTML ای میل بھیجنا
    • منسلکات کو بطور ای میل بھیجنا
  • ملٹی تھریڈ پروگرامنگ
    • ایک نیا تھریڈ شروع کر رہا ہوں۔
    • تھریڈنگ ماڈیول
    • دھاگوں کو ہم آہنگ کرنا
    • ملٹی تھریڈڈ ترجیحی قطار
  • XML پروسیسنگ
    • XML کیا ہے؟
    • XML پارسر آرکیٹیکچرز اور APIs
    • SAX APIs کے ساتھ XML کو پارس کرنا
      • میک_پارسر کا طریقہ
      • تجزیہ کا طریقہ
      • parseString طریقہ
  • GUI پروگرامنگ
    • ٹکنٹر ویجٹ
  • جیومیٹری مینجمنٹ
  • تجویز کردہ مضامین

سی جی آئی پروگرامنگ

CGI یا کامن گیٹ وے انٹرفیس معیارات کا ایک مجموعہ ہے جو اس بات کی وضاحت کرتا ہے کہ کسٹم اسکرپٹ اور ویب سرور کے درمیان معلومات کا تبادلہ کیسے ہوتا ہے۔ NCSA فی الحال CGI چشمی کو برقرار رکھتا ہے۔

ویب براؤزنگ

اگر آپ CGI کے تصور کو سمجھنا چاہتے ہیں، تو یہاں ایک مثال ہے۔ کسی خاص URL یا ویب صفحہ کو براؤز کرنے کے لیے ایک ہائپر لنک پر کلک کریں۔

  • براؤزر ویب سرور سے رابطہ کرتا ہے، اور یہ URL کا مطالبہ کرتا ہے۔
  • ویب سرور یو آر ایل کو پارس کرتا ہے، اور یہ فائل کا نام تلاش کرتا ہے۔ اگر اسے فائل مل جاتی ہے تو یہ اسے براؤزر کو واپس بھیج دیتا ہے، بصورت دیگر، یہ ایک غلطی کا پیغام بھیجتا ہے جو اس بات کی نشاندہی کرتا ہے کہ آپ نے غلط فائل کی درخواست کی ہے۔
  • ویب براؤزر ویب سرور سے جواب لیتا ہے اور یا تو موصول شدہ فائل یا غلطی کا پیغام دکھاتا ہے۔

اگرچہ HTTP سرور کو سیٹ کرنا ممکن ہے تاکہ جب بھی کسی مخصوص ڈائریکٹری میں فائل کی درخواست کی جائے تو وہ فائل واپس نہ بھیجی جائے؛ اس کے بجائے اسے ایک پروگرام کے طور پر عمل میں لایا جاتا ہے، اور جو بھی پروگرام آؤٹ پٹ آپ کے براؤزر کو ڈسپلے کرنے کے لیے واپس بھیج دیا جاتا ہے۔

اس فنکشن کو کامن گیٹ وے انٹرفیس یا سی جی آئی کے نام سے جانا جاتا ہے، اور پلانز کو سی جی آئی اسکرپٹس کے نام سے جانا جاتا ہے۔ CGI پروگرام ایک Python Script، PERL Script، Shell Script، C یا C++ پروگرام وغیرہ ہو سکتے ہیں۔

ازگر

HTTP ہیڈر

لکیر مواد کی قسم: متن/html HTTP ہیڈر کا حصہ ہے جو مواد کو سمجھنے کے لیے براؤزر کو بھیجا جاتا ہے۔ تمام HTTP ہیڈر درج ذیل شکل میں ہوں گے۔

ہاں نہیں ہیڈر تفصیل
ایکمقام: URLوہ URL جو درخواست کردہ URL کے بجائے واپس کیا گیا ہے۔ آپ کسی بھی فائل کی درخواست کو ری ڈائریکٹ کرنے کے لیے فیلڈ کا استعمال کر سکتے ہیں۔
دومواد کی قسم:یہ ایک MIME سٹرنگ ہے جو واپس کی گئی فائل کے فارمیٹ کی وضاحت کرتی ہے۔ مثال کے طور پر Content-type:text/html ہے۔
3آخری ترمیم: تاریخوسائل میں ترمیم کی تاریخ۔
4میعاد ختم: تاریخمعلومات تاریخ پر غلط ہو جاتی ہے۔ ایک براؤزر یہ فیصلہ کرنے کے لیے استعمال کرتا ہے کہ کسی صفحہ کو کب ریفریش کرنے کی ضرورت ہے۔
5سیٹ کوکی: سٹرنگسے گزری کوکی کو سیٹ کریں۔ تار
6مواد کی لمبائی: اینڈیٹا کی لمبائی واپس کی جا رہی ہے۔ براؤزر کسی فائل کے لیے ڈاؤن لوڈ کے متوقع وقت کی اطلاع دینے کے لیے قدر کا استعمال کرتا ہے۔

CGI ماحولیاتی متغیرات

CGI پروگراموں کو ماحول کے چند متغیرات تک رسائی حاصل ہے۔ یہ متغیرات کسی بھی CGI پروگرام کو لکھتے وقت ایک اہم کردار ادا کرتے ہیں۔

ہاں نہیں متغیر نام تفصیل
ایک CONTENT_LENGTH استفسار کی معلومات کی لمبائی۔ یہ صرف POST کی درخواستوں کے لیے دستیاب ہے۔
دو مواد کی قسم مواد کی ڈیٹا کی قسم۔ یہ اس وقت استعمال ہوتا ہے جب کلائنٹ سرور کو مواد بھیج رہا ہو۔ مثال کے طور پر، فائل اپ لوڈ.
3 QUERY_STRING یو آر ایل انکوڈ شدہ معلومات GET طریقہ کی درخواست کے ساتھ بھیجی جاتی ہے۔
4 PATH_INFO یہ سی جی آئی اسکرپٹ کا راستہ ہے۔
5 HTTP_COOKIE یہ سیٹ کوکیز کو ویلیو پیئر اور کلید کی شکل میں واپس کرتا ہے۔
6 REMOTE_HOST درخواست کرنے والے میزبان کا مکمل طور پر اہل نام۔ اگر معلومات دستیاب نہیں ہے، تو IR ایڈریس حاصل کرنے کے لیے REMOTE_ADDR کا استعمال کیا جا سکتا ہے۔ فائل کے لیے تخمینی ڈاؤن لوڈ وقت کی اطلاع دینے کی قدر۔
7 SCRIPT_FILENAME CGI اسکرپٹ کا مکمل راستہ۔
8 REQUEST_METHOD درخواست کرنے کے لیے طریقہ استعمال کیا جاتا ہے۔ سب سے عام طریقے POST اور GET ہیں۔
9 خدمت گار کا نام سرور کا میزبان نام یا IP پتہ
10 SERVER_SOFTWARE سافٹ ویئر کا ورژن اور نام جہاں سرور چل رہا ہے۔
گیارہ HTTP_USER_AGENT صارف ایجنٹ کی درخواست ہیڈر میں صارف ایجنٹ کے بارے میں معلومات ہوتی ہے جو درخواست کی ابتدا کرتی ہے۔ یہ ویب براؤزر کا نام ہے۔
12 REMOTE_ADDR ریموٹ میزبان کا IP ایڈریس درخواست کرتا ہے۔ یہ لاگنگ یا تصدیق کے لیے مفید ہے۔
13 SCRIPT_NAME CGI اسکرپٹ کا نام۔

GET طریقہ

GET طریقہ براؤزر سے ویب سرور تک معلومات منتقل کرنے کا ایک طے شدہ طریقہ ہے، اور یہ ایک تار تیار کرتا ہے جو آپ کے براؤزر کے مقام پر ظاہر ہوتا ہے: باکس۔ اگر آپ کے پاس پاس ورڈ یا دیگر حساس معلومات ہیں تو آپ کو کبھی بھی GET طریقہ استعمال نہیں کرنا چاہیے۔ GET طریقہ میں سائز کی حد ہے: درخواست کے اسٹرنگ میں صرف 1024 حروف بھیجے جا سکتے ہیں۔ GET طریقہ QUERY_STRING ہیڈر کا استعمال کرتے ہوئے معلومات بھیجتا ہے اور QUERY_STRING ماحولیاتی متغیر کے ذریعے آپ کے CGI پروگرام میں قابل رسائی ہوگا۔

SYNTAX

|_+_| img 617dd274c490b

آؤٹ پٹ

img 617dd27560edf

POST طریقہ

POST ایک درخواست کا طریقہ ہے جو ورلڈ وائڈ ویب کے ذریعہ استعمال ہونے والے HTTP کے ذریعہ تعاون یافتہ ہے۔ POST طریقہ درخواست کرتا ہے کہ ویب سرور اس ڈیٹا کو قبول کرے جو درخواست کے پیغام کے باڈی میں بند ہے۔ یہ فائل اپ لوڈ کرتے وقت یا مکمل ویب فارم جمع کرواتے وقت استعمال ہوتا ہے۔

SYNTAX

|_+_| img 617dd275b62df

CGI میں کوکیز کا استعمال

HTTP پروٹوکول اسٹیٹ لیس ہے۔ تجارتی ویب سائٹ کے لیے، آپ کو مختلف صفحات کے درمیان سیشن کی معلومات کو برقرار رکھنے کی ضرورت ہے۔

کچھ حالات میں، کوکیز کا استعمال ترجیحات، کمیشنوں، خریداریوں اور دیگر معلومات کو ٹریک کرنے اور یاد رکھنے کا سب سے موثر طریقہ ہے تاکہ وزیٹر کے بہتر تجربے یا سائٹ کے اعدادوشمار حاصل کیے جاسکیں۔

یہ کیسے کام کرتا ہے؟

سرور کچھ ڈیٹا کوکی کی شکل میں براؤزر کو بھیجتا ہے۔ براؤزر کوکی کو قبول کر سکتا ہے۔ اگر اسے قبول کیا جاتا ہے، تو یہ ہارڈ ڈرائیو پر سیدھے ٹیکسٹ ریکارڈ کے طور پر محفوظ ہوجاتا ہے۔ اب، جب کوئی وزیٹر دوسرے صفحہ پر آتا ہے، تو کوکی بازیافت کے لیے دستیاب ہوتی ہے۔ ایک بار اسے بازیافت کرنے کے بعد، آپ کا سرور یاد رکھتا ہے کہ کیا ذخیرہ کیا گیا تھا۔

MySQL ڈیٹا بیس تک رسائی

MySQLdb Python سے MySQL ڈیٹا بیس سرور سے منسلک کرنے کا ایک انٹرفیس ہے۔ یہ لاگو کرتا ہے۔ ازگر ڈیٹا بیس API v2.0 اور MySQL C API کے اوپر بنایا گیا ہے۔

ڈیٹا بیس ٹیبل بنانا

ایک بار ڈیٹا بیس کنکشن بن جانے کے بعد، آپ تخلیق کردہ کرسر کے ایگزیکیوٹ طریقہ کو استعمال کرکے ڈیٹا بیس ٹیبلز میں ٹیبل یا ریکارڈ بنانے کے لیے تیار ہیں۔

img 617dd27621265

INSERT آپریشن

جب آپ اپنے ریکارڈز کو ڈیٹا بیس ٹیبل میں بنانا چاہتے ہیں تو داخل آپریشن کی ضرورت ہوتی ہے۔

img 617dd2767f199

آپریشن پڑھیں

READ کسی بھی ڈیٹا بیس میں آپریشن کا مطلب ڈیٹا بیس سے کچھ معلومات حاصل کرنا ہے۔

ایک بار ڈیٹا بیس کنکشن بن جانے کے بعد، آپ اس ڈیٹا بیس میں ایک سوال کرنے کے لیے تیار ہیں۔ آپ استعمال کر سکتے ہیں۔ fetchone() ایک ہی ریکارڈ یا حاصل کرنے کا طریقہ fetchall() ڈیٹا بیس ٹیبل سے متعدد اقدار کو حاصل کرنے کا طریقہ۔

    fetchall()- یہ قطار کو نتیجہ کے سیٹ میں لاتا ہے۔ اگر رزلٹ سیٹ سے کچھ قطاریں پہلے ہی نکالی جاچکی ہیں، تو یہ رزلٹ سیٹ سے قطاروں کو بازیافت کرتا ہے۔fetchone()- یہ استفسار کے نتیجے کے سیٹ کی اگلی قطار لاتا ہے۔ نتیجہ سیٹ ایک ایسی چیز ہے جو اس وقت واپس آتی ہے جب کسی ٹیبل کو استفسار کرنے کے لیے کرسر کا استعمال کیا جاتا ہے۔قطار کی گنتی− یہ صرف پڑھنے کے لیے خصوصیت ہے اور ایک execute() طریقہ سے متاثر ہونے والی قطاروں کی تعداد لوٹاتا ہے۔

اپ ڈیٹ آپریشن

کسی بھی ڈیٹا بیس میں اپ ڈیٹ آپریشن کا مطلب ہے ریکارڈز کو اپ ڈیٹ کرنا، جو ڈیٹا بیس میں دستیاب ہیں۔

آپریشن کو حذف کریں۔

DELETE آپریشن آپ کے ڈیٹا بیس سے کچھ ریکارڈز کو حذف کر دیتا ہے۔

لین دین انجام دینا

لین دین وہ طریقہ کار ہے جو ڈیٹا کی مستقل مزاجی کو یقینی بناتا ہے۔

    جوہری- یا تو لین دین مکمل ہو جائے یا کچھ نہیں ہوتا۔مستقل مزاجی- لین دین ایک مستقل حالت میں شروع ہونا چاہیے اور نظام کو ایک مستقل حالت میں چھوڑ دینا چاہیے۔علیحدگی- لین دین کے نتائج موجودہ لین دین سے باہر نظر نہیں آتے۔پائیداری- ایک بار جب لین دین کا ارتکاب ہو جاتا ہے، نظام کی ناکامی کے بعد بھی اثرات مستقل رہتے ہیں۔

کامٹ آپریشن

کمٹ ایک ایسا آپریشن ہے جو تبدیلیوں کو حتمی شکل دینے کے لیے ڈیٹا بیس کو گرین سگنل دیتا ہے، اور اس آپریشن کے بعد، کوئی تبدیلی واپس نہیں لائی جا سکتی۔

مثال کے طور پر db.commit()

رول بیک آپریشن

اگر آپ ایک یا زیادہ تبدیلیاں نہیں چاہتے ہیں اور آپ ان تبدیلیوں کو مکمل طور پر واپس کرنا چاہتے ہیں، تو آپ کو رول بیک کا استعمال کرنا چاہیے۔ () طریقہ

مثال کے طور پر db.rollback()

ڈیٹا بیس کو منقطع کرنا

ڈیٹا بیس کنکشن کو منقطع کرنے کے لیے، آپ کو کلوز() طریقہ استعمال کرنا چاہیے۔

اگر ڈیٹا بیس سے کوئی کنکشن بند ہو جاتا ہے تو کوئی بھی بقایا لین دین DB کے ذریعے واپس کر دیا جاتا ہے۔ تاہم، DB کے نچلے درجے کے نفاذ کی تفصیلات میں سے کسی پر منحصر ہے کہ یہ ایپلیکیشن واضح طور پر کمٹ یا رول بیک کال کرنے کے لیے بہتر ہوگی۔

غلطیوں کو ہینڈل کرنا

غلطیوں کی بہت سی وجوہات ہیں۔ کنکشن کی ناکامی، ایس کیو ایل اسٹیٹمنٹ میں نحو کی خرابی، چند مثالیں ہیں۔

DB API ہر ڈیٹا بیس ماڈیول میں موجود غلطیوں کی تعداد کی وضاحت کرتا ہے۔ مندرجہ ذیل جدول مستثنیات کی فہرست دیتا ہے۔

ہاں نہیں مستثنیات تفصیل
ایک خرابییہ غلطیوں کی بنیادی کلاس ہے۔ اسے ذیلی طبقے کی خرابی ہونی چاہئے۔
دو انٹرفیس کی خرابی۔یہ ڈیٹا بیس ماڈیول میں غلطیوں کے لیے استعمال ہوتا ہے، نہ کہ خود ڈیٹا بیس۔ اسے ذیلی کلاس ایرر ہونا چاہیے۔
3 وارننگیہ غیر مہلک مسائل کے لئے استعمال کیا جاتا ہے. اسے سٹینڈرڈ ایرر کو ذیلی کلاس کرنا چاہئے۔
4 ڈیٹا کی خرابی۔یہ DatabaseError کا ذیلی طبقہ ہے جو ڈیٹا میں ہونے والی غلطیوں کا حوالہ دیتا ہے۔
5 ڈیٹا بیس کی خرابی۔یہ ڈیٹا بیس میں خرابی کے لیے استعمال ہوتا ہے۔ اس میں ذیلی طبقے کی غلطی ہونی چاہیے۔
6 آپریشنل ایررDatabaseError کے ذیلی طبقے سے مراد ایسی خرابیاں ہیں جیسے ڈیٹا بیس سے کنکشن کا کھو جانا۔ غلطیاں Python اسکرپٹ کے کنٹرول سے باہر ہیں۔
7 داخلی خامیDatabaseError کے ذیلی طبقے سے مراد ڈیٹا بیس ماڈیول کی اندرونی خرابیاں ہیں، جیسے کرسر اب فعال نہیں ہے۔
8 ناٹ سپورٹڈ ایررDatabaseError کے ذیلی طبقے سے مراد غیر تعاون یافتہ فعالیت کو کال کرنے کی کوشش کرنا ہے۔
9 سالمیت کی خرابی۔ڈیٹا بیس ایرر کا ذیلی طبقہ ان حالات کے لیے جو متعلقہ سالمیت کو نقصان پہنچاتے ہیں، جیسے انفرادیت کی رکاوٹیں یا غیر ملکی کیز۔
10 پروگرامنگ کی خرابی۔DatabaseError کے ذیلی طبقے سے مراد خراب ٹیبل کا نام جیسی خرابیاں ہیں۔