জ্যাঙ্গোতে কীভাবে কোনও বার্তা সরবরাহের স্থিতি তৈরি করা যায়

আজ আমরা মেসেজিংয়ের স্থিতির জন্য একটি রিয়েল-টাইম কাঠামো তৈরি করতে জাঙ্গো এবং পুশার ব্যবহার করব।

এই টিউটোরিয়ালটি অনুসরণ করার জন্য জাজানো এবং ভের একটি প্রাথমিক বোঝার প্রয়োজন।

জ্যাঙ্গো সেট আপ করুন

প্রথমে পাইথন জ্যাঙ্গো লাইব্রেরিটি ইনস্টল করতে হবে যদি তা ইতিমধ্যে আমাদের কাছে না থাকে। জাজানো ইনস্টল করতে আমরা নিম্নলিখিতটি করি:

জ্যাঙ্গো ইনস্টল করার পরে, এখন আমাদের প্রকল্পটি তৈরির সময়। একটি টার্মিনাল খুলুন এবং নিম্নলিখিত কমান্ড সহ একটি নতুন প্রকল্প তৈরি করুন:

https://gist.github.com/4896cf41463ff83e191949a02bbead23

উপরের কমান্ডে আমরা pusher_message নামে একটি নতুন প্রকল্প তৈরি করেছি। পরবর্তী পদক্ষেপটি হবে আমাদের নতুন প্রকল্পে একটি অ্যাপ তৈরি করা। এটি করতে, নিম্নলিখিত কমান্ডগুলি চালনা করুন:

একবার আমাদের নতুন অ্যাপ্লিকেশন সেটআপ শেষ হয়ে গেলে, জাজানোকে আমাদের নতুন অ্যাপ্লিকেশন সম্পর্কে জানাতে হবে। সুতরাং আমাদের pusher_message \ settings.py ফাইলটিতে যান এবং আমাদের ইনস্টল করা অ্যাপ্লিকেশনগুলিতে বার্তা অ্যাপ্লিকেশন যুক্ত করুন (নীচে দেখুন):

তারপরে আমাদের অ্যাপ্লিকেশনটি চালানো এবং যা কিছু ভাল হয়েছে তা যাচাই করা দরকার।

আমাদের টার্মিনাল শেলটিতে আমরা নিম্নলিখিতটি করি:

আমরা যদি আমাদের ব্রাউজারের সাথে http: // লোকালহোস্ট: 8000 এ যান তবে আমাদের দেখতে হবে:

পুশারে একটি অ্যাপ সেট আপ করুন

এই মুহুর্তে, জ্যাঙ্গো প্রস্তুত এবং সেট আপ। এখন আমাদের পুশার সেট আপ করতে হবে এবং আমাদের অ্যাপের শংসাপত্রগুলি নেওয়া দরকার।

আমাদের পুশারে লগ ইন করতে হবে, একটি নতুন অ্যাপ তৈরি করতে হবে এবং আমাদের অ্যাপ্লিকেশন গোপন কী এবং অ্যাপ্লিকেশন আইডিও অনুলিপি করতে হবে।

পরবর্তী পদক্ষেপটি প্রয়োজনীয় লাইব্রেরি ইনস্টল করা হয়:

উপরের ব্যাশ কমান্ডে, আমরা একটি প্যাকেজ ইনস্টল করেছি, পুশার। পাইথনের এটি অফিশিয়াল পুশার লাইব্রেরি যা আমরা আমাদের বার্তাগুলি ট্রিগার করতে এবং তা পুশারে প্রেরণে ব্যবহার করি।

আমাদের অ্যাপ্লিকেশন তৈরি করুন

প্রথমে আমরা একটি মডেল ক্লাস তৈরি করি যা আমাদের ডাটাবেস কাঠামো তৈরি করে। "বার্তা \ মডেল.পি" খুলুন এবং নিম্নলিখিতগুলির সাথে সামগ্রীগুলি প্রতিস্থাপন করুন:

উপরের কোড ব্লকে আমরা কথোপকথন নামে একটি মডেল সংজ্ঞায়িত করেছি। কথোপকথন সারণীতে নিম্নলিখিত ক্ষেত্রগুলি রয়েছে:

  • এটি তৈরি করা ব্যবহারকারীর সাথে বার্তাটি সংযুক্ত করার জন্য একটি ক্ষেত্র
  • বার্তাটি সংরক্ষণ করার জন্য একটি ক্ষেত্র
  • বার্তার স্থিতি সংরক্ষণের জন্য একটি ক্ষেত্র
  • বার্তাটি তৈরি হওয়ার তারিখ এবং সময় সংরক্ষণের জন্য একটি ক্ষেত্র

চলছে মাইগ্রেশন

আমাদের ডাটাবেস টেবিলটি তৈরি করার জন্য আমাদের স্থানান্তরকরণগুলিও করতে হবে এবং এছাড়াও করা উচিত। এটি করার জন্য, আমাদের টার্মিনালে নিম্নলিখিতটি করা যাক:

আমাদের মতামত তৈরি করুন

জাজানোতে, ভিউগুলি অবশ্যই আমাদের অ্যাপ্লিকেশনটির এইচটিএমএল কাঠামোর সাথে সম্পর্কিত নয়। প্রকৃতপক্ষে, আমরা এটি আমাদের নিয়ামক হিসাবে দেখতে পাচ্ছি অন্য কয়েকটি ফ্রেমওয়ার্কগুলিতে।

আমাদের বার্তাগুলি ফোল্ডারে আমাদের ভিউ.পি ফাইলটি খুলুন এবং নিম্নলিখিত বিষয়বস্তুগুলির সাথে প্রতিস্থাপন করুন:

উপরের কোডে আমরা চারটি প্রধান ফাংশন সংজ্ঞায়িত করেছি:

  • সূচক
  • সংক্রমণ
  • কথোপকথন
  • বিতরণ

ইনডেক্স ফাংশনে, আমরা লগইন ডেকরেটর যুক্ত করেছি এবং লগইন ইউআরএল আর্গুমেন্টটি পাস করেছি যা ইতিমধ্যে বিদ্যমান নেই কারণ আমাদের এটি url.py ফাইলে তৈরি করা দরকার। আমরা চ্যাট এইচটিএমএল নামে একটি ডিফল্ট টেম্পলেটও রেন্ডার করেছিলাম, যা আমরা খুব শীঘ্রই তৈরি করব।

সম্প্রচার ফাংশনে, আমরা প্রেরিত বার্তার সামগ্রী পেয়েছি, এটি আমাদের ডাটাবেজে সংরক্ষণ করেছি এবং শেষ পর্যন্ত একটি বার্তা অনুরোধটি ট্রিগার করেছিলাম যা আমাদের বার্তার অভিধানে পাশ করা হয়েছিল, পাশাপাশি একটি চ্যানেল এবং ইভেন্টের নাম। কথোপকথনের কার্যক্রমে, আমরা কেবল সমস্ত কথোপকথন তুলে নিই এবং তাদের JSON প্রতিক্রিয়া হিসাবে ফিরিয়ে দেব।

অবশেষে, আমাদের বিতরণ ফাংশন রয়েছে যা আমাদের বার্তাগুলির স্থিতি যত্ন করে।

এই ফাংশনে, আমরা আমাদের কাছে উপলভ্য করা আইডি ব্যবহার করে কথোপকথনটি গ্রহণ করি। তারপরে আমরা নিশ্চিত করে নিই যে সংক্রামিত ইভেন্টটিকে ট্রিগার করার চেষ্টা করা ব্যবহারকারীটি সেই ব্যবহারকারী নন যিনি প্রথমে বার্তাটি প্রেরণ করেছেন। আমরা সকেট_আইডিটিও পাস করি যাতে পুশার ইভেন্টটি ট্রিগারকারী ব্যক্তিকে ফেরত পাঠায় না।

সকেট_আইডি সকেট সংযোগের জন্য সনাক্তকারী যা ইভেন্টটি ট্রিগার করেছিল।

Url's.py পূরণ করুন

আসুন আমাদের pusher_message \ urls.py ফাইলটি খুলুন এবং এটি নীচের সাথে প্রতিস্থাপন করুন:

এই ফাইলটিতে কী পরিবর্তন হয়েছে? আমরা ফাইলটিতে ছয়টি নতুন রুট যুক্ত করেছি। আমরা এন্ট্রি পয়েন্টটি সংজ্ঞায়িত করেছি এবং এটি আমাদের সূচক ফাংশনে নির্ধারিত করেছি। এরপরে, আমরা লগইন ইউআরএল সংজ্ঞায়িত করেছি যা সজ্জনকারী লগইন_প্রযুক্তি ব্যবহারকারীদের অনুমোদনের জন্য অ্যাক্সেস করতে চায়।

আমরা স্ট্যান্ডার্ড প্রমাণীকরণ কার্যকারিতা ব্যবহার করেছি তবে আমরা আমাদের নিজস্ব কাস্টম লগইন টেমপ্লেটে পাস করেছি যা আমরা শীঘ্রই তৈরি করব।

এরপরে, আমরা কথোপকথন বার্তা ট্রিগার, সমস্ত কথোপকথন এবং অবশেষে কথোপকথনের বিতরণের রুটগুলি সংজ্ঞায়িত করেছি।

এইচটিএমএল ফাইল তৈরি করা হচ্ছে

আমাদের অ্যাপ্লিকেশনটি সুচারুভাবে চালাতে এখন দুটি HTML পৃষ্ঠা তৈরি করা দরকার। অ্যাপ্লিকেশন তৈরির প্রক্রিয়ায় আমরা দুটি HTML পৃষ্ঠা উল্লেখ করেছি।

আমাদের বার্তাগুলি ফোল্ডারে, "টেম্পলেট" নামে একটি নতুন ফোল্ডার তৈরি করুন।

এরপরে, আমরা আমাদের টেম্পলেট ফোল্ডারে লগইন। Html নামে একটি ফাইল তৈরি করব এবং এটি নিম্নলিখিত দ্বারা প্রতিস্থাপন করব:

ভ্যু কম্পোনেন্ট এবং পুশার বাইন্ডিংস

এটাই! একটি নতুন বার্তা পৌঁছে দেওয়ার সাথে সাথে এটি প্রেরণ করা হয় এবং আমরা আমাদের চ্যানেলের মাধ্যমে বাস্তব সময়ে স্থিতি আপডেট করতে পারি। নীচে Vue.js. দিয়ে লেখা আমাদের নমুনা উপাদানটি রয়েছে is

দয়া করে নোট করুন: নিম্নলিখিত ভ্যু উপাদানটিতে একটি নতুন ফাংশন ** ক্যোয়ারীপ্যারামস ** আমাদের পোস্টের বডি সিরিয়াল করার জন্য সংজ্ঞায়িত করা হয়েছে যাতে এটি সার্ভারে ** x-www-form-urlencoded ** হিসাবে প্রেরণ করা যায় ** পেডলোড **। আমরা এটি করেছি কারণ জ্যাঙ্গো আগত অনুরোধগুলিকে ** পেডলোড ** হিসাবে প্রক্রিয়া করতে পারে না।

নীচে চিত্রটি দেখায় যা আমরা কী তৈরি করেছি তা দেখায়:

উপসংহার

এই নিবন্ধটি ব্যাখ্যা করে যে কীভাবে রিয়েল-টাইম বার্তা সরবরাহের স্থিতি তৈরি করতে জাজানো এবং পুশার ব্যবহার করবেন। আমরা সিএসআরএফ চেকগুলি থেকে কিছু ফাংশনকে ছাড় দিয়েছি এবং ব্রডকাস্টারকে তাদের দ্বারা ট্রিগার হওয়া ইভেন্ট গ্রহণ থেকে ছাড় দিয়েছে।

কোডটি সর্বজনীন গিটহাবের সংগ্রহস্থলে হোস্ট করা হয়। আপনি এটি শিক্ষাগত উদ্দেশ্যে ডাউনলোড করতে পারেন।

আমাদের অ্যাপ্লিকেশন, রিজার্ভেশন বা মন্তব্য তৈরি করার জন্য আপনার আরও ভাল উপায় কী? আমাদের মন্তব্য জানাতে। মনে রাখবেন, ভাগ করে নেওয়া শিখছে।

এই পোস্টটি মূলত লেখক এখানে পুশার ব্লগে প্রকাশ করেছিলেন।

এই সংস্করণটি স্বচ্ছতার জন্য সম্পাদিত হয়েছে এবং এটি মূল পোস্ট থেকে পৃথক হতে পারে।