গুগল অ্যাপ ইঞ্জিনের জন্য ফ্লাস্ক বনাম ওয়েবঅ্যাপ 2


116

আমি নতুন গুগল অ্যাপ ইঞ্জিন অ্যাপ্লিকেশন শুরু করছি এবং বর্তমানে দুটি ফ্রেমওয়ার্ক বিবেচনা করছি: ফ্লাস্ক এবং ওয়েবঅ্যাপ 2 । আমি বরং পূর্ববর্তী অ্যাপ ইঞ্জিন অ্যাপ্লিকেশনটির জন্য অন্তর্নির্মিত ওয়েব অ্যাপ্লিকেশন কাঠামোটি নিয়ে সন্তুষ্ট, তাই আমার মনে হয় ওয়েব অ্যাপ 2 আরও ভাল হবে এবং এতে আমার কোনও সমস্যা হবে না।

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

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

এবং ফলো-আপ প্রশ্ন হিসাবে: ফ্লাস্কে এমন কোনও হত্যাকারী-বৈশিষ্ট্য রয়েছে যা আপনি মনে করেন যে আমার সমস্যার মুখোমুখি হতে পারে এবং আমার যে সমস্যার মুখোমুখি হতে পারে তা সত্ত্বেও আমাকে এটি ব্যবহার করতে সক্ষম করে?


আমি ওয়েবঅ্যাপ 2 সম্পর্কে খুব বেশি কিছু জানি না তবে আমি কয়েক মাস ধরে ফ্লাস্ক ব্যবহার করছি এবং আমি এটি পছন্দ করি। আমি ফ্ল্যাশ প্লাগইনগুলি পেয়েছি যা আমাকে সত্যিকার অর্থে সাহায্য করেছিল যেমন flask-babelএকাধিক ভাষা সমর্থন, এবং flask-seasurfআমার ফর্মগুলি সুরক্ষিত করার জন্য সিএসআরএফ সহায়তার জন্য।
ThePloki

উত্তর:


138

দাবি অস্বীকার : আমি টিপফাই এবং ওয়েবঅ্যাপ 2 এর লেখক।

ওয়েব অ্যাপ্লিকেশন (বা এর প্রাকৃতিক বিবর্তন, ওয়েবঅ্যাপ 2) দিয়ে স্টিক করার একটি বড় সুবিধা হ'ল আপনার পছন্দের কাঠামোর জন্য আপনাকে বিদ্যমান এসডিকে হ্যান্ডলারের জন্য নিজস্ব সংস্করণ তৈরি করতে হবে না।

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

অন্যান্য হ্যান্ডলারের ক্ষেত্রেও একই ঘটনা ঘটে: ব্লবস্টোর (ওয়ার্কজিগ এখনও রেঞ্জের অনুরোধগুলি সমর্থন করে না, তাই আপনি নিজের হ্যান্ডলার তৈরি করলেও ওয়েবওব ব্যবহার করতে হবে - tipfy.appengine.blobstore দেখুন ), মেল, এক্সএমপিপি এবং আরও, বা ভবিষ্যতে এসডিকে অন্তর্ভুক্ত থাকা অন্যরা।

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

সুতরাং, এমনকি যদি আপনি আলাদা কাঠামো চয়ন করেন তবে আপনি ক) কিছু বিশেষ ক্ষেত্রে ওয়েব অ্যাপ ব্যবহার করে বা খ) নির্দিষ্ট এসডিকে হ্যান্ডলার বা বৈশিষ্ট্যগুলির জন্য আপনার সংস্করণগুলি তৈরি এবং বজায় রাখতে হবে, যদি আপনি সেগুলি ব্যবহার করেন।

আমি অনেকটা ওয়ারবজেগকে WebOb এর চেয়ে বেশি পছন্দ করি, তবে এক বছরেরও বেশি সময় ধরে SDK হ্যান্ডলারগুলির সংস্করণগুলি পোর্টিং এবং রক্ষণাবেক্ষণের পরে যা টিপফাইয়ের সাথে নেটিভভাবে কাজ করে, আমি বুঝতে পেরেছি যে এটি একটি হারানো কারণ - দীর্ঘ মেয়াদে জিএই সমর্থন করা, সবচেয়ে কাছাকাছি থাকা ভাল ওয়েবঅ্যাপ্লিকেশনটি / WebOb। এটি এসডিকে গ্রন্থাগারগুলিকে বাতাসের জন্য সহায়তা করে, রক্ষণাবেক্ষণ অনেক সহজ হয়ে যায়, এটি আরও ভবিষ্যতের প্রমাণ হিসাবে নতুন লাইব্রেরি এবং এসডিকে বৈশিষ্ট্যগুলি বাক্সের বাইরে কাজ করবে এবং একই অ্যাপ ইঞ্জিন সরঞ্জামগুলির আশেপাশে কাজ করা একটি বৃহত সম্প্রদায়ের সুবিধা রয়েছে।

একটি নির্দিষ্ট ওয়েবঅ্যাপ 2 প্রতিরক্ষা এখানে সংক্ষিপ্তসারিত হয় । ঐ যোগ করুন যে webapp2 App ইঞ্জিন বাইরে ব্যবহার করা যেতে পারে এবং জনপ্রিয় মাইক্রো-অবকাঠামো মত চেহারা কাস্টমাইজ করা সহজ এবং আপনি বাধ্যকারী কারণের একটি ভাল সেট এটি জন্য যেতে হবে। এছাড়াও, ওয়েবঅ্যাপ 2 এর ভবিষ্যতের এসডিকে রিলিজে অন্তর্ভুক্ত করার একটি বড় সুযোগ রয়েছে (এটি অতিরিক্ত আধিকারিক, আমাকে উদ্ধৃত করবেন না :-) যা এটি এগিয়ে নিয়ে যাবে এবং নতুন বিকাশকারী এবং অবদান আনবে।

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


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

3
@ সুন্দর এটি যে কোনও ডাব্লুএসজিআই-কমপ্লায়েন্ট ওয়েব সার্ভারে চলতে পারে। অ্যাপাচি এর জন্য কোড . google.com/p/modwsgi এবং অন্যান্য রয়েছে।
মোড়গুলি

4
@ মোরেস: এই উত্তরটি কি এখন পুরানো? আমি দেখতে পাচ্ছি যে GAE SDK ফ্লাস্ককে সমর্থন করে। ওয়েব অ্যাপ 2 এখনও আরও ভাল পছন্দ?
নিশ

1
@ শনি, রেফারেন্স যে GAE SDK ফ্লাস্ককে অফিসিয়ালি সমর্থন করে?
এনকেশ

15
কেবল একটি নোট, যদিও এটি উত্তরাধিকার হিসাবে গৃহীত উত্তর, ওয়েবঅ্যাপ 2 ডেভলপমেন্ট মারা গেছে। আমি বলব ফ্লাস্ক হ'ল উপায়।
জেসি

13

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

এই মেইলিং তালিকা থ্রেড বিভিন্ন টেমপ্লেট লিঙ্ক:

http://flask.pocoo.org/mailinglist/archive/2011/3/27/google-app-engine/#4f95bab1627a24922c60ad1d0a0a8e44

এবং এখানে ফ্লাস্ক / অ্যাপ ইঞ্জিন সংমিশ্রণের জন্য নির্দিষ্ট একটি টিউটোরিয়াল রয়েছে:

http://www.franciscosouza.com/2010/08/flying-with-flask-on-google-app-engine/

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


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

2
@ অ্যান্টন, বিষয়গত ব্যক্তিগত অভিজ্ঞতার জন্য অনুরোধ করা প্রশ্ন জিজ্ঞাসা না করার জন্য এসও নির্দেশিকাগুলির খুব কাছাকাছি ।
জেমস

9
@ জামেস - একমত না আমি আপনার অনুমান, অনুমান বা বিষয়গত অনুভূতি সম্পর্কে আপনাকে জিজ্ঞাসা করি না। আমি তোমার অভিজ্ঞতা, অর্থাত সম্পর্কে সম্পর্কে জিজ্ঞাসা ঘটনা যে আপনার অসংশয়ে জানি। অপ্রচলিত পোস্ট নয়, বা ভারী কাস্টমাইজেশনের সময় অন্যান্য ব্যক্তিরা যে সমস্যার মুখোমুখি হয়েছেন, ঠিক তা নয়। একমত হবেন না - ঠিক আছে, এটি ফ্ল্যাগ করুন।
আন্তন মোইসিয়েভ

3

আমার জন্য ওয়েবঅ্যাপ 2-এর সিদ্ধান্ত নেওয়া সহজ হয়েছিল যখন আমি আবিষ্কার করেছি যে ফ্লাস্ক কোনও বস্তু-ভিত্তিক কাঠামো নয় (প্রথম থেকেই), যখন ওয়েবঅ্যাপ 2 একটি খাঁটি অবজেক্ট ওরিয়েন্টেড কাঠামো। ওয়েব অ্যাপ্লিকেশন সমস্ত অনুরোধহ্যান্ডারদের জন্য মেথড বেসড ডিসপ্যাচিংকে স্ট্যান্ডার্ড হিসাবে ব্যবহার করে (যেমন ফ্ল্যাশ ডকুমেন্টেশন এটিকে কল করে এবং মেথডভিউতে ভি0.7 থেকে এটি প্রয়োগ করে)। ফ্লাস্কে থাকা মেথডভিউগুলি অ্যাড-অন হ'ল এটি ওয়েবঅ্যাপ 2 এর মূল নকশার নীতি। সুতরাং আপনার সফ্টওয়্যার ডিজাইন দুটি ফ্রেমওয়ার্ক ব্যবহার করে ভিন্ন দেখাবে। উভয় ফ্রেমওয়ার্ক আজকাল jinja2 টেম্পলেট ব্যবহার করে এবং মোটামুটি একইরূপে বৈশিষ্ট্যযুক্ত।

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

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

  1. http://flask.pocoo.org/docs/0.10/views/#method-based-dispatching
  2. https://webapp-improved.appspot.com/guide/handlers.html
  3. https://webapp-improved.appspot.com/guide/handlers.html#overriding-dispatch

এটাই, ওওপি সমর্থন আমাকে জিতল। আমি মূলত ওয়েব.পি ব্যবহার করি তবে ওয়েব অ্যাপ্লিকেশনগুলিতে ওয়েব.পাই.এর মতো কার্যকারিতা ছাড়াই ঝরঝরে কাঠামো আছে বলে মনে হচ্ছে। ফ্লাস্ক শুরু করা সহজ হতে পারে তবে আপনি যদি আরও বড় অ্যাপ্লিকেশন তৈরি করার পরিকল্পনা করেন তবে এর চেয়ে বেশি আপনার প্রয়োজন
আহমদ মুজাক্কি

2

আমি মনে করি গুগল অ্যাপ ইঞ্জিন আনুষ্ঠানিকভাবে ফ্লাস্ক কাঠামো সমর্থন করে। এখানে একটি নমুনা কোড এবং টিউটোরিয়াল রয়েছে -> https://console.developers.google.com/start/appengine?_ga=1.36257892.596387946.1427891855


আমার কাছে, এটি অফিসিয়াল সমর্থন নয়, এটি কেবল উদাহরণ "আপনি এটি ফ্লাস্কের সাথেও করতে পারেন"-স্টাইল। ওয়েবঅ্যাপ 2 এর জন্য, এখানে এবং সেখানে যোগ করা GAE- নির্দিষ্ট আইটেমগুলির সাথে এখনও বিশদ ম্যানুয়াল রয়েছে।
সিলপোল

2

আমি ওয়েবঅ্যাপ 2 চেষ্টা করিনি এবং খুঁজে পেলাম যে টিপফাইটি ব্যবহার করা কিছুটা কঠিন ছিল কারণ এটির জন্য সেটআপ স্ক্রিপ্ট প্রয়োজন এবং এটি তৈরি করে যা আপনার পাইথন ইনস্টলেশনটি ডিফল্টের চেয়ে অন্যটিতে কনফিগার করে। এই এবং অন্যান্য কারণে আমি আমার বৃহত্তম প্রকল্পটি কোনও কাঠামোর উপর নির্ভর করে না এবং এর পরিবর্তে আমি প্লেইন ওয়েবআপ ব্যবহার করি সেশনের সক্ষমতা অর্জনের জন্য বেকার নামক লাইব্রেরি যুক্ত করুন এবং জ্যাঙ্গো ইতিমধ্যে অনেকগুলি ব্যবহারের ক্ষেত্রে শব্দের জন্য অনুবাদগুলি বিল্টিন তৈরি করেছে যাতে একটি বিল্ডিংয়ের সময় স্থানীয় অ্যাপ্লিকেশন জাঙ্গো ছিল আমার বৃহত্তম প্রকল্পের জন্য সঠিক পছন্দ। প্রোডাক্ট পরিবেশে প্রকল্পের সাথে আমি যে 2 টি অন্যান্য ফ্রেমওয়ার্ক নিযুক্ত করেছি তা হ'ল GAEframework.com এবং web2py এবং সাধারণত এটি মনে হয় যে একটি কাঠামো যুক্ত করা যা এর টেম্পলেট ইঞ্জিনটি পরিবর্তন করে পুরানো এবং নতুন সংস্করণের মধ্যে অসঙ্গতি সৃষ্টি করতে পারে।

সুতরাং আমার অভিজ্ঞতাটি হ'ল আমি যদি আমার প্রকল্পগুলিতে আরও উন্নত ব্যবহারের মামলাগুলি সমাধান না করি তবে আমি ফাইলের কাঠামো যুক্ত করতে নারাজ হচ্ছি (ফাইল আপলোড, মাল্টি আথ, অ্যাডমিন ইউআই 3 আরও উন্নত ব্যবহারের মামলার উদাহরণ যা এই মুহুর্তে জিএইএর জন্য কোনও কাঠামো নেই) ভাল পরিচালনা করে

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