পাইথন কি কেবল ওয়েবসাইট তৈরির ক্ষেত্রে ব্যাকकेন্ড তৈরি করার জন্য?


4

পাইথন দ্বারা নির্মিত কোনও ওয়েবসাইট আমি দেখিনি যে ওয়েবসাইটটির ইউআরএল শেষে .py রয়েছে। আমি শুধু দেখেছি index.htmlএবং index.php, কিন্তু কখনও কখনও তাই হিসাবে কিছুই নেই। আমি জানি আপনি .htaccess -file দ্বারা কোনওরকমে শেষটি লুকিয়ে রাখতে পারেন।

আমি এর কারণ জানতে চাই।

কেন কোনও ওয়েবসাইট .py দিয়ে শেষ হচ্ছে না?


5
অজগর +++
pavsaund

1
একটি সম্পর্কিত প্রশ্ন এ এখন হয় stackoverflow.com/questions/1185248/...
Léo লেয়পল হের্ৎস 준영

উত্তর:


4

সাধারণত পিএইচপি স্ক্রিপ্টগুলি সরাসরি অ্যাক্সেস করা হয়, একইভাবে কোনও সিজিআই স্ক্রিপ্টের মতো - মূলত আপনি কোনও নিয়মিত ফাইলের মতো স্ক্রিপ্ট অ্যাক্সেস করেন তবে ওয়েব সার্ভার এই অনুরোধটিকে বাধা দেয়, স্ক্রিপ্টটি চালায় এবং ফাইলের সামগ্রীর পরিবর্তে আউটপুট ফেরত দেয়।

বেশিরভাগ পাইথন ফ্রেমওয়ার্কগুলির নিজস্ব রাউটিং সিস্টেম রয়েছে, যেখানে আপনি এমন কিছু সংজ্ঞায়িত করেন ..

urls = (
    ('^/article/(\d+)$', ArticleController),
    ('^/user/(.+?)$', UserController)
)

..আপনি এমন কিছু অ্যাক্সেস করবেন ..

http://example.com/router.py?uri=article/123

..এবং এটি URL- ম্যাপিং সংজ্ঞায়িত মাধ্যমে চালানো হবে করা urls, এবং সঠিক ক্লাসে অনুরোধ পাঠাতে ... কিন্তু না থাকার router.pyআপনার সব URL গুলি অংশগ্রহণ একটু ন্যক্কারজনক তাই আপনি ব্যবহার mod_rewriteপুনর্নির্দেশ করতে /(.*)করতে /router.py/$1(হয় মাধ্যমে .htaccess, আপনার এ্যাপাচি কনফিগারেশন ইত্যাদি)

আপনি পিএইচপি, বা অন্য যে কোনও ভাষাতে একেবারে একই জিনিস করতে পারেন - ঠিক এইভাবে কোডইগিনিটার কাজ করে (একটি পিএইচপি ফ্রেমওয়ার্ক)

আপনি যদি পুরোপুরি উন্মাদ হয়ে থাকেন তবে আপনি ব্যবহার করতে পারেন বা কোনও কিছুতে mod_rewriteমানচিত্র তৈরি /user/(\d+).pyকরতে /ViewController.php?id=$1পারেন তবে পৃষ্ঠায় নকল এক্সটেনশন যুক্ত করার কোনও অর্থ নেই (মূলত পিছনের দিকের সামঞ্জস্যতা এবং কিছু এপিআই-তে বিভিন্ন ফর্ম্যাটে ডেটা অ্যাক্সেসের অনুমতি দেওয়া)

পাইথন ব্যবহার করে আপনি "পিএইচপি উপায় "ও করতে পারেন, আপনি যদি প্রতিটি পৃষ্ঠা পৃথক সিজিআই স্ক্রিপ্ট হিসাবে লিখেন তবে সর্বাধিক পাইথন ফ্রেমওয়ার্কগুলি উপরে বর্ণিত এমভিসি (বা এমভিসি-জাতীয়) সেটআপ ব্যবহার করার ঝোঁক রাখে ..


17

একটি ভাল ইউআরএল প্রযুক্তিগুলির থেকে স্বাধীন হতে পারে, সুতরাং একটি। Php বা .py বা .rb এক্সটেনশন এমন কিছু যা প্রতিরোধ করা যায়। বেশিরভাগ ক্ষেত্রে, পাইথন ফ্রেমওয়ার্কগুলি (টার্বোগার্সের মতো) সমস্ত ইউআরএল পার্সিং পরিচালনা করে এবং ব্যাকগ্রাউন্ডে যে অজগর প্রোগ্রামটি চালিত হয় এটি তার সমস্ত পরামিতিগুলি একটি দুর্দান্ত ডেটা স্ট্রাকচারে পেয়ে যায়, সুতরাং আপনি সেই ক্ষেত্রে কোনও ফাইল এক্সটেনশন দেখতে পাবেন না।

টিম বার্নার্স-লি দ্বারা "শীতল ইউআরআইগুলি পরিবর্তন হয় না" দেখুন


8

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

তবে .pyএক্সটেনশন সহ সাইট রয়েছে (গুগলের বেশ কয়েকটি অংশে এটি রয়েছে)।

আরও ভাল প্রশ্ন জিজ্ঞাসা করা হয়, কেন বেশিরভাগ এএসপি.এনইটি এবং পিএইচপি ব্যবহারকারীরা এক্সটেনশনগুলি রাখার জন্য জোর দিয়ে থাকেন?


আপনার উত্তর আমাকে পরামর্শ দেয় যে পিএইচপি এবং এএসপি.নেটের চেয়ে পাইথনের এক্সটেনশানটি থেকে মুক্তি পাওয়া আরও সহজ। --- কোন পাইথন মডিউল কার্যকারিতা সরবরাহ করে?
লিও লোপল্ড হার্টজ 준영

2
@ মাসি: এমন কোনও মডিউল নেই যা এক্সটেনশানটি সরাতে নির্দিষ্ট কিছু করে। আসলে পাইথনে মুক্তি পাওয়ার মতো কোনও এক্সটেনশন নেই। এটিকে অন্য উপায়ে বলতে গেলে ইউআরএল-এর এক্সটেনশানটির ফাইলের বর্ধনের সাথে মিল থাকার দরকার নেই। সুতরাং যদি আপনার ওয়েব অ্যাপ্লিকেশন .py ফাইলগুলি থেকে তৈরি হয় তবে আপনার ইউআরএলগুলি .py এ শেষ হওয়ার কোনও কারণ নেই। আপনি যদি পিএইচপি ব্যবহার করেন তবে এটি বোধগম্য হবে না, যেহেতু পিএইচপি URL এর এক্সটেনশানটিকে ফাইলের এক্সটেনশনের সমান হতে বাধ্য করে (ভাল, আপনি এটির চারপাশেও কাজ করতে পারেন তবে এটি বিশেষত সোজা নয়); আমার ধারণা এএসপিতেও এটি একই রকম।
ডেভিড জেড

3

আপনার কম্পিউটারে যা স্থানান্তরিত হয় তা হ'ল এইচটিএমএল (সম্ভবত সিএসএস এবং জাভাস্ক্রিপ্ট কোড সহ)। সিএসএস এবং জাভাস্ক্রিপ্ট প্রতি সেফ প্রদর্শিত হয় না, সুতরাং আপনি সেই এক্সটেনশনগুলি দেখতে পাচ্ছেন না। এইচটিএমএল হ'ল প্রদর্শিত সামগ্রী, যাতে আপনি .html এক্সটেনশানটি সিল করতে অভ্যস্ত।

এখন, কে খেয়াল করে না যে এইচটিএমএল নথিটি নোটপ্যাডে ম্যানুয়ালি লেখা হয়েছে বা গতিশীলভাবে কিছু প্রোগ্রামের সাথে একত্র করা হয়েছে যা ঠিক ০.১ সেকেন্ড আগে চলেছে run এটা কোন পার্থক্য।

পিএইচপি প্রায়শই এই উপায়ে ফ্লাইটে এইচটিএমএল নথি তৈরি করতে ব্যবহৃত হয়। পিএইচপি প্রোগ্রাম দ্বারা তৈরি করা এইচটিএমএল নথিগুলিতে। Php এক্সটেনশন যুক্ত করা প্রথাগত এবং এর বেশি অর্থ নয় mean শেষ ব্যবহারকারী ব্রাউজারে একটি HTML ডকুমেন্ট দেখে।

ওয়েব সার্ভারের কোনও তথ্যের প্রয়োজন কীভাবে এইচটিএমএল ডকুমেন্টটি সার্ভার করতে হয় - ডিস্ক থেকে একটি হস্তনির্মিত এইচটিএমএল ডকুমেন্ট পড়ুন? কিছু পিএইচপি প্রোগ্রাম চালিয়ে একটি তৈরি করবেন? .pp এক্সটেনশনটি একটি ইঙ্গিত হিসাবে ব্যবহার করা যেতে পারে। এটি কেবল একটি সার্ভার কনফিগারেশন বিষয়।

আপনি যদি অজগর দিয়ে ওয়েব পরিবেশন করতে আগ্রহী হন, তবে প্রকল্পের জাঙ্গো দেখুন


3

অজগরের ওয়েব অ্যাপস / ওয়েবসাইটগুলি করার জন্য (সম্ভবত) সবচেয়ে জনপ্রিয় কাঠামো, জ্যাঙ্গো অজগর ফাংশনগুলিতে ইউআরএল-ম্যাপিং ব্যবহার করে, সুতরাং আপনি যখন অনুরোধ /url/করবেন তখন আসলে এটি এমন কোনও ফাংশনকে কল করবে যা সেই ইউআরএলে অনুরোধগুলি পরিচালনা করার জন্য বরাদ্দ করা হয়েছে। অন্য কথায়, url এবং .py ফাইলগুলির মধ্যে 1-থেকে 1 ম্যাপিং নেই।

আপডেট (প্রতি মন্তব্য):

একটি টিপিক্যাল পিএইচপি ওয়েবসাইটে ইউআরএল কিছু দেখতে চাইবে /path/to/file.phpএবং এই অনুরোধের ভিত্তিতে ওয়েবসার্ভার পিএইচপি ফাইল চালায় এবং তার ফলাফলটি এইচটিটিপি রেসপন্স হিসাবে ফিরিয়ে দেয় ।

জ্যাঙ্গোতে, ফর্মটির একটি ইউআরএল /path/of/url/কাঠামো দ্বারা আটকানো হয়, এটি আসলে কোনও ফাইলের সাথে সামঞ্জস্য নয়, এটি HTTP রিকুয়েস্টের একটি সাধারণ অংশ , এবং জ্যাঙ্গো ফ্রেমওয়ার্কটিতে একটি url-প্রেরণ প্রক্রিয়া রয়েছে যা একটি url কে একটি সাধারণ মানচিত্রের মানচিত্র দেয় has ফাংশন। যদি এটি এমন কোনও ইউআরএল হ্যান্ডেল করার জন্য নির্ধারিত কোনও ফাংশন খুঁজে পায়, তবে এটি কল করবে এবং ফাংশনটি ফিরে আসার জন্য এইচটিটিপি প্রতিক্রিয়া ফিরিয়ে দেবে।

http://docs.djangoproject.com/en/dev/topics/http/urls/


আপনি কি এমন কোনও ভিডিও / গাইড / কোড-উদাহরণ জানেন যা 1-থেকে -1 ম্যাপিংয়ের আপনার পয়েন্টটি দেখায়? আপনার অর্থ কী তা আমি শিখতে চাই।
লিও লোপল্ড হার্টজ 준영


1

আপনার প্রশ্নের সাথে সরাসরি সম্পর্কিত নয়, কেবল পাইথন দিয়ে ওয়েবসাইট তৈরি করা হয় না। আমি বিশ্বাস করি ইভিই অনলাইনের জন্য সম্পূর্ণ এআই ইঞ্জিন (একটি এমএমপি স্পেস গেম) লেখা রয়েছে বিশ্বাস করি।


1

এছাড়াও

গুগল অনুসন্ধান .py

9 ম ফল http://schmidt.nuigalway.ie/cs103/python/graphics.py

কমপক্ষে একটি ওয়েবসাইট যা একটি ফাইলের সাথে .py এ শেষ হয় - সম্ভবত আরও রয়েছে।


1
এটি কোনও ওয়েবসাইট নয়: এটি একটি পোস্ট স্ক্রিপ্ট।
টেলিমাচুস


1

এই পার্থক্যটি বেশিরভাগ ক্ষেত্রে অনুরোধটি প্রেরণ করার কারণে ঘটে।

যে ফাইলগুলি একটি ফাইল এক্সটেনশান দেখায় সেগুলি বেশিরভাগই সরাসরি ফাইল সিস্টেমের মাধ্যমে প্রেরণ করে। আপনি যখন কোনও ইউআরএল পাথ দেখতে পান তখন /example/index.phpওয়েব সার্ভারটি exampleনথির মূলের নীচে ডিরেক্টরিতে চলে যায় , index.phpফাইলটি খোলে এবং এর বিষয়বস্তু সম্পাদন করে (কিছুটা সরলকরণ করে)। যেহেতু তারা ফাইল সিস্টেমের মধ্য দিয়ে যাচ্ছেন, তাই তাদের এক্সটেনশন সহ পুরো ফাইল নাম ব্যবহার করার ঝোঁক রয়েছে।

যে ওয়েবসাইটগুলি কোনও ফাইল এক্সটেনশান দেখায় না সেগুলি বেশিরভাগভাবে অন্য কোনও উপায়ে প্রেরণ করা হয়। উদাহরণস্বরূপ, জাঙ্গোতে , কোডটিতে ইউআরএল পাথ ম্যাপিংয়ের একটি টেবিল রয়েছে (কিছুটা সরলকরণ করা) যা অনুরোধটি প্রক্রিয়া করবে। যেহেতু এখানে ইউআরএল পাথ এবং ফাইল সিস্টেমের পাথের মধ্যে কোনও সম্পর্ক নেই তাই ম্যাপিংটি সম্পূর্ণ স্বেচ্ছাচারিত হতে পারে এবং "জাল" এক্সটেনশন যুক্ত করার কোনও কারণ নেই।

প্রথম ক্ষেত্রে ব্যতিক্রম আছে; উদাহরণস্বরূপ, mod_rewriteআপনি ইউআরএল পাথটি পুনরায় তৈরি করতে পারবেন, সহজেই কোনও ফাইল এক্সটেনশন লুকিয়ে রাখবেন (এটি খুব সাধারণ)।

পাইথনের সাথে প্রায়শই প্রথম দেখা না যাওয়ার কারণটি হ'ল পাইথনের সাথে সাইট তৈরি করার সময় বেশিরভাগ লোক ওয়েব ফ্রেমওয়ার্ক ব্যবহার করেন, যা তাদের নিজস্ব প্রেরণ করে। এটি পিএইচপি ( ড্রপাল একটি সাধারণ পিএইচপি ফ্রেমওয়ার্ক) এর সাথেও সাধারণ , তবে পাইথনের চেয়ে পিএইচপি-র সাথে "স্ট্যান্ডলোন" পৃষ্ঠা তৈরি করা (ফ্রেমওয়ার্ক ছাড়াই) আরও সাধারণ।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.