একটি সাধারণ অজগর ওয়েব পরিষেবা তৈরি করার সর্বোত্তম উপায় [বন্ধ]


137

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


এটি একটি দুর্দান্ত দ্রুত নমুনা দেখায়: dreamsyssoft.com/blog/blog.php?/archives/…
ট্রাইটন ম্যান

github.com/pramttl/webipy আমি এই সরঞ্জামটি লিখেছি যা আপনার পাইথন ফাংশনকে স্বয়ংক্রিয়ভাবে ওয়েব এন্ডপয়েন্টগুলিতে রূপান্তর করে। এটি আপনার ফাংশন সংজ্ঞা উপর কিছু বিধিনিষেধ আছে, তবে এটি আপনার অজগর ফাংশনগুলির জন্য ওয়েব এন্ডপয়েন্টগুলি উত্পন্ন করার দ্রুততম উপায়। ইনফ্যাক্ট ওয়েবিপিটি জ্যাঙ্গো ব্যবহার করে তবে এটি অজানাতে আপনার সমস্ত অজগর ফাংশনগুলির জন্য জাজানো ভিউ তৈরি করে। আপনাকে কোনও "ওয়েব কোড" লিখতে হবে না।
প্রাণজাল মিত্তাল

উত্তর:


55

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

এটিতে HT- র সাথে কাজ করার জন্য প্রচুর শীতল সরঞ্জাম অন্তর্ভুক্ত রয়েছে এবং এর সুবিধা রয়েছে যে আপনি এটি বিভিন্ন পরিবেশে (সিজিআই, এফসিগি, অ্যাপাচি / মোড_উইজি বা ডিবাগিংয়ের জন্য একটি সাধারণ সরল পাইথন সার্ভার সহ) ব্যবহার করতে পারেন।


2
আমি এর জন্য ওয়ার্কজেগ ব্যবহার করে শেষ করেছি। আমি কতটা নমনীয় তা ভালবাসি। সুপারিশের জন্য ধন্যবাদ।
জেরেমি ক্যান্ট্রেল 21

1
আমি এটির কাছে যাওয়ার আগে আমি প্রায় তিনটি ওয়েব ফ্রেমওয়ার্ক চেষ্টা করেছি। এই বাক্সটি থেকে কাজ করতে পারা আমিই প্রথম। দুর্দান্ত রেক!
বেনডুন্ডি

26

ওয়েব.পিই সম্ভবত সেখানে সরল ওয়েব ফ্রেমওয়ার্ক। "বেয়ার" সিজিআই সহজ, কিন্তু এমন কোনও পরিষেবা তৈরি করার কথা আসে যা আসলে কিছু করে।

"ওহে বিশ্ব!" ওয়েব.পি অনুসারে খালি সিজিআই সংস্করণের চেয়ে বেশি দীর্ঘ নয়, তবে এটি ইউআরএল ম্যাপিং, এইচটিটিপি কমান্ড পার্থক্য এবং বিনামূল্যে কোয়েরি প্যারামিটার পার্সিং যুক্ত করে :

import web

urls = (
    '/(.*)', 'hello'
)
app = web.application(urls, globals())

class hello:        
    def GET(self, name):
        if not name: 
            name = 'world'
        return 'Hello, ' + name + '!'

if __name__ == "__main__":
    app.run()

হ্যাঁ, ওয়েব.পি দুর্দান্ত মনে হচ্ছে। এখন অবধি , ওয়েব সাইট < webpy.org > বলেছে: 500 - অভ্যন্তরীণ সার্ভার ত্রুটি অন্যথায়, আমাদের কোডটি আমার পক্ষে কাজ করে না: ... অ্যাপ্লিকেশন = ওয়েব.অ্যাপ্লিকেশন (ইউআরএল, গ্লোবাল ()) অ্যাট্রিবিউটআরার: 'মডিউল' অবজেক্ট 'অ্যাপ্লিকেশন'
বোর্তজমিয়ার

1
ওয়েব সাইট ফিরে এসেছে। টিমের কোডটি ঠিক দেখাচ্ছে বলে আপনি নিজের সংস্করণটি পরীক্ষা করতে চাইতে পারেন।
চার্লি মার্টিন

1
আমি এই মধ্যে দৌড়ে। আপনি যদি উবুন্টু চালাচ্ছেন তবে ৮.১০ সংগ্রহস্থলে যে সংস্করণটি প্রেরণ করা হয়েছে তা বেশ পুরানো। ওয়েবসাইট থেকে নতুনটি ধরুন বা Easy_install ব্যবহার করুন এবং আপনার সোনালী হওয়া উচিত।
বুভার্ড

ওয়েবপিটি.আর.এস. (অফিসিয়াল ওয়েব.পি ওয়েবসাইট) অনুসারে ইয়্যান্ডেক্স ওয়েব.পি ব্যবহার করছে (তাদের 70০ মিলিয়ন পৃষ্ঠা ভিউ / দিন রয়েছে) .. সুতরাং এটি অবশ্যই কার্যকর হবে ..
প্রোগ্রামার

এটাই আমার দরকার ছিল। সরল, সোজা পয়েন্টে এবং সহজেই ব্যবহারযোগ্য।
গুইসিম

15

পাইথন স্ক্রিপ্ট অনলাইনে পাওয়ার সহজতম উপায় হ'ল সিজিআই ব্যবহার করা:

#!/usr/bin/python

print "Content-type: text/html"
print

print "<p>Hello world.</p>"

সেই কোডটি এমন কোনও স্ক্রিপ্টে রাখুন যা আপনার ওয়েব সার্ভার সিজিআই ডিরেক্টরিতে বাস করে, এটি কার্যকর করে তোলে এবং এটি চালায়। cgiমডিউল দরকারী ইউটিলিটি যখন আপনি ব্যবহারকারীর কাছ থেকে পরামিতি স্বীকার করতে একটি নম্বর আছে।


যখন এই পদ্ধতি করতে করছেন নিশ্চিত হ্যান্ডলার সেটআপ ও Apache, উদাহরণে পাইথন স্ক্রিপ্টের জন্য উপযুক্তভাবে হল: AddHandler CGI-স্ক্রিপ্ট .cgi .pl .py
টিগন স্নাইডারের

1
পয়েন্টটি হ'ল অ্যাপাচি-এর মতো কোনও অতিরিক্ত ওয়েব-সার্ভার ছাড়াই অ্যাপ চালানো।
অ্যাস্ট্রসার্ગ

12

কাঁচা সিজিআই হ'ল এক ধরনের বেদনা, জ্যাঙ্গো হ'ল ওয়েট ওয়েট। প্রায় বেশ কয়েকটি সরল, হালকা ফ্রেমওয়ার্ক রয়েছে, যেমন চেরিপাই । এটি কিছুটা দেখার জন্য মূল্যবান।


2
চেরিপাইয়ের জন্য +1। আপনি যখন জ্যাঙ্গোর চেয়ে সহজ কিছু চান তখন এটি উপযুক্ত।
স্টিভ লশ

9

WSGI রেফারেন্স বাস্তবায়ন । আপনার পাইথন লাইব্রেরিতে এটি ইতিমধ্যে রয়েছে। এটা বেশ সহজ।


আমি যেমন বলেছিলাম, পাইথন ওয়েব প্রোগ্রামিংয়ের সাথে আমার অভিজ্ঞতাটি বেশ সীমাবদ্ধ তবে একটি ডাব্লুএসজিআই অ্যাপ্লিকেশনটি "স্ট্যান্ডেলোন" চালানো যাবে, অ্যাপাচি এর মতো কোনও ওয়েব সার্ভার ছাড়াই, তাই না?
জেরেমি কেন্ট্রেল

হ্যাঁ. সম্পূর্ণ একা একা। দুর্দান্ত কাজ করে। আপনি অ্যাপাচি বা বিশেষ সুবিধা ছাড়াই 80 পোর্ট ব্যবহার করতে পারবেন না - তবে এটি একটি ওএস সুরক্ষা সমস্যা।
এস .লট

4

আপনি যদি "ওয়েব সার্ভিস" বলতে চাইলে অন্য প্রোগ্রামগুলি সিম্পল এক্সএমএলআরপিসিএস সার্ভার দ্বারা অ্যাক্সেস করা কিছু আপনার পক্ষে সঠিক হতে পারে। সংস্করণ ২.২ থেকে এটি প্রতিটি পাইথন ইনস্টলের সাথে অন্তর্ভুক্ত রয়েছে।

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


2

আপনি যদি একটি ভাল ওয়েব কাঠামো পেয়ে থাকেন তবে জীবন সহজ। জাজানোতে ওয়েব পরিষেবাগুলি সহজ। আপনার মডেলটি সংজ্ঞায়িত করুন, দেখুন ফাংশনগুলি লিখুন যা আপনার সিএসভি ডকুমেন্টগুলি ফিরিয়ে দেয়। টেমপ্লেটগুলি এড়িয়ে যান।


2

আপনি যদি SOAP / WSDL অর্থে "ওয়েব পরিষেবা" বলতে চান তবে আপনি এটি দেখতে চাইতে পারেন পাইথন এবং এসওএপিপি ব্যবহার করে একটি ডাব্লুএসডিএল তৈরি করা


আমি সর্বাধিক অনানুষ্ঠানিক অর্থে "ওয়েব পরিষেবা" বলতে চাইছি। HTTP- র মাধ্যমে ডেটা সরবরাহ করা যা অন্য কোনও অ্যাপ্লিকেশন গ্রাস করবে। আমি যেমন প্রশ্নে বলেছি, এটি সম্ভবত সিএসভি হবে।
জেরেমি কেন্ট্রেল

ডাব্লুএসডিএল সম্ভবত সবচেয়ে মান ভিত্তিক হবে ... এবং এটি গ্রাস করা হবে ...
থুফির

1

সম্ভবত ট্যুইস্টেড http://twistedmatrix.com/trac/


ট্যুইস্টের বিরুদ্ধে আমার কিছু নেই, তবে এটি ঠিক (ভারী নির্ভরতা) থেকে দূরে থাকতে চেয়েছিলাম।
জেরেমি কেন্ট্রেল

@ জেরেমি: পাকানো ভারী নয়।
nosklo

আমি সম্মত হই যে এটি প্রথম নজরে কিছুটা দুশ্চিন্তা হতে পারে তবে আপনি 'ভারী নির্ভরতা' বলতে কী বোঝেন তা নিশ্চিত নই। এটি যতদূর আমি জানি স্ট্যান্ডার্ড পাইথন থেকে প্যাকেজগুলি ব্যবহার করে। মডিউলটির ভিতরে প্রচুর চলন্ত অংশ রয়েছে তবে সাধারণ জিনিসের জন্য আপনার খুব বেশি কিছু করার দরকার নেই।
mabbit
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.