সুচিপত্র
- পরিবেশ সেটআপ
- স্থানীয় পরিবেশ সেটআপ
- কিভাবে পাইথন পেতে হয়
- কিভাবে পাইথন ইন্সটল করবেন
- উইন্ডোজ ইনস্টলেশন
- ইউনিক্স/লিনাক্স ইনস্টলেশন
- MAC ইনস্টলেশন
- পাইথনের জন্য পাথ সেট আপ করা হচ্ছে
- ইউনিক্স/লিনাক্সের জন্য পথ সেট করা হচ্ছে
- উইন্ডোজের জন্য পথ সেট করা
- পাইথন এনভায়রনমেন্ট ভেরিয়েবল
- পাইথন চলছে
- মৌলিক সিনট্যাক্স
- পাইথন শনাক্তকারী
- পাইথন স্টেটমেন্ট
- পাইথনে ইন্ডেন্ট
- পাইথনে মন্তব্য
- ইনপুট হচ্ছে
- আউটপুট প্রদর্শন করুন
- পরিবর্তনশীল প্রকার
- ভেরিয়েবলে মান বরাদ্দ করা
- পাইথন ডেটা প্রকার
- স্ট্রিংস
- টিপলস
- তালিকা
- সংখ্যা
- বেসিক অপারেটর
- নিয়োগ অপারেটর
- বিটওয়াইজ অপারেটর
- লজিক্যাল অপারেটর
- পাটিগণিত অপারেটর
- তুলনা অপারেটর
- পরিচয় অপারেটর
- সদস্যপদ অপারেটর
- সিদ্ধান্ত গ্রহণ
- যদি বিবৃতি
- অন্যথায় যদি
- নেস্টেড যদি
- ইফ-এলিফ-অন্য-মই
- সংক্ষেপে যদি বিবৃতি
- সংক্ষেপে যদি-অন্যথা বিবৃতি
- লুপস
- যখন লুপ
- লুপের জন্য
- নেস্টেড লুপ
- লুপ কন্ট্রোল স্টেটমেন্ট
- বিবৃতি চালিয়ে যান
- ব্রেক স্টেটমেন্ট
- বিবৃতি পাস
- সংখ্যা
- সংখ্যার ধরন রূপান্তর
- র্যান্ডম সংখ্যা ফাংশন
- ত্রিকোণমিতিক ফাংশন
- গাণিতিক ফাংশন
- স্ট্রিংস
- একটি স্ট্রিং তৈরি করা হচ্ছে
- স্ট্রিং স্পেশাল অপারেটর
- স্ট্রিং ফরম্যাটিং অপারেটর
- পালাবার অক্ষর
- স্ট্রিং পদ্ধতিতে নির্মিত
- টিপলস
- Tuples মধ্যে মান অ্যাক্সেস
- টিপল আপডেট করা হচ্ছে
- বেসিক Tuple অপারেটর
- Tuple ফাংশন মধ্যে নির্মিত
- ইনডেক্সিং এবং স্লাইসিং
- একটি tuple মুছে ফেলা হচ্ছে
- তালিকা
- তালিকায় মান অ্যাক্সেস করা
- তালিকা আপডেট করা হচ্ছে
- মৌলিক তালিকা অপারেটর
- বিল্ট ইন লিস্ট ফাংশন এবং মেথড
- ইনডেক্সিং এবং স্লাইসিং
- তালিকা উপাদান মুছুন
- অভিধান
- একটি অভিধান তৈরি করা হচ্ছে
- একটি অভিধানে উপাদান যোগ করা হচ্ছে
- অভিধান থেকে উপাদান অপসারণ
- পাইথন অভিধান পদ্ধতি
- তারিখ এবং সময়
- সময় Tuple
- সময় মডিউল
- ক্যালেন্ডার মডিউল
- ফাংশন
- একটি ফাংশন সংজ্ঞায়িত কিভাবে
- একটি ফাংশন কলিং
- রেফারেন্স দ্বারা পাস
- মান দ্বারা পাস
- ফাংশন আর্গুমেন্ট
- পরিবর্তনশীল-দৈর্ঘ্যের আর্গুমেন্ট
- প্রয়োজনীয় যুক্তি
- ডিফল্ট আর্গুমেন্ট
- মূলশব্দ আর্গুমেন্ট
- বেনামী ফাংশন
- মডিউল
- আমদানি বিবৃতি
- আমদানি বিবৃতি থেকে
- আমদানি থেকে * বিবৃতি
- মডিউল সনাক্তকরণ
- স্থানীয়() এবং গ্লোবাল() ফাংশন
- নামস্থান এবং স্কোপিং
- dir( ) ফাংশন
- রিলোড() ফাংশন
- ফাইল I/O
- একটি ফাইল খোলা হচ্ছে
- ফাইল অবজেক্টের বৈশিষ্ট্য
- একটি ফাইল বন্ধ করা হচ্ছে
- বিবৃতি সহ
- লেখার পদ্ধতি
- পড়ার পদ্ধতি
- rename() পদ্ধতি
- অপসারণ() পদ্ধতি
- ফাইল অবস্থান
- ব্যতিক্রম
- একটি ব্যতিক্রম কি?
- একটি ব্যতিক্রম হ্যান্ডলিং
- একটি ব্যতিক্রম উত্থাপন
- আদর্শ ব্যতিক্রমের তালিকা
- ব্যবহারকারী সংজ্ঞায়িত ব্যতিক্রম
- পাইথনে দাবী
- ক্লাস এবং অবজেক্ট
- ক্লাস তৈরি করা হচ্ছে
- ক্লাস অবজেক্ট
- অ্যাট্রিবিউট অ্যাক্সেস করা
- অন্তর্নির্মিত বর্গ বৈশিষ্ট্য
- আবর্জনা সংগ্রহ
- শ্রেণী উত্তরাধিকার
- ওভাররাইডিং পদ্ধতি
- নিয়মিত অভিব্যক্তি
- ম্যাচ ফাংশন
- অনুসন্ধান ফাংশন
- রেগুলার এক্সপ্রেশন মডিফায়ার
- রেগুলার এক্সপ্রেশন প্যাটার্ন
- ক্যারেক্টার ক্লাস
- পুনরাবৃত্তি মামলা
- নোঙ্গর
- সিজিআই প্রোগ্রামিং
- মাইএসকিউএল ডাটাবেস অ্যাক্সেস
- নেটওয়ার্ক
- সকেট কি?
- সকেট মডিউল
- পাইথন ইন্টারনেট মডিউল
- ইমেইল পাঠানো হচ্ছে
- পাইথন ব্যবহার করে একটি HTML ইমেল পাঠানো
- একটি ই-মেইল হিসাবে সংযুক্তি পাঠানো
- মাল্টিথ্রেড প্রোগ্রামিং
- একটি নতুন থ্রেড শুরু হচ্ছে
- থ্রেডিং মডিউল
- থ্রেড সিঙ্ক্রোনাইজ করা
- মাল্টিথ্রেডেড অগ্রাধিকার সারি
- XML প্রসেসিং
- XML কি?
- XML পার্সার আর্কিটেকচার এবং API
- SAX API-এর সাথে XML পার্স করা হচ্ছে
- মেক_পার্সার পদ্ধতি
- পার্স পদ্ধতি
- পার্সস্ট্রিং পদ্ধতি
- GUI প্রোগ্রামিং
- Tkinter উইজেট
- জ্যামিতি ব্যবস্থাপনা
- প্রস্তাবিত প্রবন্ধ
সিজিআই প্রোগ্রামিং
CGI বা কমন গেটওয়ে ইন্টারফেস হল মানগুলির একটি সেট যা একটি কাস্টম স্ক্রিপ্ট এবং একটি ওয়েব সার্ভারের মধ্যে কীভাবে তথ্য আদান-প্রদান করা হয় তা নির্ধারণ করে। NCSA বর্তমানে CGI স্পেস বজায় রাখে।
ওয়েব ব্রাউজিং
আপনি যদি CGI এর ধারণাটি বুঝতে চান, তাহলে এখানে একটি উদাহরণ দেওয়া হল। একটি নির্দিষ্ট URL বা ওয়েবপৃষ্ঠা ব্রাউজ করতে একটি হাইপারলিঙ্কে ক্লিক করুন৷
- ব্রাউজারটি ওয়েব সার্ভারের সাথে যোগাযোগ করে এবং এটি URL দাবি করে।
- ওয়েব সার্ভার ইউআরএল পার্স করে, এবং এটি ফাইলের নাম খোঁজে। যদি এটি ফাইলটি খুঁজে পায় তবে এটি ব্রাউজারে ফেরত পাঠায়, অন্যথায়, এটি একটি ত্রুটি বার্তা পাঠায় যা নির্দেশ করে যে আপনি একটি ভুল ফাইলের অনুরোধ করেছেন৷
- ওয়েব ব্রাউজার একটি ওয়েব সার্ভার থেকে প্রতিক্রিয়া নেয় এবং প্রাপ্ত ফাইল বা ত্রুটি বার্তা প্রদর্শন করে।
যদিও এটি HTTP সার্ভার সেট করা সম্ভব যাতে যখনই একটি নির্দিষ্ট ডিরেক্টরির একটি ফাইলের অনুরোধ করা হয় তখনই সেই ফাইলটি ফেরত পাঠানো না হয়; পরিবর্তে এটি একটি প্রোগ্রাম হিসাবে কার্যকর করা হয়, এবং যাই হোক না কেন সেই প্রোগ্রাম আউটপুট আপনার ব্রাউজার প্রদর্শনের জন্য ফেরত পাঠানো হয়।
এই ফাংশনটি কমন গেটওয়ে ইন্টারফেস বা CGI নামে পরিচিত এবং পরিকল্পনাগুলি CGI স্ক্রিপ্ট হিসাবে পরিচিত। CGI প্রোগ্রামগুলি পাইথন স্ক্রিপ্ট, PERL স্ক্রিপ্ট, শেল স্ক্রিপ্ট, C বা C++ প্রোগ্রাম ইত্যাদি হতে পারে।

HTTP হেডার
লাইন বিষয়বস্তুর প্রকার:পাঠ্য/html এটি HTTP হেডারের অংশ যা বিষয়বস্তু বোঝার জন্য একটি ব্রাউজারে পাঠানো হয়। সমস্ত HTTP হেডার নিম্নলিখিত ফর্মে থাকবে
হ্যাঁ না | হেডার | বর্ণনা |
এক | অবস্থান: URL | অনুরোধ করা URL এর পরিবর্তে যে URLটি ফেরত দেওয়া হয়। আপনি যেকোন ফাইলে একটি অনুরোধ পুনঃনির্দেশ করতে ক্ষেত্রটি ব্যবহার করতে পারেন। |
দুই | বিষয়বস্তুর প্রকার: | এটি একটি MIME স্ট্রিং যা রিটার্ন করা ফাইলের বিন্যাস নির্ধারণ করে। উদাহরণ স্বরূপ হল Content-type:text/html |
3 | সর্বশেষ সংশোধিত: তারিখ | সম্পদের পরিবর্তনের তারিখ। |
4 | মেয়াদ শেষ হবে: তারিখ | তথ্যটি তারিখে অবৈধ হয়ে যায়। একটি পৃষ্ঠা কখন রিফ্রেশ করতে হবে তা নির্ধারণ করতে একটি ব্রাউজার এটি ব্যবহার করে। |
5 | সেট-কুকি: স্ট্রিং | মাধ্যমে পাস কুকি সেট স্ট্রিং |
6 | বিষয়বস্তুর দৈর্ঘ্য: N | ডেটার দৈর্ঘ্য ফেরত দেওয়া হচ্ছে। ব্রাউজার একটি ফাইলের জন্য আনুমানিক ডাউনলোড সময় রিপোর্ট করতে মান ব্যবহার করে। |
CGI এনভায়রনমেন্ট ভেরিয়েবল
CGI প্রোগ্রামগুলির কয়েকটি পরিবেশের ভেরিয়েবলের অ্যাক্সেস রয়েছে। যেকোনো CGI প্রোগ্রাম লেখার সময় এই ভেরিয়েবলগুলি একটি অপরিহার্য ভূমিকা পালন করে।
হ্যাঁ না | পরিবর্তনশীল নাম | বর্ণনা |
এক | CONTENT_LENGTH | ক্যোয়ারী তথ্যের দৈর্ঘ্য। এটি শুধুমাত্র POST অনুরোধের জন্য উপলব্ধ। |
দুই | বিষয়বস্তুর প্রকার | বিষয়বস্তুর ডেটা প্রকার। এটি ব্যবহার করা হয় যখন ক্লায়েন্ট সার্ভারে সামগ্রী পাঠাচ্ছে। উদাহরণস্বরূপ, ফাইল আপলোড। |
3 | QUERY_STRING | URL-এনকোড করা তথ্য একটি GET পদ্ধতি অনুরোধের সাথে পাঠানো হয়। |
4 | PATH_INFO | এটি সিজিআই স্ক্রিপ্টের পথ। |
5 | HTTP_COOKIE | এটি একটি মান জোড়া এবং কী আকারে সেট কুকিজ ফেরত দেয়। |
6 | দূরবর্তী হোস্ট | অনুরোধ করা হোস্টের একটি সম্পূর্ণ যোগ্য নাম। তথ্য উপলব্ধ না হলে, IR ঠিকানা পেতে REMOTE_ADDR ব্যবহার করা যেতে পারে। একটি ফাইলের জন্য আনুমানিক ডাউনলোড সময় রিপোর্ট করার মান। |
7 | SCRIPT_FILENAME | CGI স্ক্রিপ্টের সম্পূর্ণ পথ। |
8 | REQUEST_METHOD | পদ্ধতিটি অনুরোধ করতে ব্যবহৃত হয়। সবচেয়ে সাধারণ পদ্ধতি হল POST এবং GET। |
9 | সার্ভার নাম | সার্ভারের হোস্টনাম বা আইপি ঠিকানা |
10 | SERVER_SOFTWARE | সফ্টওয়্যারের সংস্করণ এবং নাম যেখানে সার্ভার চলছে। |
এগারো | HTTP_USER_AGENT | ইউজার-এজেন্ট রিকোয়েস্ট-হেডারে ব্যবহারকারী এজেন্ট সম্পর্কে তথ্য থাকে যা অনুরোধের উদ্ভব করে। এটি ওয়েব ব্রাউজারের নাম। |
12 | REMOTE_ADDR | রিমোট হোস্টের আইপি অ্যাড্রেস অনুরোধ করে। এটি লগিং বা প্রমাণীকরণের জন্য দরকারী। |
13 | SCRIPT_NAME | CGI স্ক্রিপ্টের নাম। |
GET পদ্ধতি
GET পদ্ধতি হল ব্রাউজার থেকে ওয়েব সার্ভারে তথ্য পাঠানোর একটি ডিফল্ট পদ্ধতি এবং এটি একটি স্ট্রিং তৈরি করে যা আপনার ব্রাউজারের অবস্থানে প্রদর্শিত হয়: বক্স। আপনার কাছে পাসওয়ার্ড বা অন্যান্য সংবেদনশীল তথ্য থাকলে আপনি কখনই GET পদ্ধতি ব্যবহার করবেন না। GET পদ্ধতির একটি আকারের সীমাবদ্ধতা রয়েছে: শুধুমাত্র 1024 টি অক্ষর একটি অনুরোধ স্ট্রিং এ পাঠানো যেতে পারে। GET পদ্ধতিটি QUERY_STRING হেডার ব্যবহার করে তথ্য পাঠায় এবং QUERY_STRING এনভায়রনমেন্ট ভেরিয়েবলের মাধ্যমে আপনার CGI প্রোগ্রামে অ্যাক্সেসযোগ্য হবে।
বাক্য গঠন
|_+_|
আউটপুট

পোস্ট পদ্ধতি
POST হল একটি অনুরোধ পদ্ধতি যা ওয়ার্ল্ড ওয়াইড ওয়েব দ্বারা ব্যবহৃত HTTP দ্বারা সমর্থিত। POST পদ্ধতি অনুরোধ করে যে ওয়েব সার্ভার অনুরোধ বার্তার মূল অংশে আবদ্ধ ডেটা গ্রহণ করে। এটি একটি ফাইল আপলোড করার সময় বা একটি সম্পূর্ণ ওয়েব ফর্ম জমা দেওয়ার সময় ব্যবহৃত হয়।
বাক্য গঠন
|_+_|
CGI এ কুকিজ ব্যবহার করা
HTTP প্রোটোকল রাষ্ট্রহীন। একটি বাণিজ্যিক ওয়েবসাইটের জন্য, আপনাকে বিভিন্ন পৃষ্ঠার মধ্যে সেশনের তথ্য বজায় রাখতে হবে।
কিছু পরিস্থিতিতে, কুকিজ ব্যবহার করা হল সবচেয়ে কার্যকরী পদ্ধতি যা ট্র্যাক করা এবং পছন্দগুলি, কমিশন, কেনাকাটা, এবং আরও ভাল ভিজিটর অভিজ্ঞতা বা সাইটের পরিসংখ্যানের জন্য অন্যান্য তথ্য মনে রাখা।
এটা কিভাবে কাজ করে?
সার্ভার একটি কুকি আকারে ব্রাউজারে কিছু ডেটা পাঠায়। ব্রাউজার কুকি গ্রহণ করতে পারে। যদি এটি গ্রহণ করা হয়, তবে এটি হার্ড ড্রাইভে একটি সোজা পাঠ্য রেকর্ড হিসাবে সংরক্ষণ করা হয়। এখন, যখন একজন দর্শক অন্য পৃষ্ঠায় আসে, কুকি পুনরুদ্ধারের জন্য উপলব্ধ। একবার এটি পুনরুদ্ধার করা হলে, আপনার সার্ভার মনে রাখে কি সংরক্ষিত ছিল।
মাইএসকিউএল ডাটাবেস অ্যাক্সেস
MySQLdb হল পাইথন থেকে MySQL ডাটাবেস সার্ভারের সাথে সংযোগ করার জন্য একটি ইন্টারফেস। এটি বাস্তবায়ন করে পাইথন ডেটাবেস API v2.0 এবং MySQL C API-এর উপরে নির্মিত।
ডাটাবেস টেবিল তৈরি করা হচ্ছে
একবার একটি ডাটাবেস সংযোগ তৈরি হয়ে গেলে, আপনি তৈরি করা কার্সারের কার্যকর পদ্ধতি ব্যবহার করে ডাটাবেস টেবিলে টেবিল বা রেকর্ড তৈরি করতে প্রস্তুত।

ইনসার্ট অপারেশন
আপনি যখন একটি ডাটাবেস টেবিলে আপনার রেকর্ড তৈরি করতে চান তখন সন্নিবেশ অপারেশন প্রয়োজন।

অপারেশন পড়ুন
যেকোনো ডাটাবেসে READ অপারেশন মানে ডাটাবেস থেকে কিছু তথ্য আনা।
একবার ডাটাবেস সংযোগ তৈরি হয়ে গেলে, আপনি এই ডাটাবেসে একটি ক্যোয়ারী করতে সেট করেছেন। আপনি ব্যবহার করতে পারেন আনুন() একটি একক রেকর্ড বা আনার পদ্ধতি fetchall() ডাটাবেস টেবিল থেকে একাধিক মান আনার পদ্ধতি।
অপারেশন আপডেট করুন
যেকোন ডাটাবেসে আপডেট অপারেশন মানে রেকর্ড আপডেট করা, যা ডাটাবেসে পাওয়া যায়।

ডিলিট অপারেশন
DELETE অপারেশন আপনার ডাটাবেস থেকে কিছু রেকর্ড মুছে দেয়।

লেনদেন সম্পাদন
লেনদেন এমন একটি প্রক্রিয়া যা ডেটার সামঞ্জস্য নিশ্চিত করে।
কমিট অপারেশন
প্রতিশ্রুতি হল একটি অপারেশন যা পরিবর্তনগুলি চূড়ান্ত করার জন্য ডাটাবেসকে একটি সবুজ সংকেত দেয় এবং এই অপারেশনের পরে, কোনও পরিবর্তন ফিরিয়ে আনা যায় না।
উদাহরণস্বরূপ db.commit()
রোলব্যাক অপারেশন
আপনি যদি এক বা একাধিক পরিবর্তন না চান এবং আপনি সেই পরিবর্তনগুলি সম্পূর্ণরূপে ফিরিয়ে আনতে চান, তাহলে আপনার রোলব্যাক ব্যবহার করা উচিত () পদ্ধতি
উদাহরণস্বরূপ db.rollback()
ডাটাবেস সংযোগ বিচ্ছিন্ন করা হচ্ছে
ডাটাবেস সংযোগ বিচ্ছিন্ন করতে, আপনার ক্লোজ() পদ্ধতি ব্যবহার করা উচিত।
যদি একটি ডাটাবেসের সাথে একটি সংযোগ বন্ধ করা হয় তবে যেকোনও বকেয়া লেনদেন ডিবি দ্বারা ফিরিয়ে আনা হয়। যাইহোক, ডিবি নিম্ন স্তরের বাস্তবায়নের বিবরণের উপর নির্ভর করে আবেদনটি স্পষ্টভাবে কমিট বা রোলব্যাক কল করার জন্য আরও ভাল হবে।
হ্যান্ডলিং ত্রুটি
ত্রুটির জন্য অনেক কারণ আছে. একটি সংযোগ ব্যর্থতা, একটি কার্যকর করা SQL বিবৃতিতে সিনট্যাক্স ত্রুটি, কয়েকটি উদাহরণ
DB API প্রতিটি ডাটাবেস মডিউলে বিদ্যমান ত্রুটির সংখ্যা নির্ধারণ করে। নিম্নলিখিত সারণী ব্যতিক্রমগুলি তালিকাভুক্ত করে।
হ্যাঁ না | ব্যতিক্রম | বর্ণনা |
এক | ত্রুটি | এটি ত্রুটির জন্য বেস ক্লাস। এটা সাবক্লাস ত্রুটি উচিত. |
দুই | ইন্টারফেস ত্রুটি | এটি ডাটাবেস মডিউলের ত্রুটির জন্য ব্যবহার করা হয়, ডাটাবেসের জন্য নয়৷ এটিকে উপশ্রেণীর ত্রুটি হওয়া উচিত৷ |
3 | সতর্কতা | এটি অ-মারাত্মক সমস্যার জন্য ব্যবহৃত হয়। এটি স্ট্যান্ডার্ড ত্রুটি সাবক্লাস করা উচিত। |
4 | ডেটা ভুল | এটি DatabaseError-এর সাবক্লাস যা ডেটার ত্রুটি বোঝায়। |
5 | ডাটাবেস ত্রুটি | এটি ডাটাবেসের ত্রুটির জন্য ব্যবহৃত হয়। এটা সাবক্লাস ত্রুটি উচিত |
6 | অপারেশনাল ত্রুটি | DatabaseError এর সাবক্লাস ডাটাবেসের সাথে সংযোগ হারানোর মতো ত্রুটিগুলিকে বোঝায়। ত্রুটিগুলি পাইথন স্ক্রিপ্টারের নিয়ন্ত্রণের বাইরে। |
7 | অভ্যন্তরীণ ত্রুটি | DatabaseError-এর সাবক্লাস ডাটাবেস মডিউলের অভ্যন্তরীণ ত্রুটিগুলিকে বোঝায়, যেমন একটি কার্সার আর সক্রিয় থাকে না। |
8 | সমর্থিত নয় ত্রুটি৷ | DatabaseError-এর সাবক্লাস অসমর্থিত কার্যকারিতা কল করার চেষ্টাকে বোঝায়। |
9 | সততা ত্রুটি | সম্পর্কগত অখণ্ডতাকে ক্ষতিগ্রস্ত করে এমন পরিস্থিতির জন্য DatabaseError-এর সাবক্লাস, যেমন স্বতন্ত্রতা সীমাবদ্ধতা বা বিদেশী কী। |
10 | প্রোগ্রামিং ত্রুটি | DatabaseError-এর সাবক্লাস ভুল টেবিলের নামের মতো ত্রুটিকে বোঝায়। |