[সঙ্গীত বাজাচ্ছি] Ezra Zigmond: হাই, সবাই. আজ আসার জন্য ধন্যবাদ. এই সেমিনারে "পাইথন হয় ওয়েব বোতল অ্যাপ্লেকেশানগুলি. " সুতরাং, আমি কথা বলা ঠিক হবে যাচ্ছি কেন সম্পর্কে একটি সামান্য বিট আপনি করতে বোতল ব্যবহার করতে চাইবেন পাইথন দিয়ে ওয়েব অ্যাপ্লিকেশন, হিসাবে বিরোধিতা আছে কিছু অন্যান্য অবকাঠামো, ভালো সবচেয়ে সুপরিচিত যা জ্যাঙ্গো,. উপশিরোনাম হয় "এবং যা কিছু peewee, " আমরা সে বিষয়ে কথা বলতে যাচ্ছেন এসকিউএল উপাত্ত সঙ্গে যোগাযোগ করার জন্য. এটা সত্যিই চমৎকার তোলে. সুতরাং, এখানে শুধু একটি দ্রুত ভগ্নস্বাস্থ্য শিঠ্ট আমি উপর যেতে চান কি. সুতরাং, প্রথম, শুধু এক স্লাইড যে, Quickstart হতে যাচ্ছে যা সবকিছু পেতে কিভাবে হয় আপনার কম্পিউটারে সেট আপ. আমি প্রদর্শক করা যাচ্ছে না আমার স্থানীয় ম্যাক মেশিনে এই, যে মাত্র কারণ আমি এই কাজ করেছি যেখানে আগে, আমি এটা দিয়ে সবচেয়ে আরামদায়ক আছি কিন্তু এই হ 'ল CD50 আইডিই তে সম্ভব. সুতরাং, যে পরে, আমি চাই , বোতল কি পরিচয় করিয়ে এবং আপনি সন্তুষ্ট আপনি কেন উচিত প্রথম স্থানে এটি ব্যবহার. তারপর, আমি একটি দ্রুত দেব আপনি কি এর উদাহরণস্বরূপ বোতল, একটি দ্রুত উদাহরণ করতে পারি আপনি peewee করতে পারি কি, এবং তারপর আমি আপনাকে আরো একটি দেখাতে হবে সম্পূর্ণ উদাহরণ আবেদন আমি মনে করি আমরা যে একসাথে করা যে একসাথে দিয়ে হেটে যেতে পারেন. এবং পরিশেষে, তাহলে এ শেষ স্লাইডে, আমি আছে আপনি যে চেহারা কিছু সম্পদ আরো তথ্যের জন্য অনলাইন এ. এটি একটি সম্পূর্ণ নয় বোতল কিভাবে ব্যবহার করতে টিউটোরিয়াল. আর আমি চলে যেতে আশা করব প্রশ্নের জন্য কিছু সময়. যে কেউ শুধু স্থানীয়ভাবে আরো মত, মাঝখানে আউট চিত্কার আপনার যদি অন্য কোন প্রশ্ন থাকে. তাই দ্রুত ইনস্টলেশন কাপড়, আপনি বরাবর অনুসরণ করতে চান তাহলে, অথবা আপনি এই পেতে চান তাহলে আপনার নিজস্ব মেশিনে আপ, আমি পাইথন 2.7.10 ব্যবহার করা যাচ্ছে না. বোতল সঙ্গে কাজ করে পাইথন 3 কিন্তু আমি চাই নেই, কারণ, পাইথন 2 ব্যবহার কিছু পাইথন প্যাকেজ যে এখনো 3 সঙ্গে কাজ করে না. আপনি পিপ ইনস্টল করা থাকে, যা পাইথন প্যাকেজ ম্যানেজার, আপনার পাইথন যদি আমি মনে করি অপেক্ষাকৃত বড় অথবা সমান 2.7.9, আপনি ইতিমধ্যে এটি ইনস্টল করা আছে, এটা এই প্যাকেজ ইনস্টল করার সহজ সুপার. আপনি পিপ ইনস্টল করতে পারেন বোতল, peewee ইনস্টল বীচি সাধারণত আপনি উবুন্টু চালানোর আছে তাই অনুমতি কাজ যে. এবং, যদি আপনি ব্যবহার করে থাকেন তাহলে একটি সুপার Python- র পুরোনো সংস্করণ, আমি আপনার পাইথন আপডেট সুপারিশ বা EasyInstall ব্যবহার পিপ ইনস্টল করার. সুতরাং, পরবর্তী প্রশ্ন হল, বোতল কি? আর আমি প্রথম একটি অনুমান যুক্তিসঙ্গত প্রশ্ন আমি বিস্ময়ের একটি দীর্ঘ সময় জন্য, একটি ওয়েব অ্যাপ্লিকেশন কি? যে একটি শব্দ কারণ যে আমি অনেক কাছাকাছি নিক্ষিপ্ত মনে হয় আমি সত্যিই জানি না যে. এবং মেহমানদেরকে উত্তম যে মনে একটি ওয়েব অ্যাপ্লিকেশন কি উদাহরণস্বরূপ, সত্যিই CS50 ফাইন্যান্স, কোথায় এটা সত্যিই শুধু একটি ওয়েবসাইট নয় কিন্তু এটা এমন কিছু যে আপনি সাজানোর সঙ্গে যোগাযোগ করতে পারে. ব্যবহারকারীর অ্যাকাউন্ট আছে এবং বিভিন্ন জিনিস সমস্ত প্রকারের. তাই ঠিক, আপনি যেখানে ড্র একটি ওয়েবসাইট কি মধ্যে লাইন, এবং একটি ওয়েব অ্যাপ্লিকেশন, কিরুপ হয় নির্বিচারে, কিন্তু আমি ধারণা অনুমান, এটি একটি ওয়েবসাইট তুলনায় আরো কিছু এবং এটি একটি দরকারী আবেদন. সুতরাং, বোতল একটি কাঠামো জন্য পাইথন ব্যবহার করে ওয়েব অ্যাপ্লিকেশন তৈরি. আর আশা করছি, শেষ করে এই কারণে, আমি আপনাকে সন্তুষ্ট করবে আপনি আসলে কিছু লিখতে পারে যে CS50 ফাইন্যান্স মত পাইথন ব্যবহার করে যা আমি ব্যক্তিগতভাবে, পিএইচপি তুলনায় অনেক বেশি ভালো মত. সুতরাং, বোতল হয়, তারা কল একটি microframework, যা দ্বারা তারা এটা খুব মানে সহজ, কিন্তু এক্সটেনসিবল. সুতরাং, এটা শুধুমাত্র আপনার যা প্রয়োজন আছে কিন্তু আপনি আরও বৈশিষ্ট্য চান, আমি এ গ্রন্থে তাদের আনা সহজ. কিন্তু এটা মাত্র কারণ একটি microframework, না এটা ছোট প্রকল্পের জন্য শুধুমাত্র যে মানে. আমি যে এখানে একটি লিঙ্ক আছে ওবামা 2012 সালে বোতল ব্যবহার করে তার প্রচারের জন্য ওয়েবসাইট, যা আশা, একটি পৃষ্ঠাঙ্কন কিছু. কিন্তু জিনিস যে আমি সত্যিই বোতল সম্পর্কে পছন্দ , এটা সত্যিই হয় না আপনার জন্য সিদ্ধান্ত কোনো সাজান. শুধু আমরা করছি কারণ ওয়েব অ্যাপ্লিকেশান সম্পর্কে কথা বলা, আমি উপর রুবি এটি তুলনা আছে পাগল এবং জ্যাঙ্গো, উভয় যা মহান অবকাঠামো আছে, কিন্তু তারা উভয় অনুমিতি সম্পর্কে কিভাবে আপনি চান উপাত্ত সঙ্গে যোগাযোগ করার, কিভাবে আপনি আপনার উপস্থাপন করতে চান মতামত, এবং তারা স্পষ্টভাবে করছি যে ভাল দিক. উদাহরণস্বরূপ, রুবি অন রেইলস জন্য এই সক্রিয় রেকর্ড সিস্টেম আছে, যা একটি সত্যিই চমৎকার তথ্য সাথে যোগাযোগ করার উপায়, কিন্তু আপনার উপর রুবি ব্যবহার করতে চান তাহলে পাগল, আপনি সাজানোর যে মধ্যে আবদ্ধ করছি. কিন্তু বোতল সঙ্গে, আমি করব peewee সাথে আপনাকে দেখাবে, আপনি যাই হোক না কেন সাজান ব্যবহার করতে পারেন ডাটাবেস আপনি চান, এবং আপনি শুধু যে টান করতে পারেন বোতল মধ্যে একটি এক্সটেনশন হিসাবে. সুতরাং যে কেন আমি সত্যিই বোতল মত, এটা যে আপনার জন্য অনুমানের করতে না জিনিষের উপর ভিত্তি করে আপনি সত্যিই প্রয়োজন হয় না. সুতরাং, আপনি কেন বোতল ব্যবহার করা উচিত? সুবিধার এটা ঠিক আছে, সত্যিই কোর বৈশিষ্ট্য আছে এটা পাতাটা যে আপনি প্রয়োজন. সুতরাং, আপনি সম্পর্কে চিন্তা করতে হবে না জিনিষ আভা বুঝতে আপনি কি সত্যিই প্রয়োজন হবে না যে. আপনি চিন্তা করতে হবে করতে হবে না বৈশিষ্ট্য বাঁক সম্বন্ধে আপনি কি সত্যিই প্রয়োজন হবে না যে. আমি হিসাবে উল্লেখ করেছে, এটা সুপার এর জিনিস এক্সটেনশন যোগ করা সহজ আপনার যা দরকার তা না করে. তাদের মধ্যে কেউ কেউ বোতল আছে এটা তাদের নিজস্ব সমর্থন. সুতরাং বোতল কিছু বলা যে অ্যাডমিন প্রতিফলিত যা অ্যাডমিন, জ্যাঙ্গো উপলব্ধকারী প্যানেল, যা আপনি একটা চমৎকার চাক্ষুষ উপায় দেয় আপনার ওয়েবসাইট প্রশাসক. কিন্তু আবার, যদি আপনি কিছু সহজ করে, আপনি সম্ভবত একটি বড় অ্যাডমিন প্রয়োজন হবে না প্যানেল, তাই আমি যে সুপার সুন্দর মনে হয়. এবং অসুবিধেও, যে হয় আপনি বাক্সের বাইরে কম শক্তি আছে. সুতরাং, আপনি প্রথম বোতল আপ খোলার সময়, এবং আপনার পাইথন প্রোগ্রাম, আপনি শুধু বোতল থেকে টাইপ আমদানি *, বা যাই হোক না কেন, আপনি ঠিক সব পাবেন না বৈশিষ্ট্য আপনি চাইতে পারেন. এবং যাতে আপনি আরো স্পষ্টভাবে আছে আপনি চান বৈশিষ্ট্য তালিকায়. সুতরাং যে এক অসুবিধা, কিন্তু আমি ছোট ওয়েব জন্য নির্মাণের যে মনে আমি ভালো অ্যাপ্লিকেশান দেখাচ্ছে করা যাচ্ছে না আপনি, যে সত্যিই একটা সমস্যা না. এবং শেষ জিনিস কি একটি typo যা বলে অনুমিত, কম প্রমিত আছে হয় বোতল ব্যবহার করার জন্যে নিয়মাবলী, ঠিক যেমন অনেক আছে না, কারণ পেশাগতভাবে মানুষ যে এটি ব্যবহার জ্যাঙ্গো তুলনায়. সুতরাং, আপনি ভালো কিছু তাকান, জ্যাঙ্গো মধ্যে "কিভাবে আমি এক্স না", আপনি সম্ভবত তা খুঁজে পাবেন. ভাল নকশা আছে আপনি ব্যবহার করতে পারেন নিদর্শন, কিন্তু বোতল দিয়ে, এটা সাজান আপনার নিজের পথ যেতে, শুধু এটি একটি কারণ খুবই ছোট লাইব্রেরি. সুতরাং যারা অসুবিধেও, কিন্তু আমি মনে করি যে এটি এখনও ব্যবহার করার জন্য একটি ভাল লাইব্রেরি আছে. তাই আসুন শুধু সঠিক বোতল মধ্যে তিড়িং লাফ দিন. এই হ 'ল যাচ্ছে না একটি সম্পূর্ণ টিউটোরিয়াল হতে, কিন্তু এটি আপনি একটি ধারণা দিতে এর জিনিষ গঠন করতে হয় তা নিয়ে, এবং যাতে আপনি যাচ্ছে স্বাচ্ছন্দ্য বোধ বন্ধ ও ডকুমেন্টেশন এ খুঁজছেন এবং আরো দুঃশ্চিন্তা. সুতরাং, আমার সত্যিই খুলুন প্রথমে সহজ যেমন, এবং আপনি কি যে প্রদর্শন দেখে মনে হচ্ছে, এবং তারপর আমরা করব একটি সামান্য বিট আরও নিচে বিরতি. তাই এই এখানে, আমার এটা চলমান পেতে দিন. সুতরাং, আমি এখন আমার অ্যাপ্লিকেশন চলমান আছে. আমি সাফারি খুলুন যাচ্ছে, এবং করছি এটা আমার স্থানীয় হোস্ট সিস্টেমে চলমান. তাই আমি শুধু এই বড় করতে যাচ্ছি. কিন্তু স্থানীয় হোস্ট: 5000 আর তাই, এই মুহূর্তে, এই সব আছে হয়, আপনি ওয়েবসাইট ভিজিট করার সময়, এটা "হ্যালো, বোতল" ছাপে আউট যা, সুপার দরকারী নয় কিন্তু আমি এটা যে শীতল মনে এখানে এই সামান্য ফাইলে, আমরা একটি ওয়েব সার্ভার চালানো আছে এমন কিছু প্রিন্ট আউট হয়. সুতরাং, এর আসলে যাক একটি দ্বিতীয় জন্য কোড এ, এবং একটি সামান্য বিট এটি ভেঙ্গে. আকার এখানে সবার জন্য ভালো? সুতরাং, আশা করছি, আপনি কিছুটা আছেন পাইথন ব্যবহার আরামদায়ক. আমি মনে করি আমরা তাকান পারেন যে অভিমানী করছি পাইথন এবং এটি পড়বেন. আপনার সম্পর্কে কোনো প্রশ্ন থাকে, তাহলে কিছু, আমি যে উপর যেতে পারেন. সুতরাং প্রথম লাইন বোতল থেকে, হয়, আমরা একটি মূলধন, বোতল আমদানি "এফ" যা সব ধরণের আপনি প্রয়োজন যে মূল বৈশিষ্ট্য. যখনই আপনি লেখার একটি ফাইল এবং ব্যবহার বোতল, আপনি যে আমদানি করতে চান চলুন, যে সব প্রধান বিষয় আছে মাত্র কারণ. আমরা কি পরের জিনিস আমরা হয় শুধু, এই ফাংশন বোতল কল একটি অ্যাপ্লিকেশন বস্তু তৈরি, এবং আপনি আছেন করার সবসময় যে কাজ করতে চান যাচ্ছে. এবং তারপর, নিচে জাম্পিং নীচে দ্রুত, এই অংশ এখানে, হয় যা 'if_name _ == "_ main_"' পাইথন কনভেনশন সাজান. সুতরাং এই শুধু আপনি যদি চালানো হবে সরাসরি পাইথন ব্যবহার করে এই ফাইলটি রান. তারপর, আমরা যেটি, app.run কল আসলে যাচ্ছে অ্যাপ্লিকেশন আরম্ভ. সুতরাং, যে মূল কাঠামো যে যদি আপনার কোন বোতল আবেদন থাকবে, আপনি এই থাকবে হয় অ্যাপ্লিকেশন = বোতল (_name_), এবং তারপর app.run. সুতরাং, দুটি জিনিস আমি আছে এখানে, আমরা রুট কি কল হয়. সুতরাং, এর সম্পর্কে কথা বলা যাক একটি সামান্য বিট আরো রাউটিং. আমি ফিরে স্লাইডে যাবেন. তাই সবচেয়ে মৌলিক বোতল মধ্যে ধারণা রাউটিং হয়. আর এটা ধারণা যে আপনি পাইথন ফাংশন নির্ধারণ করুন বিশেষ ঠিকানায় আপনার ওয়েব পেজে. সুতরাং, যখনই আপনি চান একটি নতুন রুট তৈরি করা, আপনি এই @ app.route ব্যবহার ফাংশন প্রসাধক. সুতরাং, আপনার সাথে অপরিচিত যদি হয় পাইথন ফাংশন টেকনিক, এটা এই ধারণা যে আপনি যদি একটি ফাংশন নিতে দেয় এবং অন্য কিছু দিয়ে ঘেরা. সত্যিই তাই, এই প্রসাধক কি, এটা নিচের ফাংশন লাগে না এবং এটা আরো তথ্য যোগ করা হয়েছে এটা করার জন্য, কিন্তু তা বোতল আসলে যে ঘটতে না সুপার নয় গুরুত্বপূর্ণ, কিন্তু গুরুত্বপূর্ণ কি, যে আপনি, রুট করার আগে হয় তারপর এই @ app.route করা, এবং রুট ঠিকানা, তাই স্ল্যাশ কি আমরা আমরা শুধু ওয়েব পৃষ্ঠা খোলার পর দেখলাম. সুতরাং যে হোমপেজে এর. এটা শুধু স্ল্যাশ রুট. এবং তারপর আপনি এই ফাংশন আছে. ফাংশনের নাম যাহা চান হতে পারে. এটা অগত্যা করতে নেই রুট কি আছে. এবং তারপর, যাই হোক না কেন ফাংশন এর আগমন, ফাংশন একটি স্ট্রিং ফেরত পাঠাবেন. এবং যে স্ট্রিং পারেন , এইচটিএমএল বা কিছু থাকে এবং যে কি পেতে হবে আসলে এইচটিএমএল হিসেবে আপনার ওয়েব ব্রাউজারে, এবং এটা যে সম্ভব হবে না. সুতরাং এই একই কোড যে উদাহরণ থেকে ছিল আমি শুধু দৌড়ে যে, তাই আমরা স্ল্যাশ যান তখন এটি একটি হ্যালো ওয়ার্ল্ড ফাংশন, যা কল শুধু একটি স্ট্রিং, হ্যালো বোতল ফেরৎ, এবং যে পর্দায় মুদ্রিত পরার. তাই অন্য একটি উদাহরণ আছে, যা, যখন আপনি হ্যালো / দেখার জন্য, এটা হ্যালো শব্দ, কপি করে প্রিন্ট আউট যা আসলে, হ্যালো ওয়ার্ল্ড বলতে হবে, কিন্তু এর যে ইচ্ছাকৃত ছিল সাজা দেওয়া. সুতরাং আসুন বাস্তব দ্রুত যে মুঠি ধরে টেনে তুলবো. সুতরাং আপনি হ্যালো / localhost যান তাহলে, এটা এখন অন্য কিছু প্রিন্ট করা হবে. সুতরাং যে কিভাবে মাত্র একটি দ্রুত উদাহরণ আপনি দুটি আলাদা রুট তৈরি করতে পারেন. সুতরাং, এখন পর্যন্ত এই, সুপার দরকারী নয় আপনি কি করতে পারেন একটি সম্পূর্ণ অনেক আছে না, আপনি শুধু দিয়ে যে সব না পারে বিভিন্ন এইচটিএমএল পেজ হচ্ছে, এবং আপনি যদি একটি নির্দিষ্ট যান যখন পাতা এটা শুধু পাতা লোড করা হয়. সুতরাং আসুন আরো কিছু দেখতে দিন আপনি কি করতে পারেন দরকারী জিনিষ. সুতরাং, এক জিনিস যে আপনি থাকতে পারে আমি টানা যে উদাহরণে লক্ষ্য আপ, আমি app.run ছিল যে হয় (ডিবাগ = সত্য). আর তাই, কি এই ডিবাগ যুক্তি, না আপনি আপনার ওয়েব সার্ভার চালানোর জন্য যখন যে, আপনি আপনার অ্যাপ্লিকেশনের মধ্যে যখন, আপনি একটি ফাইল পরিবর্তন করতে, এটি হবে স্বয়ংক্রিয়ভাবে সার্ভার পুনরায় লোড করুন. এবং যাতে আপনি আসলে করতে হবে না সুপার দরকারী যা পুনর্সূচনা পাইথন,. আমি দেখাতে পারি যে. আমার কোড বৈঠাচালনা আপ এটা টাইপো সাথে, এবং যে টাইপো সেখানে রাখা ছিল জাহির ইচ্ছাকৃতভাবে শিক্ষামূলক উদ্দেশ্যে. সুতরাং আসুন এই ফিরে যোগ করা যাক. সুতরাং এখন এটা হ্যালো দুনিয়া বলেছেন. আমি তা রক্ষা করবে. আর আমরা ফিরে টান আপ যদি টার্মিনাল, আপনি পাবেন এটি পুনরায় আরম্ভ করুন যে বলতে, এটা ছিল একটা পরিবর্তনের সনাক্ত করার কারণে, এবং তাই এখন আমরা এই পৃষ্ঠাটি পুনরায় লোড যখন এটা সঠিক জিনিস প্রিন্ট আউট হবে. সুতরাং ডিবাগ যে জন্য সুপার দরকারী. এছাড়াও, যদি আপনার কেউ থাকে একটি বিপর্যয়ের সাজান, তাই আমার এই অ্যাপ্লিকেশন ক্র্যাশ করা যাক থাকার এটি একটি স্ট্রিং ফিরে না. সুতরাং, শুধু এটা আছে যাক কোনো কারণে কেউ আসতে. এবং তারপর আমি এই দেখার সময় পাতা, এটা শুধু বিপর্যস্ত হবে, কিন্তু সার্ভার ঠিক, এটি বিপর্যস্ত না আসলে আপনি একটি সুপার দরকারী ফেরত দেয় সবকিছু সামান্য ভুল হয়েছে যে. আর, সত্যিই চমৎকার কি যে হয় এই ফিরে ট্রেস যে কোন পদক্ষেপ এ, আপনি একটি ইন্টারেক্টিভ খুলুন পারে এখানে শেল, এবং সাজানোর প্রিন্ট আউট কি ভেরিয়েবল আপনি কটাক্ষপাত করতে চান. আর তাই ডিবাগিং সত্যিই হয় figuring আউট জন্য দরকারী কি দিয়ে যাচ্ছে আপনার সার্ভার, বদলে শুধু দেখা একটি 500 অভ্যন্তরীণ মত পিএইচপি কিছু সুপার অনর্থক যা সার্ভার ত্রুটি. এক জিনিস, সচেতন হতে হবে যে আপনি অনলাইনে আপনার অ্যাপ্লিকেশন করা তাই এটা, জনসাধারনের জন্য দৃশ্যমান আপনি কখনও ডিবাগ মোড থেকে বেরোতে চান, মানুষ আসলে পারেন কারণ যে কনসোল ব্যবহার করে আমি আপনি নির্বিচারে কোড এক্সিকিউট করার দেখিয়েছেন. যাতে তারা যে কোনো মত প্রিন্ট আউট করতে পারেন আপনি সেখানে আছে গোপন কোড, তারা ঠিক তাকান পারেন কিভাবে আপনার ওয়েবসাইটে কাজ করছে. সুতরাং এটা সত্যিই দরকারী পরীক্ষার জন্য, কিন্তু সবসময় আগে তা গ্রহণ নিশ্চিত আপনি অনলাইন কিছু প্রকাশ. তাই যখন আপনি কিছু ব্যবহার করছেন পিএইচপি মত, এই ধারণা আছে আপনি প্রেরণ করতে পারেন ওয়েব পেজ মধ্যে তথ্য আসলে তথ্য নির্বাণ দ্বারা একটি অনুরোধ পেতে যা ইউআরএল,, কিন্তু বোতল মধ্যে, আপনি আসলে করতে পারেন সাজান যে ভালো কিছু করতে, আছে একটি রুট থাকার এটা অংশ হিসেবে একটি পরিবর্তনশীল. আপনি এই তাকান সুতরাং এখানে পর্দায় উদাহরণস্বরূপ, আমরা যে একটি রুট আছে ('/ হ্যালো /'), এবং তাই, যদি তোমার মঙ্গল করেন / হ্যালো / কিছু, যে কিছু আসলে ভরা পেতে যাচ্ছে নাম পরিবর্তনশীল মধ্যে. এবং ফাংশন যে লক্ষ্য যে রুট দিয়ে আসে পরামিতি গ্রহণ করা হয়েছে এটির নাম দিন আসলে হবে যাতে ফাংশন মধ্যে পাশ করতে. এবং তারপর, একবার আপনি আছেন যে ফাংশনের ভিতর, যদি আপনি চান যে বিবেচনা করতে পারেন একটি স্বাভাবিক পাইথন পরিবর্তনশীল, এবং অতএব, এটা করবে না হ্যালো প্রিন্ট আউট, এবং এটা ব্যবহার নামে পূরণ হবে কিছু পংক্তি বিন্যাস. সুতরাং একটি রাউটিং পরিবর্তনশীল অংশ যোগ করতে, আপনি চিহ্নিত করার কোণ বন্ধনী ব্যবহার. এবং ঐচ্ছিকরূপে, আপনি ব্যবহার করতে পারেন কি একটি কনভার্টার বলা হচ্ছে. আর তাই, আপনি এই করা হলে কোলন সঙ্গে টীকা, আপনি যে এটি নির্দিষ্ট করতে পারেন কোন int, বা একটি float, অথবা পথ, এবং এটি স্বয়ংক্রিয়ভাবে যে রূপান্তর হবে. এছাড়াও আপনি রূপান্তর করতে পারেন পাইথন ফাংশন মধ্যে, শুধু একটি ঢালাই ব্যবহার করে, কিন্তু কখনও কখনও যদি আপনি এটা কোন int নিশ্চিত করতে চাই যে, আপনি যে লাগাতে পারেন সেখানে রূপান্তর শাসন. তাই এর একটি উদাহরণ মুঠি ধরে টেনে তুলবো কিছু পরিবর্তনশীল নিয়ম. তাই এখানে, এই মৌলিক একই আছে বোতল আমদানি থেকে সঙ্গে গঠন বোতল, অ্যাপ্লিকেশন = বোতল (_name_), এবং তারপর এটা শেষে চলমান. আমরা এই দুই আলাদা আছে এখানে পরিবর্তনশীল রুট. এবং প্রথম এক, হয় আমি দেখিয়েছি যে এক যে যা ছিল স্লাইড, এ এটা শুধু একটি স্ট্রিং নামে লাগে এবং এটা, নাম হ্যালো প্রিন্ট আউট হবে. এবং তারপর, দ্বিতীয় এক রূপান্তর ব্যবহার. তাই এই স্বয়ংক্রিয়ভাবে তা রূপান্তর করা হবে কোন int, এবং তারপর, কোন int দ্বিগুণ এবং যে আউট প্রিন্ট করা হবে. আর, আমরা কোন ধরণের কাজ না এটি মধ্যে রূপান্তর বোতল যে যত্ন নেয়, কারণ. তাই আসুন এই চলমান পেতে দিন. আপনি একটি বোতল আছে অ্যাপ্লিকেশন চলমান, আপনি তা খুঁজে-সি নিয়ন্ত্রণ করতে পারেন সার্ভার চলমান থামাতে. এবং তারপর আমি ভেরিয়েবল চালানো হবে. সুতরাং আসুন যদি localhost / হ্যালো / Ezra যেতে দেওয়া এবং আশা করছি, এই আমাকে হ্যালো বলবে. সুতরাং এটি পরিবর্তনশীল, আমার নামে গ্রহণ রুট, এবং তা এখানে তা পূরণ. তাই আমি একটা দ্রুত দেখাব দ্বিত্ব উদাহরণস্বরূপ. তাই আপনি যদি 3 / ডবল / এ যান, তাহলে, এটা 6 প্রিন্ট আউট হবে. সুতরাং এই যত্ন নেন আমাদের জন্য রূপান্তর. তাই আপনার কাছে দিয়ে এটি করতে পারেন ভাসা, এবং বিশেষ কিছু, আপনি ভালো কিছু উল্লেখ করার প্রয়োজন হলে এটা স্ল্যাশ গ্রহণ করতে দেয় যে একটি পথ, কিন্তু যে সাধারণত একটি সমস্যা হবে না. এ পর্যন্ত আমরা এখনও আছে শুধু ফিরে হয়েছে খুব আকর্ষণীয় হয় না, যা স্ট্রিং. আমরা আসলে আসতে পারে আক্ষরিক এইচটিএমএল স্ট্রিং. তাই কোড আমরা কিছু সন্নিবেশ করতে পারেন বি-ট্যাগ এটা বোল্ড করতে চাই, কিন্তু অধিকাংশ সময় আপনি আসলে চান না এইচটিএমএল কোড লেখার করা আপনার পাইথন কোড. এটা সত্যিই নোংরা পায় এবং এটি একটি ভাল সময় নয়. বোতল আমাদের খুঁজে আলাদা করতে পারবেন টেমপ্লেট বলা কি শুধুমাত্র এইচটিএমএল, এবং যদি তাই আপনি চিন্তা করছি MVC মডেল শর্তাবলী আপনার সাথে পরিচিত হন যে, আশা করছি, কাজ থেকে CS50 ফাইন্যান্স সঙ্গে একটি সামান্য বিট, আপনি পাইথন ফাইল মনে করতে পারেন কন্ট্রোলার, যেখানে আরো হচ্ছে তারা যাই হোক না কেন সঙ্গে আলাপচারিতার হয় আপনি থাকতে পারে তথ্য মডেল. এবং তারপর তারা দেখেছে আহ্বান করছি এবং যে দেখতে তথ্য ক্ষণস্থায়ী তথ্য পূরণ করা HTML এ যে এটি প্রয়োজন. এবং আমরা যারা দেখেছে কি কল ক্লাসে টেমপ্লেটলোগো. সুতরাং বোতল অন্য পাইথন ব্যবহার মডিউল যে এটি স্বয়ংক্রিয়ভাবে হবে আপনি ইনস্টল বীচি যখন ইনস্টল বোতল Jinja, বলা যা আপনি এইসব যোগ দেয় এইচটিএমএল টীকা আপনি পর্দায় দেখতে যে, যে দেয় আপনি, কন্ডিশন ভালো জিনিস রাখা এবং এইচটিএমএল মধ্যে loops. তাই এটা আপনি কিভাবে একটি ভালো সামান্য বিট দেখায় একটি HTML ফাইল মধ্যে পিএইচপি ব্যবহার করতে পারে, কিন্তু শুধু এই যখন বোতল হয় সার্ভার, এইচটিএমএল ফাইল আপ স্থল এটা এই টেমপ্লেট ইঞ্জিন চালানো হবে এবং এই মাধ্যমে পার্স এবং কিছু ভরাট. সুতরাং বোতল একটি render_template ফাংশন আছে আপনি এখানে নীচে দেখতে পারেন যে. এবং যাতে আপনি, এটা এই পৃষ্ঠা দেখার জন্য যখন এই hello.html টেমপ্লেট পারিশ্রমিক প্রদান করা হবে, এবং তারপর এই এইচটিএমএল পাতা পূরণ করুন. তাই আসুন শুধু এই বাস্তব চালানো যাক দ্রুত, এবং এটা দেখে মনে হচ্ছে তা দেখতে, এবং তারপর আমি একটি মধ্য দিয়ে যেতে হবে আরো বিস্তারিত সামান্য বিট. সুতরাং, আপনার টেমপ্লেট যাচ্ছি একটি টেমপ্লেট ফোল্ডারে যেতে. এটি স্বয়ংক্রিয়ভাবে মধ্যে দেখবে টেমপ্লেট টেমপ্লেট যে জন্য ফোল্ডার. তাই আসুন এই খুলুন. সুতরাং, আমি টেমপ্লেট উদাহরণস্বরূপ রান করব. তাই আমি / হ্যালো / Ezra যেতে হলে, এটা এই ভয়ঙ্কর হয়েছে, আমি রাখা যে আপত্তিকর Marquee ট্যাগ. খুব সুন্দর, খুব গতিশীল. আমি একটি বড় ফ্যান. কিন্তু তা যদি ঘটে আমি শুধু, / হ্যালো যেতে? তাই এটা শুধু হ্যালো দুনিয়া বলেছেন. আমি এটি একটি নাম পাস, এবং না এটি স্বয়ংক্রিয়ভাবে এটি ভরা. সুতরাং এটা যে কিভাবে দেখা যাক, এবং কিভাবে আমরা হয়তো যে Marquee পরিত্রাণ পেতে পারেন. তাই এখানে, এই ধরণের হয় এর একটি আকর্ষণীয় উদাহরণ, আপনি কিভাবে বাছাই সাথে পরিচিত হলে বিবৃতি একটি ভাষায় কাজ. , এই মত সাজানোর হয় বলুন মাধ্যমে পড়ে যে সাজানোর, যেখানে আপনি আসলে দুটি সংযুক্ত একই ফাংশন বিভিন্ন রুট. সুতরাং আমরা / হ্যালো রুট সংযুক্ত এবং হ্যালো করতে / হ্যালো / নাম রুট, পাইথন আপনাকে using-- এবং আমরা উল্লেখ ডিফল্ট ফাংশন আর্গুমেন্ট উল্লেখ তাই কোন নাম, তাই না থাকলে আমরা যেতে হলে শুধু / হ্যালো, এটি স্বয়ংক্রিয়ভাবে ফিল্টার হবে নামের কেউ সমান. অতএব, আমরা রেন্ডার নাম = নামের সঙ্গে টেমপ্লেট, তাই এটা নাম পরামিতি পাস হবে এই নামের ফাংশন পরামিতি সমান, টেমপ্লেট মধ্যে. কিভাবে যে এখনও ব্যাখ্যা না হ্যালো দুনিয়া প্রিন্ট কিনা সিদ্ধান্ত, বা আমার নাম প্রিন্ট করা হবে. সুতরাং আসুন আসলে যাক টেমপ্লেট নিজেই মধ্যে, এবং যে থেকে আসছে যেখানে দেখতে. সুতরাং, এই টেমপ্লেট মধ্যে আমরা আসলে কিছু শর্তাধীন লজিক আছে, যা কিছু মানুষ হবে তর্ক, আপনি আসলে শর্তাধীন অনেক আছে করা উচিত নয় আপনার টেমপ্লেট নিজেই মধ্যে যুক্তিবিজ্ঞান. এটা মধ্যে আরো হওয়া উচিত কন্ট্রোলার, কিন্তু এই উদাহরণস্বরূপ এটা খুবই ছোট কিছু. নাম যদি তাই এখানে, আমরা তাই, পরীক্ষা যদি নাম কেউ সমান নয়, একটি নাম আসলে যদি তারপর আমরা হবে সালে পাশ নাম, হ্যালো বলে হেডার এবং তাবু, এই সব স্বাভাবিক এইচটিএমএল, অন্যথায়, আমরা আছি হ্যালো প্রিন্ট আউট, বিশ্ব শুধু সাধারণত. তাই কয়েক জিনিষ এখানে লক্ষ্য করা আপনি টেমপ্লেট ফরম্যাট কিভাবে সম্পর্কে, এগুলোর মধ্যে যে সব হয় শর্তাধীন বিবৃতি, সাজানোর মত আমরা তা সময় পিএইচপি কিভাবে আপনি কিছু পিএইচপি সন্নিবেশ করাতে চান, আপনি কম বেশী ব্যবহার প্রশ্ন চিহ্ন, তা এখানে সাজানোর এর অনুরূপ {% সঙ্গে. তাই এখানে, আমরা আমাদের কন্ডিশনাল কোড আছে. এবং তারপর, আপনি আসলে চান যখন আক্ষরিক কিছু নির্ণয়, এবং মুদ্রণ পর্দায় এটি আউট, আপনি ডবল ধনুর্বন্ধনী ব্যবহার. সুতরাং এখানে ডবল ধনুর্বন্ধনী, এবং তারপর আমরা নাম উল্লেখ, মধ্যে যে তাই, এটি নির্ণয় করা হবে পরিবর্তনশীল নাম, এর সাথে যা থেকে পাস করা হয় , টেমপ্লেট ফাংশন রেন্ডার বরং শুধু প্রিন্টিং বেশী আউট, আমরা এইসব পরিত্রাণ পেয়েছিলাম যদি, এটা শুধু শব্দ প্রিন্ট আউট হবে "নাম." সুতরাং, যে জন্য সতর্ক কিছু. তাই অন্য জিনিস নোটিশ যখন আমরা, যে ব্যবহার করতে চান render_template ফাংশন, আমরা আসলে আমদানি করতে হবে এটা স্পষ্টভাবে বোতল থেকে. আর এই একটি উদাহরণ বোতল এর মডুলার, আপনি আমদানি করতে হবে না যে আপনি প্রয়োজন হবে না যে কিছু. আপনি শুধু যে আনতে পারেন ফাংশন আসলে আপনি কখনও কখনও, যা প্রয়োজন না চমৎকার, তাই যদি আপনি না সব ফাংশন আছে আপনি ব্যবহার করছি না যে কাছাকাছি বসা, কিন্তু, যদি আপনি যে ভুলে গেলে render_template আমদানি করতে হবে, আপনি সম্ভবত একটি সতর্কবার্তা পাবেন যে আপনি যে সম্পর্কে জানাতে হবে. সুতরাং, যে টেমপ্লেট হয়. সুতরাং, আমরা কিভাবে দেখানো করেছি , সহজ ওয়েব পেজ করা এবং একটি সামান্য বিট আরো যুক্তি যুক্ত এটি পরিবর্তনশীল রাউটিং পরিপ্রেক্ষিতে. এটা আপনার উপর ভিত্তি করে বিভিন্ন জিনিষ না কি আপনি তাহলে যান, এবং URL দিতে এইচটিএমএল একটি সামান্য বিট আরো অর্থে আপনি জিনিষ রেন্ডার করতে চান কিভাবে পরিপ্রেক্ষিতে. আপনি সব করা হবে না আপনার পাইথন আপনার এইচটিএমএল, কিন্তু অনেক সুন্দর জন্য ভাষার ওয়েব অ্যাপ্লিকেশন, আপনি কিছু সাজানোর চান চলুন তথ্য মডেল এর সাথে জড়িত. আর তাই ঐতিহ্যগতভাবে এই would একটি SQL ডাটাবেস ভালো কিছু হতে. আর আপনি শুধু যোগাযোগ করতে পারবেন সরাসরি এসকিউএল সাথে. পাইথন, আছে আমি এটা বলা হচ্ছে মনে. SQLite 3. আপনি শুধু SQLite 3 আমদানি করতে পারেন এবং সরাসরি SQL কোয়েরি চালানো, কিন্তু আমি আপনার সম্পর্কে জানি না, কিন্তু আমি সত্যিই, শুধু পছন্দ করেন না SQL কোয়েরি লেখা. এটা সত্যিই পেতে থাকে দীর্ঘ ও জটিল. আর তাই, কিছু যে আমি ব্যবহার করতে কি হয় পছন্দ একটি, যা একটি ORM, হিসাবে পরিচিত অবজেক্ট রিলেশনাল ম্যাপিং. আর একটি বিন্দু অবজেক্ট রিলেশনাল ম্যাপিং, দুটি ভিন্ন আছে হয় উপায় আপনি ডাটাবেস সম্পর্কে চিন্তা করতে পারেন. উদাহরণস্বরূপ সুতরাং যে অধ্যাপক মালন সাধারণত ক্লাসে ব্যবহার, এক্সেল টেবিল, যেখানে হয় আপনি এই সারি এবং এই কলাম আছে, এবং যে জন্য সত্যিই দরকারী এটা এসকিউএল মধ্যে প্রতিনিধিত্ব করা হয় কিভাবে এবং আপনি এটিতে যোগাযোগ, কিন্তু এটা আসলে অন্য যে ভাবে কখনও কখনও এটা সম্পর্কে চিন্তা করা দরকারী, ক্লাস এবং অবজেক্ট পরিপ্রেক্ষিতে হয়. সুতরাং পরিবর্তে চিন্তা প্রতিটি টেবিলের থাকার হিসাবে নির্দিষ্ট আছে যে এই সারিতে তথ্য, আপনি আসলে করতে পারেন হচ্ছে হিসাবে মনে করি প্রতিটি টেবিলের একটি বর্গ, এবং তারপর প্রতিটি উদাহরণের বর্গ নির্দিষ্ট বৈশিষ্ট্য আছে. তাই, এই উদাহরণে, দৃষ্টান্ত বর্গ সারণিতে সারি হয়, এবং তারপর প্রতিটি সম্পত্তি would টেবিল একটি কলাম. সুতরাং, আমি চাই যে ORM peewee বলা হয় ব্যবহার করতে. এটা ধরণের বোতল মত, সত্যিই ছোট. আমি মনে করি তারা ভাল একসঙ্গে যেতে পারে মনে, কিন্তু অন্যান্য ORMs অনেক আছে আপনি ব্যবহার করতে পারেন. আরো একটি জনপ্রিয় এক SQLAlchemy হিসাবে পরিচিত, এবং আমি কেন আমি মূলত মনে করতে পারেন না , SQLAlchemy ওভার peewee নেওয়া হয়েছে অথবা আমি আপনাকে কেন আমি বলতে হবে এটি সেরা এক মনে, কিন্তু আমরা শুধু এই ব্যবহার করতে যাচ্ছেন এক আমি এটা কিভাবে ব্যবহার করতে জানেন না. অতএব, কোন চিন্তাশীল প্রশ্ন, কেন হয় আপনি কি চান একজন ORM ব্যবহার বিরক্ত করা উচিত, পরিবর্তে শুধুমাত্র সরাসরি SQL কোয়েরি লেখা? এবং মেহমানদেরকে উত্তম যদি মনে করি, আপনি আসলে না যে হয় SQL কোয়েরি লিখতে হবে. আমি আপনাদের দেখাব হিসাবে এটি, অনেক সহজ নির্বাচন ভালো জিনিস না, সন্নিবেশ, মুছে দেওয়া, বিশেষ করে টেবিল তৈরি. এটা অনেক সহজ একটি বর্গ গঠন লিখুন, এটি গঠন করা হয় তুলনায় তৈরি ছক বিবৃতি, কিন্তু এক জিনিস , সচেতন হতে হবে যে হয় ORM তার যথাসাধ্য চেষ্টা করবে জিনিসটা কি সবচেয়ে দক্ষ SQL কোয়েরি, হবে তবে কখনও কখনও এটি ব্যর্থ পায়. আর আপনি আছেন, বিশেষ করে যদি একটি বড় ডাটাবেসের সঙ্গে কাজ, আপনি একটি নথি প্রশ্নের সাথে মিলেছে যে লক্ষ্য করা যেতে পারে যে দ্রুত করা উচিত চলমান আসলে সময় নিচ্ছে. আর আপনি এ হুড অধীন চেহারা ORM, এসকিউএল মধ্যে যে ব্যাখ্যা করা হয় এটা কিছু কাজ করা যেতে পারে সত্যিই হাস্যকর, শুধু সাজানোর এটা কারণ আপনার উদ্দেশ্য ব্যর্থ ইশারা. আর, বার যেখানে সেখানে হয়েছে আমি এটি অগ্রাহ্য করা ছিল, এবং শুধু করেছি শুধু, আমার নিজের SQL কোয়েরি চালানো এটি একটি অদ্ভুত ভাবে পার্সিং করা হয়েছিল. সুতরাং, আছে কিছু শুধু ভাবে, ওভারহেড এটি প্রনয়ন যে আপনার এসকিউএল মধ্যে ডাউন বিবৃতি. সুতরাং, আসুন এ দ্রুত সুপার যাক একটি তথ্য মডেলের একটি সহজ উদাহরণ আপনি ব্যবহার হতে পারে. সুতরাং, এই তাই পাইথন কোড, এবং হয় আপনি কি করতে চান প্রথম জিনিস থেকে হয় peewee আমদানি *. সুতরাং, বোতল, অসদৃশ আপনি যেখানে এই সব প্রতিটি মডিউল, এবং আপনি বোতল আমদানি করতে চান, এবং একটি টেমপ্লেট, এবং কিছু অন্যদের লিখুন পরে আমরা দেখতে পাবেন যে, peewee থেকে, আপনি শুধু সবকিছু আমদানি করতে পারেন কারণ এটি একটি খুবই ছোট লাইব্রেরি. সুতরাং, আপনি কি করতে চান প্রথম জিনিস, হয় আসলে এই ডাটাবেস বস্তু তৈরি. সুতরাং, আপনি ডিবি = SqliteDatabase, এবং তারপর আপনার ডাটাবেস এর নাম. এবং এই আসলে হবে একটি ডাটাবেস বস্তু তৈরি আপনি peewee সাথে, সাথে কর্মসঞ্চালন করতে পারবেন. এবং তারপর, আমরা প্রকৃত আছে আমরা তৈরি করতে চান যে মডেল. তাই টেবিলের আমরা তৈরি করতে চান. সুতরাং, peewee মধ্যে, প্রতিটি বর্গ আছে আপনার ডাটাবেসের মধ্যে নিজস্ব টেবিল. সুতরাং, ক্লাস সব বেস মডেল থেকে উত্তরাধিকারী, এবং মূলধন এম মডেল peewee সংজ্ঞায়িত হচ্ছে এমন কিছু বিষয়. সুতরাং, আপনার মডেল সব উচিত তাদের সর্বোচ্চ সুপারক্লাস হিসাবে উত্তরাধিকারী, তারা থেকে উত্তরাধিকারী উচিত মডেল, কিন্তু সত্যিই কি শীতল, আপনি আসলে আপনার থাকতে পারে না মডেল একে অপরের থেকে উত্তরাধিকারী. আর অনেক সময়, আপনার তথ্য মডেল অগত্যা না একটা চমৎকার উত্তরাধিকার অনুক্রমের করতে, কিন্তু তারা যেখানে বার, এটা সত্যিই চমৎকার আপনি মডেল আছে, কারণ একে অপরের থেকে সহজাত. সুতরাং, আমরা এই শ্রেণীর সংজ্ঞায়িত একটি মডেল আহরণ করে যা 'ছাত্র', এবং এটি তিনটি বৈশিষ্ট্য আছে. এটা যা, একটি আইডি আছে একটি PrimaryKeyField, যা দেওয়া হচ্ছে এমন কিছু বিষয় যা peewee দ্বারা নামের একটি CharField হয়, এবং একটি গ্রেড একটি IntegerField হয়. সুতরাং এই বা হতে পারে না কিভাবে CS50 আসলে সব সঞ্চয় ছাত্র 'বাংলাদেশের. এইটা নিয়া মারামারিও হয়, কিন্তু এই আমি এটা করতে হবে না. এবং তারপর এটি মধ্যে, আছে এই বর্গ, এবং এই আপনি করতে পারেন কিছু হয় পাইথন, আপনি নেস্টেড ক্লাস থাকতে পারে. আর এই কিছু হয় যে peewee দ্বারা প্রয়োজন হচ্ছে. সুতরাং, এই শ্রেণীর মেটা, আপনি ডাটাবেস যে উল্লেখ করার বস্তুর সমান আমরা উপরে নির্মিত হয়. এবং এই ফাইলটি এই টেবিল কি বলছেন আসলে অন্তর্ভুক্ত করা যাচ্ছে. সুতরাং আপনি এই আছে এমন কিছু বিষয় যা আপনার মডেলের সমস্ত মধ্যে করতে. আপনি শুধু উল্লেখ করা আছে এই মেটা শ্রেণীর মধ্যে যে ডাটাবেস ডিবি সমান. আমি আছে, তাই আমি সাধারণত, কি বিভিন্ন মডেলের একটি গুচ্ছ, আমি এক বেস আছে মডেল, আমি যে সাধারণত শুধু "বেস মডেল" কল যে মেটা বর্গ আছে, এবং এটা ডিবি সমান ডাটাবেস নির্ধারণ করা হবে. আর আমার পরবর্তী মডেলের তারপর সব যে বেস ক্লাস থেকে উত্তরাধিকার লাভ করবে. এবং তারপর আমি চিন্তা করতে হবে না মেটা বর্গ সেটিং সম্পর্কে. সুতরাং, এই আসলে পায় যখন একটি SQL বক্তব্য মধ্যে ডাউন কম্পাইল, এটা নিচে এই কদর্য জিনিস মনে হচ্ছে এখানে, ", টেবিলের ছাত্র আইডি পূর্ণসংখ্যা তৈরি " যাই হোক. আর, আমি এটা খাটো যে মনে, ঠিক এই SQL কোয়েরি, কিন্তু আপনি এখানে এই শ্রেণীর তাকান আপনি কি ঘটছে ঠিক কি দেখতে পারেন. আপনি ক্ষেত্র কি প্রকারের দেখতে পারেন তারা বলা হয় তা, আছে, এবং তাই আমি মনে করি যে এই পাইথন কোড এ খুঁজছেন তুলনায় অনেক বেশি পাঠযোগ্য এই SQL কোয়েরি লিখতে চেষ্টা. সুতরাং, যাতে আসলে ডাটাবেস ব্যবহার, আমরা পাইথন মধ্যে সংযোগ স্থাপন করতে হবে. সুতরাং, আমি সাধারণত একটি ফাংশন বলা লিখুন দুটি জিনিস আছে যে initialize_db. এটা ডাটাবেসের মধ্যে লাগে বস্তুর ডিবি এবং এটা শুধু যা প্রর্দশিত, এটা সাথে সংযোগ করে ডাটাবেসে অধ্যায় আপ. আপনি শুধু যদিও চালাচ্ছেন যদি আপনার স্থানীয় মেশিনের ওয়েবসাইট, এটা চিন্তা করার জন্য একটি সুপার বড় চুক্তি নয় সংযোগ এবং সংযোগ বিচ্ছিন্ন করা সম্বন্ধে, কিন্তু আপনি দৌড়াচ্ছে একটি ওয়েবসাইটে, আপনি নিশ্চিত যখনই একটি ব্যবহারকারী, যে করতে চাই তারা আউট বন্ধ করা হলে, আপনি সংযোগ করে ওয়েবসাইট, তারা যাতে সংযোগ বিচ্ছিন্ন আপনি সংযুক্ত মানুষের একটি গুচ্ছ আছে না আপনার ডাটাবেস আচমকা. এবং তারপর, যখন আপনি ডাটাবেসের সাথে সংযোগ, আপনি, db.create_tables কল করতে চান এবং আপনি কি চান জন্য মডেল তালিকায় টেবিল তৈরি করতে. তাই এখানে, আমি শুধু চাই এই ছাত্র জন্য এটি তৈরি. এবং তারপর, কি গুরুত্বপূর্ণ, হয় নিরাপদ = সত্য অধিকাংশ সময় উল্লেখ করুন. তাই কি এই বিবৃতি কি করব, এটা যে জন্য টেবিল তৈরি করে ছাত্র মডেল, কিন্তু শুধুমাত্র যে টেবিলের না হয়েছে থাকে ইতিমধ্যে তৈরি করা হয়েছে. যে কি নিরাপদ সুনির্দিষ্ট করে. সুতরাং এটা মুছে ফেলা হবে না আপনার বিদ্যমান টেবিল, এটি শুধুমাত্র একটি নতুন তৈরি হবে টেবিল আছে না যদি কেউ থাকে. সুতরাং, আপনি শুধু তৈরী করতে পারে টেবিল একবার এসকিউএল ব্যবহার. এবং তারপর যে ডাটাবেস বসা আছে সেখানে, এবং তারপর প্রতিটি সময় সাথে সংযোগ, তবে এটা ঠিক সাধারণত চমৎকার এই create_tables কলে করা, তাই, যে আপনি কি কখনো মুছে ফেলেন, আপনার ডাটাবেস যখন আপনি আপনার ওয়েব চালানো অ্যাপ্লিকেশন আবার, এটা পুনঃ হবে. সুতরাং, শুধু নিরাপদ নিশ্চিত করুন যে সত্য হতে পারে উল্লেখ করা হয়, অথবা আপনি শুধু আপনার তথ্য পাবেন প্রত্যেক সময় clobbered পেয়ে. এবং তারপর, আপনি শুধু কল করতে পারেন স্থাপন করা initialize_db একটি সংযোগ, এবং তৈরি টেবিল যদি প্রয়োজন হয় তাহলে. সুতরাং, সবচেয়ে বেশী ব্যবহৃত জিনিস আপনি কি করতে চান, যে বা অধিকাংশ সাধারণ জিনিস এক, আসলে কিছু সন্নিবেশ করা হয় আপনার ডাটাবেসের মধ্যে. আর তাই, বদলে হচ্ছে মধ্যে একটি সন্নিবেশ লিখতে সব দিয়ে বিবৃতি মান নির্দিষ্ট, আপনি আসলে কল করতে পারেন ছাত্র বর্গ ফাংশন. সুতরাং, আপনি একটি বর্গ যখন তৈরি যে, মডেল থেকে আহরণ করে এটা এই পদ্ধতি তৈরি হয়েছে. সুতরাং, আপনি বর্গ name.create না, এবং আপনি পরামিতি উল্লেখ আপনি প্রেরণ করতে ইচ্ছুক যে. সুতরাং, আমি কিছু ছাত্র যোগ করতে চান তাহলে আমাদের CS50 গ্রেড বই উদাহরণে, আমি এমন একজন আছে, ডেভিড রাখা হবে খুব ভাল গ্রেড, তিনি একটি 95 হয়েছে. এবং নিজেকে, যারা করছেন না এত ভাল CS50 মধ্যে, আমি একটি 50 আছে. আর তাই, সুন্দর জিনিস সম্পর্কে এই তৈরি ফাংশন কী, এটা উদাহরণস্বরূপ ফেরৎ, বা যে হয় সারি, এটা টেবিল মধ্যে নির্মিত যে, এবং তারপর, তাই আপনি একটি মধ্যে যে সংরক্ষণ পরিবর্তনশীল, এবং পরে তা দিয়ে কাজ. আপনি, কাছাকাছি পরিবর্তন করতে পারেন, যা আমি একটি উদাহরণ দেখাব. আমি না লক্ষ্য করুন আইডি উল্লেখ আছে, এটা যেহেতু কারণ PrimaryKeyField, এটি স্বয়ংক্রিয়ভাবে হবে আপনি এটা উল্লেখ না থাকলে এটা বাড়ায়. এবং, আসলে, আপনি সম্ভবত এটা উল্লেখ করা উচিত, যদি আপনি দূর্ঘটনাক্রমে হতে পারে, কারণ অন্য কেউ এর আইডি জখম. এবং আপনি করতে চান এটি অনন্য যে নিশ্চিত. সুতরাং, আসলে, সবচেয়ে আপনি কি করতে চান সাধারণ জিনিস, সম্ভবত আউট নির্বাচন করা হয় আপনি একবার ডাটাবেসের সেখানে অনেক তথ্য আছে. আর তাই, আপনি সবকিছু পেতে চান তাহলে, তাই নির্বাচন তারকা সমতুল্য ছাত্র বিবৃতি থেকে, এটা শুধু student.select হবে. এবং যে একটি অ্যারের আপনাকে ফেরত দিতে হবে ছাত্র এর সব বস্তুর সঙ্গে আপনি পুনরুক্তি যে আপনি চান. আপনি তা খুঁজে কিছু পেতে পারেন. আর বেশির ভাগ সময়ে, আপনি শুধু নির্বাচন করতে চান না, আপনি আসলে কিছু নির্দিষ্ট করতে চান. আর তাই, আপনি যা করতে পারেন চেইন একসঙ্গে এই ফাংশন কল, কিভাবে আপনি চেইন একটা ভালো এসকিউএল একসঙ্গে বিবৃতি. সুতরাং আপনি) (student.select করতে পারেন. যেখানে এই উদাহরণে. এবং তারপর, আপনি যা করতে পারেন , শর্ত উল্লেখ শুধু স্বাভাবিক পাইথন ব্যবহার বুলিয়ান জিনিস চেক করতে. সুতরাং, এই ক্ষেত্রে, আপনি চান , আপনি নির্বাচন তা সীমাবদ্ধ student.grade 50 সমান যেখানে, এবং student.name, এজরা সমান তাই যে শুধু এটা থেকে আমাকে পাবেন. এবং সত্যিই, এক লক্ষ্য সূক্ষ্ম জিনিস এখানে আপনি উল্লেখ করতে চান তাহলে, যে একটি এবং / অথবা একটি বা / অথবা, পাইথন, আপনি সাধারণত ব্যবহার করেন, আমি শব্দ "এবং" আসলে মনে কিন্তু এখানে আপনি একক এম্পারসেন্ড ব্যবহার, যা সাধারণত একটি bitwise অপারেটর, কিন্তু এই বিশেষ ক্ষেত্রে, ঠিক ভাবে peewee এটা আছে, আপনি একক ব্যবহার এম্পারসেন্ড উল্লেখ "এবং." যাও শুনে ভাল লাগল যে আমি অনেক মিশে, কিন্তু এটি আপ আসে না বাস্তবে যে অনেক. এবং তারপর, একবার আপনি সব আছে ডাটাবেস আউট ছাত্র, আপনি কাজ করেছেন একবার আপনি নির্বাচন আছেন এবং আপনার পরিধান বা যাই হোক না কেন, আপনি একটি foreach লুপ ব্যবহার করতে পারেন, শুধু, পাইথন মত স্বাভাবিক ইটারেটরের কোন ধরণের সাথে বা অ্যারে কোন ধরণের সঙ্গে. সুতরাং আপনি এর জন্য, নির্বাচন করতে পারবেন student.select এ (). যখন ত (Student.grade <75), এবং তাই এই পুনরায় টেবিলের প্রতিটি ছাত্র পুনরুক্তি যার গ্রেড, কম যা 75 এই ক্ষেত্রে, এখনও শুধু আমার নয়. এবং তারপর আপনি মধ্যে কিছু করতে পারে যে লুপ, মত আমাকে একটি ইমেইল পাঠান এবং আমাকে আসলে বলতে আমার সমস্যা সেট চালু. সুতরাং, আরেকটি বিষয় আপনি যা করতে পারেন না, এটা সত্যিই সহজ হয় টেবিলের মধ্যে সারি আপডেট করতে. সুতরাং, এখানে ফিরে মনে রাখবেন, আপনার আমি যখন ঢোকানো, আমি যে মান গ্রহণ student.create করে ফিরে, এবং আমি এজরা নামে এটি নির্ধারিত হয়. আর তাই এখন, আপনি পরিবর্তন করতে পারেন যে উদাহরণস্বরূপ মধ্যে মান, ঠিক মত আপনি একটি পাইথন স্বাভাবিক ক্লাস. তাই আপনার সেট করতে পারেন ezra.grade = 95 এবং যে স্থানীয় অনুলিপি আপডেট হবে, কিন্তু আপনি আসলে করতে চান তাহলে ডাটাবেসে যে পরিবর্তন কমিট, আপনি, ezra.save কল আছে তাই আপনি .সংরক্ষণ পদ্ধতিটিকে বলা উদাহরণস্বরূপ. আর তাই এখন, আমি সফলভাবে পরিবর্তিত হয়েছে ডাটাবেসের মধ্যে আমার নিজের গ্রেড. সুতরাং, তারপর আমি ধরা পেতে যে কথা বলা যাক ডাটাবেসের মধ্যে আমার গ্রেড পরিবর্তন. অধ্যাপক মালন সম্ভবত যাচ্ছে ক্লাস থেকে আমাকে মুছে ফেলতে চান, এবং যাতে আপনি .Delete কল করতে পারেন শুধু যে জিনিস উদাহরণস্বরূপ পদ্ধতি. আপনি চায়, তাহলে যেতে ফিরে এই লুপ মধ্যে এখানে, এবং আসলে, পরিবর্তে ইমেল সমস্ত পাঠানোর শিক্ষার্থীদের যার গ্রেড কম 75, আপনি তাদের মুছে ফেলতে চেয়েছিলেন, এই লুপ মধ্যে আপনি পারে s.delete উদাহরণস্বরূপ কল. আর আপনি যা করতে চান শেষ জিনিস, আপনি একটি সংযোগ স্থাপন যখনই হয়, এবং আপনি, আপনার কাজ সঙ্গে সম্পন্ন আপনি, db.close কল করতে চান যেখানে ডিবি যে ডাটাবেস আমরা আগে ছিল যে বস্তুর. আর আপনি যে নিশ্চিত করতে চাই সবকিছু আউট বন্ধ পায়. কুল. সুতরাং এখন, আমি একটি উদাহরণ আবেদন আছে. আমি ধরণের শুধু সবকিছু প্রাক তৈরি করেছি যাতে কোনো লাইভ কোডিং সেখানে হবে না ভুল, কিন্তু আমরা ভিতর দিয়ে হেটে যেতে পারেন এটা এবং আপনি বোতল করা হবে কিভাবে দেখতে এবং একসাথে peewee, এবং একটি সহজ অ্যাপ্লিকেশন করা. আমি CS50 গলাবাজি কল, এবং এটি একটি সহজ ব্লগ প্ল্যাটফর্ম সাজান. সুতরাং, প্রথম, আমি এটিকে চালাতে পারবেন এবং , এটা দেখে মনে হচ্ছে কি প্রদর্শন এবং তারপর আমরা কোড মধ্যে আরো সন্ধান করতে পারেন. ঠিক আছে, তাই আসুন শুধু এই চালানো যাক. আমি এই শীতল করতে পারবেন একটি সামান্য বিট ছোট. এটা মাত্র কারণ, না খুব সুন্দর আমি সিএসএস অনেক করতে না কিন্তু এটি কী এটা আছে, হয় ব্লগ পোস্ট এই ডাটাবেস, এবং এটি সমস্ত যায় তাদের, এবং এটি প্রদর্শন করবে সবচেয়ে সাম্প্রতিকতম অনুযায়ী পেজে. আর তাই এই মাত্র কিছু পোস্ট আছে আমি ডাটাবেসের মধ্যে সংরক্ষিত ছিল যে. আমরা একটি নতুন তৈরি করতে চান তাহলে পোস্ট, আমরা একটি নতুন পোস্ট যোগ করা যেতে পারে এবং আমরা এর শিরোনাম লিখতে পারেন পোস্ট, তাই কিছু ভালো CS50 সেমিনার. বাহ, সত্যিই সেমিনারে সেবন. কুল. তারপর আপনি পোস্ট টিপুন, এবং এটা করবে না হোম পৃষ্ঠা থেকে আপনাকে ফিরে পুনর্নির্দেশ, এবং তারপর আপনি দেখতে পাবেন সর্বশেষ পোস্টে যোগ করা হয়েছিল. আর আমরা এখনও আছে সব বেশী. সুতরাং এখন, এর সব মাধ্যমে পইঠা দিন কোড এবং এটা বাস্তবায়ন করা হয় কিভাবে দেখতে. সুতরাং, আমি যে let এর প্রথম জিনিস মনে , আসলে মডেল হয় কটাক্ষপাত. অনেক সময়, যখন আপনি কিছু নকশা করছেন, আপনি কিভাবে প্রথম ভাবতে চাই আপনি, আপনার তথ্য উপস্থাপন করতে যাচ্ছেন এবং তারপর যে প্রায় জিনিষ ডিজাইন, তাই যে সব ইন্দ্রিয় তোলে. এবং যে আমি আসলে কিভাবে আমি এই তৈরি ছিল যখন, তা আমি বসলেন এবং চিন্তা আমি একটি পোস্টে তা চান না. সুতরাং, এখানে, আমরা একই কাঠামো আছে আমি আগে উল্লেখ ছিল যে, আমরা ডিবি = Sqldatabase ('posts.db') না যেখানে. প্রকৃতপক্ষে, আপনি সম্ভবত চান না আপনার নাম এর ডাটাবেস হার্ড কোড. যে সম্ভবত একটি প্যারামিটার হওয়া উচিত যে হয়তো কোথাও সঞ্চিত একটি কনফিগ ফাইলে, কিন্তু এ এই মত একটি ছোট উদাহরণ, এটা যে হার্ড কোড ঠিক আছে. সুতরাং এখন, আমরা এই পোস্ট বর্গ আছে, যা বেস মডেল থেকে আহরণ করে. এবং এটা, আবার আছে আইডি = PrimaryKeyField. বাস্তবিক, আপনি কিছু উল্লেখ না করেন, তাহলে, আমি আসলে এই পরিত্রাণ পেয়েছিলাম যদি, তারপর আমরা যত্ন নিতে হবে peewee স্বয়ংক্রিয়ভাবে যে আইডি ক্ষেত্র তৈরি, এবং এটি স্বয়ংক্রিয়ভাবে এটি একটি PrimaryKey, যা আমি, কারণ সাধারণত, সত্যিই চমৎকার মনে যে, আপনি করতে চান এমন কিছু কিন্তু আমি বিশেষভাবে এটা করা চাই, শুধু তাই আমি তা সেখানে যে মনে. কিন্তু আপনি যে কিছু উল্লেখ না করেন, তাহলে, যে স্বয়ংক্রিয়ভাবে থাকবে. অতএব, আমি একটি তারিখ আছে যা একটি DateTimeField হয়, এবং সব এইসব বিভিন্ন ক্ষেত্র, আপনি যদি peewee ডকুমেন্টেশন তাকান, এটি আপনাকে বিভিন্ন একটি তালিকা দিতে হবে আপনি ব্যবহার করতে পারেন যে ক্ষেত্র ধরনের. অধিকাংশ অংশ জন্য, এটা এর অনুরূপ আপনি এসকিউএল দেখতে হবে কি. সুতরাং একটি CharField একটি, নেই VarCharFields, textfields, খুব দীর্ঘ জন্য যা হয় একটি ব্লগ পোস্টে আপনার মতো গ্রন্থে, সম্ভাব্য DateTimeFields, DoubleFields, FloatFields, যে সব ভালো জিনিস. এবং যদি আপনি অন্যান্য আর্গুমেন্ট পাস করতে পারেন এটা করার জন্য, আমি এখানে উল্লেখ করা হয়নি, যা. বলুন, উদাহরণস্বরূপ, যদি আপনি করতে চান না দুটি পোস্ট একই শিরোনাম আছে অনুমতি, আপনি উল্লেখ করতে পারে সত্য অনন্য ভালো কিছু =, এবং যে শুধু একটি অতিরিক্ত প্যারামিটার আছে এটা নিচে প্রনয়ন যখন যে ফিল্ড এসকিউএল মধ্যে, এটা উল্লেখ করা হবে এটা আছে যে অনন্য হতে. এছাড়াও আপনি ভালো কিছু নির্দিষ্ট করতে পারেন না নাল এবং সমস্ত অন্যান্য জিনিস আপনি সাধারণতঃ এসকিউএল না. সুতরাং, এই একটি চমত্কার সহজ হয় তারিখ আছে যে মডেল. DateTimeField মধ্যে, এখানে লক্ষ্য করুন, আমি ডিফল্ট কি নির্দিষ্ট. আমি এটা হতে নিদিষ্ট , datetime.datetime.now কারণ উপায় যে এই মূল্যায়ন পায়, এটা আসলে মূল্যায়ণ datetime.now যখন এটা ডাটাবেস ঢোকানো পরার. আমি চাই যে মনে এই চেক দুবার, কিন্তু আপনি তারপর, এই ভালো কিছু না হলে এটা আসলে, একবার যে মূল্যায়ন করবেন এবং তারপর তারিখসময় সবসময় একই হতে হবে. সুতরাং, আপনি কিছু করছেন, ঠিক datetimes সঙ্গে, ডবল চেক এটা যখন মূল্যায়নের যে আসলে অন্য ঢোকানো, বা পরার আপনি বিভ্রান্ত হতে পারে. শিরোনাম মাত্র হয় CharField, আছে যা আপনি প্রেরণ করতে পারেন আরো আর্গুমেন্ট নির্দিষ্ট ঠিক কতদিন আপনি এটা হতে চান, কিন্তু এখানে, সত্যিই এটা কোন ব্যাপার না. আর লেখা হতে যাচ্ছে পুরো পোস্ট লেখা, এবং যে একটি হতে যাচ্ছে আপনি চান ঠিক কারণ TextField এটি একটি চমত্কার দীর্ঘ স্ট্রিং হতে করার অনুমতি দেয়. তারপর আমরা এই মেটা আছে উপশ্রেণী যে শুধু আমরা ডাটাবেস চান যে নির্দিষ্ট করে আসলে এই মধ্যে খোলা হয় যেখানে আমরা এখানে আছে ডিবি বস্তুর হতে. এবং শেষ জিনিস আমরা আছে এখানে, শুধু এই ফাংশন আমরা চলুন যে আমাদের প্রধান অ্যাপ্লিকেশন থেকে ব্যবহার সাথে সংযোগ স্থাপন করতে ডাটাবেস আরম্ভ এটা, এবং তারপর পোস্ট টেবিল তৈরি করতে. এখন, এর প্রধান অ্যাপ্লিকেশন নিজেই তাকান. তাই এই এক বেশ বেশী আর বিট আমরা আগে দেখা করেছি যে, কিন্তু আশা খুব খারাপ নয়. সুতরাং, আমার এই প্রসারিত করা যাক. ঠিক আছে. সুতরাং, বিজ্ঞপ্তি এবং শীর্ষ আমি আমদানি অন্যান্য জিনিষ আভা বোতল থেকে আমরা না আছে সত্যিই আগে দেখা. আর আশা করছি, আমরা মধ্য দিয়ে যেতে পারেন এই একের পর এক প্রতিটি এক এবং সম্পর্কে একটু বেশি কথা তাদের, যেমন করে সাজানো. সুতরাং, আমরা, বোতল আছে এবং render_template, যা আমরা আগে দেখা করেছি এই অনুরোধটি বস্তু, আমরা কিভাবে তাকান যখন আসবে যা আমি আসলে ছিল দেখাচ্ছে যে ফর্ম কাজ করে. আপনাকে পুনঃনির্দেশিত দেয় যা পুনর্নির্দেশ ফিরে তৈরি নতুন পোস্ট থেকে মূল হোমপেজে ফিরে, এবং তারপর আপনাকে এমন কিছু বিষয় যা যা URL টি, উপর জিনিসটা যেখানে ওয়েবসাইট একটি নির্দিষ্ট পৃষ্ঠা. অতএব, পরবর্তী আমি কি জিনিস, আমি আমদানি হয় মডেল থেকে সমস্ত তথ্য আমরা শুধু এ খুঁজছেন সেটা যে ফাইল. আর, হ্যা. সুতরাং, নতুন অন্য কিছু যে আসে আপনি সঙ্গে লেনদেন করছেন আপ, বিশেষ করে উপাত্ত, আপনি উল্লেখ করতে পারেন আগে বলা পরার একটি ফাংশন যে পায় প্রতি অনুরোধ, এবং ফাংশন এই ব্যবহার, প্রতি অনুরোধ পর বলা ফাংশন প্রসাধক app.before অনুরোধ. আর তাই এই মৃত্যুদন্ড কার্যকর করা হবে যেখানেই থাকুন না কেন এই ফাংশন. এই হতে হবে তা নয় অনুরোধ করার আগে বলা, কিন্তু সাধারণত যে এমন কিছু এটা কল যুক্তিসম্মত. আপনি যাই হোক না কেন ফাংশন নির্ধারণ করা যেতে পারে আপনি, আছে নামক পেতে চান তাই আমি এই initialize_db নিদিষ্ট আমরা মডেল ফিরে ছিল যে ফাংশন ফাইল, তাই প্রতি অনুরোধ করার আগে, আপনি ডাটাবেসের সাথে সংযোগ করতে চান. ভিন্ন দুটি আছে উপায় আপনি এটা করতে পারেন. আপনিapp করতে পারেন. আমি এটা after_request বিশ্বাস. আর এর মধ্যে পার্থক্য after_request এবং teardown_request, after_request শুধুমাত্র যে ঘটবে অনুরোধ আসলে বৈধ ছিল. আর তাই, শুধুমাত্র যদি অনুরোধ, সফল হয়েছে , কিছুই ভুল হয়ে গেলে কিন্তু teardown_request একটি সফল ক্ষেত্রে ঘটবে অনুরোধ, অথবা একটি ত্রুটির ক্ষেত্রে. সুতরাং, সাধারণত, আপনি চান teardown_request ব্যবহার, আপনি কি করতে চান, যদি না বিশেষ করে ভিন্ন কিছু, একটি ত্রুটির ক্ষেত্রে. কিন্তু শুধু ডাটাবেস বন্ধ করে দেওয়ার জন্য, এটা সফল বা তা করতে ব্যর্থ হলে কিনা আমরা আপনার সংযোগ বিচ্ছিন্ন করতে চান না ডাটাবেস থেকে. সুতরাং এটা db.close, বলা হচ্ছে ডিবি বস্তুর উপর. Teardown_request যে লক্ষ্য করুন একটি ব্যতিক্রম লাগে. আসলে ছিল তাই যদি আপনি না পরীক্ষা করতে পারবেন একটি ত্রুটি এটা বন্ধকরণ ছিল যখন কিন্তু এখানে, আশা করছি, সেখানে ত্রুটি সমগ্র অনেক না হয়, তাই আমরা শুধু সাজানোর যে উপেক্ষা করছি. ঠিক আছে, এবং এটি বাকি খুব খারাপ নয়. সুতরাং, আমরা হোম পেজে যেতে হলে, আমরা এই home.html টেমপ্লেট অনুষ্ঠিত যে খোলা হবে. পাস পোস্টে হয় , ও কি এই সমান আমরা এই পোস্টে আছে মনে হয় না মডেল, তাই আমরা সব পোস্ট নির্বাচন এবং তারপর আপনি কি করতে পারেন আরেকটি বিষয়, আপনি, যেখানে দফা নির্ধারণ করা যেতে পারে আপনি কি চান একজন নির্দিষ্ট করতে পারেন দ্বারা আদেশ, এবং তাই আমরা নিতে পোস্টের সব যে তারপর নির্বাচিত পেতে, এবং আমরা তাদের অর্ডার post.date.descending. এবং যে নির্দিষ্ট হবে, যখন তারা আসলে, খসা সবচেয়ে সাম্প্রতিকতম এক খুব প্রথম এক হতে হবে. এবং তারপর, আমরা মধ্যে যে পাস home.html টেমপ্লেট, সুতরাং আসুন আসলে খুলুন সত্যিই দ্রুত যে টেমপ্লেট, এবং যে কাজ করছে তা একবার দেখে নিতে. আর এই মহান এইচটিএমএল নয় কিন্তু আশা করছি, আমরা পাইথন উপর নজর দিতে পারেন. তাই যোগ নতুন একটি লিঙ্ক আছে পোস্ট, এবং তাই এই রুট নির্দিষ্ট করে বোতল মধ্যে যে আমরা এখানে ডান, যা নির্ধারণ করুন. এই নতুন পোস্ট রুট, এবং আমরা এখানে যে পর্যন্ত নির্দিষ্ট. আর তাই যে তারপর যেতে হবে যে একটি লিঙ্ক বোতল সার্ভার মধ্যে যে রুট করার. আরো মজার বিষয় এখানে লুপ জন্য এই হয়. সুতরাং আমরা এই যে উল্লেখ পোস্ট পরামিতি, যা পাশ করা হয় render_template ফাংশন, পোস্ট এর প্রতি পোস্টের জন্য এ পাশ পরার যে বস্তু. আমরা প্রিন্ট আউট করতে চান পোস্টের শিরোনাম, H1 এ, এবং তারপর নিচে, আমরা প্রিন্ট আউট করতে চান একটি অনুচ্ছেদের মধ্যে পোস্ট টেক্সট. এবং এখানে, আমরা আসলে যা করতে পারেন পাইথন ফাংশন কল, তাই আমরা strftime কল করতে পারেন, ST- আরএফ-সময়, এবং আপনি একটি ফরম্যাট স্ট্রিং প্রেরণ করতে পারেন আপনি আউট তথ্য প্রিন্ট করতে চান. সুতরাং আপনি যা করতে পারেন যে সুন্দর সুন্দর হয় এর আসলে এই পাইথন ফাংশন কল এখানে থেকে. আপনি যদি এই বিন্যাস করতে হবে না নিয়ন্ত্রক দিকে, সত্যিই কারণ, তারিখ বিন্যাস কিছু হয় যে আপনি দেখুন মধ্যে মোকাবেলা করতে চান. আর এইসব শতাংশ সব কিছু সুপার গুরুত্বপূর্ণ নয়. আপনি ডকুমেন্টেশন সন্ধান যদি পাইথন strftime ফাংশন জন্য, তা সব এই নির্দিষ্ট করে জিনিষ, কিন্তু এর যে কিভাবে, কখন আমরা করছিলেন এখানে হোম পেজে এ, এটা একটা চমৎকার সাথে এই ফরম্যাটের তারিখ, এবং এটি নির্দিষ্ট করে আমি বা প্রধানমন্ত্রী, কিন্তু সাধারণত, আমরা যদি এখানে এই আছে কি না, আপনি সম্ভবত কিছু আবর্জনা পাবেন খুব ভাল না তাই যে তারিখ. এবং তারপর আমরা উল্লেখ post.text, আমি পাচ্ছিল কয়েক করা আছে লাইন ঠিক, এখানে বিরতি প্রতিটি পোস্টের মধ্যে কিছু শূণ্যস্থান রাখা. সুতরাং, আমি সবচেয়ে গুরুত্বপূর্ণ মনে হয় এই উদাহরণে জিনিস, আপনি লুপের জন্য এই ব্যবহার করতে পারেন. আর এই অনুরূপ জিনিষ আপনি পিএইচপি করতে পারেন. আপনি, মাধ্যমে পুনরুক্তি করতে পারেন সবকিছু সালে পাশ পরার এবং তাই, পরিবর্তে হচ্ছে না করতে কপি / পেস্ট, কপি / সব এইচটিএমএল পেস্ট আপনি শুধু একবার তারপর এটি লিখতে হবে, এবং আপনি পোস্ট সব পুনরুক্তি করতে পারেন. আর এই কিছু হয় আপনি চান যে সাধারণ আপনি অনেক তথ্য আছে, যা করতে, , যে আপনার তথ্য সবকিছুই জন্য আপনি একটি অনুরূপ জিনিস কাজ করতে চান. এবং তারপর, শুধু মনে রাখবেন, যখন আপনি যে স্পষ্টভাবে কিছু প্রিন্ট আউট করতে চান এইচটিএমএল, আপনি ব্যবহার এখানে ডবল ধনুর্বন্ধনী, কিন্তু তারপর আপনাকে নির্দিষ্ট করতে চান যখন একটি শর্ত সম্পর্কে কিছু তথ্য, বা সম্পর্কে একটি লুপ জন্য, আপনি শতাংশ বন্ধনী ব্যবহার. সুতরাং, পাইথন ফিরে যাচ্ছে কোড, যাতে ব্যাখ্যা কি প্রধান ঘটছে রুট, যখন আমরা সেখানে যাওয়ার, এটা শুধু প্রদর্শন সব পোস্ট, কিন্তু তারপর প্রশ্ন , কিভাবে আমরা আসলে পাবেন না হয় ডাটাবেসের মধ্যে পোস্ট যা একটি সামান্য বিট আরো আকর্ষণীয়. সুতরাং, যখন আপনি নিউ ক্লিক করুন আমরা এখানে দেখেছি যা পোস্ট লিঙ্ক, এটা এই ফর্ম আপনাকে পুনঃনির্দেশ. এবং যে শুধুমাত্র একটি সহজ কল render_template ফাংশন, যা পরে এইচটিএমএল ফর্ম নতুন পোস্টে প্রেরণ করা হয়. সুতরাং আসুন যে কটাক্ষপাত করা যাক. তাই এই এক বেশ সহজ. এটি একটি সহজ এইচটিএমএল ফর্ম, যা একটি অল্প পরিচিত চেহারা হবে, CS50 ফাইন্যান্স মধ্যে ফরম উপর ভিত্তি করে. আর তাই, আমরা এখানে কর্মের উল্লেখ করুন. এবং এখানে আপনি কাজ করে যাচ্ছি পিএইচপি সঙ্গে, সাধারণত, এটা ভালো কিছু হবে, create.PHP কিন্তু এখানে আমরা আসলে একটি রুট উল্লেখ বোতল সার্ভার মধ্যে. আর তাই, এই রুট অনুরূপ তৈরি যাওয়ার যাত্রাপথে আমরা এখানে আছে যা আমরা একটি দ্বিতীয় মধ্যে ঢোকা. আর তাই, আমরা যে উল্লেখ এটি একটি পোস্ট পদ্ধতি আমরা পাঠাতে চান, কারণ এই ফর্ম তথ্য, এবং সাধারণত আপনি একটি ফর্ম থেকে তথ্য প্রেরণ করছেন যখন, আপনি একটি পোস্ট অনুরোধ ব্যবহার করতে চাইবেন, আপনি শেষ পর্যন্ত না তাই ঠিক এই বড়, জবরজং URL- এর সাথে. কিন্তু আপনার কাছে একটি অনুরোধ GET ব্যবহার করতে পারে, এবং, পরিবর্তনশীল রাউটিং সঙ্গে এটি পাস কিন্তু ফর্ম জন্য, এটা চমৎকার এখানে একটি পোস্ট অনুরোধ. আর যদি তাই হয় তাহলে, আপনি চান এইচটিএমএল এবং পিএইচপি সঙ্গে কাজ করতে হবে, আপনি এই টেক্সট ইনপুট নির্দিষ্ট করতে পারেন, এবং আপনি তাদের নাম উল্লেখ করা যাবে, এবং যে পাস করবে নাম বোতল মধ্যে অনুরোধে বস্তুর মধ্যে. এবং তারপর আমরা একটি জমা আছে বাটন পোস্ট বলছেন যে. আর এখানে, পোস্ট এর নাম বাটন, এটি একটি ব্লগ পোস্টে, কারণ, কিন্তু এখানে, পোস্ট অনুরোধ পদ্ধতি. সুতরাং যারা একই শব্দ হয় কিন্তু আসলে সম্পর্কহীন. হাঁ পাইথন কোড ফিরে যাওয়া, আমরা পদ্ধতি তৈরি বলা হলে, এখানে লক্ষ্য করা যে আপনি যা করতে পারেন আসলে রুট মধ্যে উল্লেখ অনুরোধ পদ্ধতি আপনি গ্রহণ করতে চান যে, তাই এখানে, আমি যে আমি উল্লেখ শুধুমাত্র একটি পোস্ট পদ্ধতি গ্রহণ করতে চান. সুতরাং, আমি আসলে পৃষ্ঠা দেখার চেষ্টা হলে সরাসরি, একটি অনুরোধ পান ব্যবহার করা হয়, যা, এটা "পদ্ধতি অনুমোদিত নয়." আমাকে বলতে হবে আর তাই, আপনি, সাজানোর মত পেজ আছে আমি শুধুমাত্র করছি যা এই তৈরি পাতা, সত্যিই একটি উপায় হিসেবে ব্যবহার করে ফর্ম জমা করতে, যদি আপনি না করে নির্দিষ্ট করতে পারেন মানুষ সেখানে যেতে সক্ষম হতে চান সরাসরি একটি পেতে অনুরোধ মাধ্যমে, অথবা আপনি চান না যদি, কিছু কারণে, একটি পোস্ট অনুরোধ, আপনি শুধু, এখানে চলে আসো উল্লেখ পারে কিন্তু এই উদাহরণে, আমরা শুধু পোস্ট অনুরোধ বাইরে যেতে চান. সুতরাং, create_post ডাকা হয়, যখন যখন আমরা পোস্ট অনুরোধ মাধ্যমে যে দেখার আপনি যদি একটি নির্দিষ্ট যেতে যখনই রুট, এই অনুরোধটি বস্তুর আছে, এবং আমরা আমদানি করা ছিল খুব উপরের অনুরোধ, কিন্তু এই অনুরোধ আছে এ পাশ পরার যে বস্তু, এবং আপনি ফর্ম ডেটা অ্যাক্সেস করতে পারেন, যা স্বয়ংক্রিয়ভাবে পূরণ হবে আপনি একটি ফর্ম থেকে একটি অনুরোধ পাঠাতে হলে. এবং তারপর, আমি কি মনে সত্যিই শীতল, হয় ফর্ম বস্তুর প্রেরণ পেতে যে এ, মাত্র পাইথন অভিধানের খোঁজ করে থাকেন আপনি তাই এখানে access-- তাহলে, যাক রয়েছে আমার শুধু, এটা পরবর্তী এইচটিএমএল টান আপ তাই আপনি যে থাকতে পারে একটি রেফারেন্স, হ্যাঁ, তাই হিসাবে আমরা এখানে উল্লেখ যে নাম বিভিন্ন ক্ষেত্রের জন্য, তাই শিরোনাম এবং টেক্সট, আমরা তারপর শুধু এখানে উপর যারা ব্যবহার ফর্ম তথ্য মধ্যে সূচকের হিসাবে. সুতরাং যে সুপার সুবিধাজনক. তখন আমরা, post.create কল যা তৈরি ও স্বয়ংক্রিয়ভাবে সন্নিবেশ করা ডাটাবেসের মধ্যে এই নতুন পোস্ট বস্তুর. আর আমি এই ফাংশন তৈরি করি এখানে কিভাবে একটি সত্যিই শীতল উদাহরণ শক্তিশালী বোতল এবং এই সঙ্গে কাজ করছে আপনি কিছু কাজ হয়েছে কারণ পিএইচপি, আপনি থাকতে পারে বৈধতা নিয়ে অনেক কাজ, তারপর আপনি করতে হবে একটি ডেটাবেস সংযোগ স্থাপন, তারপর আপনি করতে হবে SQL কোয়েরি চালানো, কিন্তু এখানে আমরা শুধু এই সুন্দর আছে post.create, যা আমরা তখন করতে পারেন শুধু তথ্য নামা অনুরোধ বস্তুর, এবং তারপর একটি নতুন সেটিকে পাস আমরা তৈরি করছি যে পোষ্ট. আর, শেষ তারপর আমরা যা করতে চাই জিনিস, পুনর্নির্দেশ করতে হয় হোম ব্যবহারকারী ফিরে. আর তাই আমরা এই ব্যবহার বোতল ফাংশন পুনর্নির্দেশ. আর কিছু আমরা দেখা যায় না যে আগে, এই URL টি ফাংশন ছিল. সুতরাং ফাংশন জন্য URL দেয় আপনি আসলে নামে পাস আপনার পাইথন কোড একটি ফাংশন, বরং নির্দিষ্ট রুট চেয়ে যে এটি এর. তাই আমি ঠিক যেমন সহজে হতে পারে শোঁ শোঁ শব্দ করা একটি ব্যবহারকারী পুনঃনির্দেশিত, যা বাড়ি এটা ফেরত পাঠাতে, কিন্তু হবে ফাংশন চমৎকার জন্য URL ব্যবহার, আপনি পরিবর্তন যদি কারণ কিছু হয় যেখানে অবস্থান, সুতরাং আসুন আমি পরিবর্তন যে বলা যাক হোম পরিবর্তে / বাড়ীতে হতে এই এখনও তারপর ফিরে আসবে / বাড়ি, আসলে যায় এবং আপ দেখায় কারণ ফাংশনের নাম, এবং এটা আপনি যে জন্য URL ফেরত দিতে হবে. সুতরাং, সাজানোর উপর আপনি আছেন যে ধৃষ্টতা যেখানে কিছু পরিবর্তন করার সম্ভাবনা বেশি ফাংশন নাম চেয়ে, হয়. আপনি কি সত্যিই এই ব্যবহার করতে পারেন ফাংশন জন্য চমৎকার ইউআরএল. আর এক জিনিস সচেতন হতে যে, একটি সামান্য বিট প্রবঞ্চক আপনি শুধু পারে মনে করেন যে হয় জন্য লিংকটিতে পুনর্নির্দেশ কল, কিন্তু আসলে রুট সব আছে টেক্সট এবং এইচটিএমএল কিছু সাজানোর ফিরে যাও, তাই আপনি আসলে আছে পুনর্নির্দেশ কল আসতে. অন্যথা, আপনি কিছু পাবেন অবৈধ একটি স্ট্রিং ফিরে না সম্পর্কে, এই সব ফিরে আছে, কারণ এইচটিএমএল আপনি আসলে রেন্ডার করতে চান. আর তাই, আপনাকে পুনঃনির্দেশিত কল যখন, এটা পাতা আপনাকে পুননির্দেশনা কিন্তু এটি আসলে এইচটিএমএল ফেরৎ আপনি যে পুনর্নির্দেশ চালানো প্রয়োজন. হোমপেজে ফিরে যাও. তাই আমরা এই দুটি ভিন্ন মতামত আছে. আমরা বাড়ি দৃশ্য আছে. অথবা, আমি টেমপ্লেট বলতে হবে অনুমান. আমরা এই দুই টেমপ্লেট আছে, হোম টেমপ্লেট যা আমাদের পোস্ট সব প্রদর্শন করা হয়, এবং তারপর আমরা এই বিজ্ঞাপনটি জিনিস আছে, আপনি পোস্ট ক্লিক করা হলে, তা যায় বোতল মধ্যে একটি নতুন রুট, কিন্তু যে রুট অগত্যা না সংশ্লিষ্ট টেমপ্লেট আছে. আপনি দেখতে হবে না কিছু, কিন্তু আপনি এখনও করতে পারেন এই কাজ চালু আছে দৃশ্যগুলো পিছনে. এবং তারপর আপনি পুনঃনির্দেশিত পেতে হোম পেজে ফিরে. এবং স্পষ্টভাবে এটি কাজ করা সহজ টেমপ্লেট মধ্যে কিছু nicer CSS এর মধ্যে এবং এই অনেক nicer বানাতে, কিন্তু মূল যুক্তিবিজ্ঞান সব পাইথন নেই. যে উদাহরণস্বরূপ সম্পর্কে কোন প্রশ্ন? আমি অনেক আছে জানি বিভিন্ন জিনিস, সেখানে যাওয়া আমরা দেখা যায় না জিনিস অনেক আগে কিন্তু কিছু মত. হ্যা. শ্রোতা 1: আপনি কিছু করতে হবে না যে তথ্য মাজা বিশেষ ফর্ম থেকে আসছে? আমি ", তৈরি" আপনি ঠিক বলেছেন লক্ষ্য Ezra Zigmond: হ্যাঁ, তাই যে আসলে, যে সত্যিই একটি ভালো পয়েন্ট. প্রশ্ন ছিল তাই, আপনি কি পরীক্ষা এবং নিশ্চিত করতে হবে তথ্য, বৈধ নয় যে ও স্ক্রাবিং কোন ধরণের কাজ এটা বৈধ নয় যে নিশ্চিত করতে, আপনি এখানে দেখতে পারেন, কারণ, আমি যে কাজ করছি না. সুতরাং আসুন দেখুন সেখানে কি ঘটছে আমি খালি কিছু পোস্ট করতে হলে. সুতরাং, এটা আসলে শুধু একটি করতে হবে ফাঁকা পোস্টে এবং datetime পূরণ. তাই বাস্তবে, আপনি সম্ভবত ভালো কিছু করতে চান, শিরোনাম সমান হলে হয়তো উল্লেখ খালি স্ট্রিং, তাহলে এই কি না. শিরোনাম, বা, যদি শুধুমাত্র এটা কি খালি স্ট্রিং সমান নয়. সুতরাং এটা আসলে স্বয়ংক্রিয়ভাবে না যে স্ক্রাবিং যত্ন নেওয়া আপনার জন্য, যাতে আপনি এখনও যে কাজ করতে হবে. হ্যা, ভাল প্রশ্ন. শ্রোতা 2: এটি মাজা করে পরিণাম ইনজেকশন জন্য? তুমি কি জানো? Ezra Zigmond: আশা করা যায়, peewee যে. আমি এটা অবশ্যই একটি প্রশংসনীয় হতে হবে মনে হয় খারাপ লাইব্রেরি এটা যে কি না তাহলে. আমি ঠিক জানি না. আমি এ নজর চাই এটা উত্পন্ন যে প্রশ্নের. আমি একটি টাইপ করা হলে, যে মনে হয় সাজান লাগছিল যে ব্লগ পোস্ট একটি এসকিউএল ইনজেকশন আক্রমণ মত, ভালো কিছু, এই যদি একটি পাসওয়ার্ড ক্ষেত্র বা কিছু ভালো হয়, আপনি ভালো কিছু করতে পারে. আমি যে এখনও মনে করি আক্ষরিক পোস্ট পেতে, কিন্তু আমি peewee না মনে করেন যে তথ্য স্ক্রাবিং কিছু সাজানোর এটা আসলে এটা নিষ্পন্ন করার আগে. শ্রোতা 1: যে টেক্সট ফিল্ড ঠিক আছে, প্লেইন টেক্সট নিতে পরিকল্পিত? Ezra Zigmond: হ্যা, এটা হয়. হ্যা. তাই আমি সব যে মনে হয়, তাই এই হল সঠিক আচরণ, যে যে কাজ করতে হবে, কিন্তু আমি যে peewee মনে আশা কি আছে তাদের শেষ রক্ষা কিছু বাছাই. আর যদি আপনি যেমনটি ডবল চেক, যে আছে আপনি একটি নথি প্রশ্নের সাথে মিলেছে উৎপন্ন হলে উপায় আছে. তাই আপনাকে করতে হবে না সরাসরি এটি চালানো. আমি একটি নিতে চাই ডকুমেন্টেশন তাকান, কিন্তু আপনি আসলে দেখতে পারেন এটা উৎপাদিত হয় যে এসকিউএল, এবং যে কটাক্ষপাত, এবং এটা কিছু পালাচ্ছে যে নিশ্চিত. আরেকটি কারণ কেন আপনি এসকিউএল তাকান করতে চান যে peewee যদি হয়, outputting হয় কিছু সত্যিই ধীরে ধীরে যাচ্ছে হবে বলে মনে হচ্ছে আপনি কটাক্ষপাত করা এবং এটি কি দেখতে পারেন এটা কখনও কখনও কারণ আসলে, করছেন ঘটনাক্রমে যোগ করা সহজ এ, পথ আপনি এটা লিখতে, যদি আপনি দূর্ঘটনাক্রমে এটি থাকতে পারে প্রথম সম্পূর্ণ ডাটাবেস নির্বাচন, এবং তারপর কিছু সাজানোর অপারেশন করতে যে, যখন আপনি সত্যিই একটি সাবসেট নির্বাচন বোঝানো. আর তাই, কিছু যদি না হয় বেশ, ডান যাচ্ছে এটা অনুরোধ কটাক্ষপাত করা ভালো যে আসলে উত্পন্ন হচ্ছে. হ্যা. শ্রোতা 2: আপনি প্রথম যখন শুরু, আপনি 5000 পোর্ট রাখা. Ezra Zigmond: হ্যা. শ্রোতা 2: peewee সাথে ডিফল্ট মান হল অথবা আপনি পরিবর্তন করতে পারেন কিছু যে হয়? Ezra Zigmond: হ্যাঁ, তাই Port বোতল সঙ্গে ডিফল্ট. আপনি ছাড়া এটি চালানোর যদি কিছু উল্লেখ, এটি স্বয়ংক্রিয়ভাবে যে কি হবে. আমি চাই, বিশ্বাস এই চেক দুবার, কিন্তু আপনি, app.run যে নির্দিষ্ট করতে পারেন আমি, আপনি ভালো কিছু করতে পারেন মনে হয় Port = 8080. এর একটি বাস্তব দ্রুত চেষ্টা যে দিতে যাক. হ্যাঁ, তাই আপনি শুধু নির্দিষ্ট করতে পারেন Port = 8080, এবং এটি সেখানে এটি চালানো হবে যদি আপনি যেমনটি আমি মনে যা, এটি চালানোর জন্য আইডিই তে, আমি এই চেষ্টা করেন নি কিন্তু আমি মনে করি যে আপনি যদি , পোর্ট 8080 উপর এটি স্থাপিত হয় আপনি সম্ভবত সক্ষম হতে চাই সার্ভার অ্যাক্সেস করতে, শুধু আপনার ওয়েব সাইটের জন্য ভালো ছিল. হ্যা, এটা কিন্তু সহজ পরিবর্তন করার জন্য যে আপনি যদি মত-পোর্ট ফরোয়ার্ডিং কোন ধরণের আছে আপনাকে যা করতে হবে যে জিনিষ. অন্য কোন প্রশ্ন? হ্যা? শ্রোতা 1: সুতরাং, আমি দেখেছি আপনার , আপনি হিসাবে উল্লেখ করেছে যে মডেল, আপনি নির্দিষ্ট করা আছে প্রতিটি বস্তুর জন্য ডাটাবেসের. আপনি জানেন কি না, না যে আপনি যদি এটা সত্যিই সহজ করতে SQLite ডাটাবেস প্রচুর আছে আপনি এক একক ওয়েব অ্যাপ্লিকেশন ব্যবহার করতে চান, আপনি শুধু একটি গুচ্ছ উল্লেখ করতে পারে আপনার মডেল বিভিন্ন বেশী? Ezra Zigmond: হ্যা, আমার দিন বাস্তব দ্রুত যে খুলুন. আপনি করতে চান, তাই যদি আপনি, বলছে ভিন্ন কিছু একটি গুচ্ছ, হয়তো কিছু জন্য, পছন্দ এবং ছাত্র কারণ, যে ভালো কিছু? হ্যাঁ, তাই আমি মনে করি যে এখনও আপনি, প্রতিটি মডেল এখনও ঠিক আছে থাকবে এটা নির্ধারিত এক ডাটাবেস, কিন্তু যদি আপনি যেমনটি আছে বিভিন্ন মডেলের যে বিভিন্ন ডাটাবেস অবজেক্ট বরাদ্দ আছে এটা করার জন্য, আপনি স্পষ্টভাবে তা করতে পারে. সুতরাং, যদি আমি একটি নতুন সৃষ্টি এটার মতো কিছু, এবং এখন এই একটি ছাত্র হল যে আশ্চর্যের একটি ব্লগ পোস্ট দেখে মনে হচ্ছে আমি যে উল্লেখ পারে ডাটাবেস এখানে db_2 সমান. সুতরাং, আমি মনে করি যে আপনি তা করতে পারে প্রধান উপায়. কুল. অন্য কোন প্রশ্ন? তাই অল্পমাত্র আপ শেষ করার বিট, এখানে কিছু সংস্থান, এবং এই স্লাইড অনলাইনে পোস্ট করা হবে যাতে আপনি আসলে এই লিঙ্ক থেকে পেতে পারেন. শ্রেষ্ঠ সম্পদ সত্যিই হয় বোতল জন্য ডকুমেন্টেশন এবং নিজেদের peewee. তারা সত্যিই ভাল লেখা করছি, আমি মনে করি. সুতরাং, বোতল ওয়েবসাইট এখানে, এবং তারা একটি quickstart টিউটোরিয়াল আছে একই ভিতর দিয়ে হেটে যেতে হবে আমি মাধ্যমে পদচারণা কি জিনিষ, কিন্তু আপনি পর্যালোচনার কোন ধরণের চান আমি উপর গিয়েছিলাম যে জিনিস, অথবা আপনি আমার ব্যাখ্যা বলে মনে করা একটি বিভ্রান্তিকর ভাবে কিছু, তারা সেখানে একই উদাহরণ আছে করব. Peewee ডকুমেন্টেশন আছে, এবং তারা একটি quickstart টিউটোরিয়াল আছে যে প্রধান পরামিতি উপর যায় আপনি ব্যবহার করতে চান যে. সুতরাং, কিছু আমি সঙ্গে সম্পর্কে সায়ীদ অনন্য, এবং নির্দিষ্ট অক্ষমতা, ক্ষেত্র বিভিন্ন প্রকারের যে আপনি ঐ সমস্ত হতে পারে, ব্যবহার করতে পারেন. এছাড়াও, আপনি যদি peewee সম্পর্কে প্রশ্ন, এবং আপনি, StackOverflow তাদের পোস্ট আসলে peewee তৈরি লোক যারা যায় এবং কখনো কখনো সেই উত্তর. আপনি আশা একটি প্রশ্ন, থাকে তিনি উত্তর দিতে সক্ষম হবেন তিনি গোটা ব্যাপারটাই লিখেছে, কারণ. আমি যে সবকিছু মনে আমি আবরণ চেয়েছিলেন. খুঁজে আসার জন্য ধন্যবাদ.