python - bangla - পাইথন প্রোগ্রামিং বই pdf download



পাইথন REST(ওয়েব পরিষেবাদি) ফ্রেমওয়ার্ক সুপারিশ? (11)

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

এখানে সুপারিশ যোগ করুন বিনা দ্বিধায় দয়া করে। :)


Answer #1

2010 সালে, পাইলন এবং repoze.bfg সম্প্রদায়গুলি Pyramid তৈরির জন্য "বাহিনীতে যোগদান করেছিল", একটি ওয়েব ফ্রেমওয়ার্ক যা repoze.bfg এ সর্বাধিক ব্যাপকভাবে ভিত্তিক। এটি তার পিতামাতার কাঠামোর দর্শনের বজায় রাখে, এবং পুরাতন পরিষেবাগুলির জন্য ব্যবহার করা যেতে পারে। এটি একটি চেহারা মূল্য।


Answer #2

আমরা অত্যাধুনিক ওয়েব সেবা জন্য Django ব্যবহার করছি।

মনে রাখবেন - বক্সের বাইরে - Django আমাদের প্রয়োজনের জন্য পর্যাপ্ত প্রমাণীকরণের দাগ ছিল না। আমরা Django-REST ইন্টারফেস ব্যবহার করেছি, যা অনেক সাহায্য করেছিল। [আমরা আমাদের নিজস্ব ঘূর্ণায়মান করেছি কারণ আমরা এতগুলি এক্সটেনশান তৈরি করেছি যে এটি একটি রক্ষণাবেক্ষণের দুঃস্বপ্ন হয়ে উঠেছে।]

আমাদের কাছে দুটি ধরণের URL রয়েছে: "এইচটিএমএল" ইউআরএল যা মানব-ভিত্তিক HTML পৃষ্ঠাগুলিকে বাস্তবায়ন করে এবং "জেসন" URL গুলি যা ওয়েব পরিষেবাদি ভিত্তিক প্রসেসিং বাস্তবায়ন করে। আমাদের দেখুন ফাংশন প্রায়ই এই মত চেহারা।

def someUsefulThing( request, object_id ):
    # do some processing
    return { a dictionary with results }

def htmlView( request, object_id ):
    d = someUsefulThing( request, object_id )
    render_to_response( 'template.html', d, ... )

def jsonView( request, object_id ):
    d = someUsefulThing( request, object_id )
    data = serializers.serialize( 'json', d['object'], fields=EXPOSED_FIELDS )
    response = HttpResponse( data, status=200, content_type='application/json' )
    response['Location']= reverse( 'some.path.to.this.view', kwargs={...} )
    return response

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

jsonView ফাংশন সব খুব অনুরূপ, যা একটু বিরক্তিকর হতে পারে। কিন্তু এটি পাইথন, সুতরাং এটি একটি কলযোগ্য ক্লাসের অংশ তৈরি করুন বা এটির সাহায্যকারী সজ্জা লেখার জন্য তৈরি করুন।


Answer #3

আমি Django ব্যবহার করছি আপনি django-tastypie বিবেচনা করতে পারেন django-tastypie বিকল্প হিসাবে। পিস্টন থেকে অ-ওআরএম ডাটা উত্সগুলিতে সুর করা সহজ, এবং এতে দুর্দান্ত documentation


Answer #4

আমি দৃঢ়ভাবে TurboGears বা বোতল সুপারিশ:

TurboGears:

  • django চেয়ে কম verbose
  • আরো নমনীয়, কম এইচটিএমএল ভিত্তিক
  • কিন্তু: কম বিখ্যাত

রহমান:

  • খুব দ্রুত
  • শিখতে খুব সহজ
  • কিন্তু: সহজ এবং পরিপক্ক না

Answer #5

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

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

একটি ওয়েব ফ্রেমওয়ার্ক নির্বাচন করা একটি কঠিন সিদ্ধান্ত, এবং আমি একটি REST api প্রকাশ করতে শুধুমাত্র একটি সম্পূর্ণ স্ট্যাক সমাধান বাছাই করা এড়াতে হবে।

এখন, যদি আপনি সত্যিই Django ব্যবহার করতে চান, তাহলে পিস্টন django অ্যাপ্লিকেশনের জন্য একটি চমৎকার REST ফ্রেমওয়ার্ক।

যে বলেন, CherryPy সত্যিই খুব সুন্দর দেখায়, কিন্তু REST চেয়ে আরপিসি মনে হয়।

নমুনাগুলিতে দেখছি (আমি কখনও এটি ব্যবহার করি নি), সম্ভবত যদি REST এর প্রয়োজন হয় তবে সম্ভবত ওয়েবপৃষ্ঠাটি সর্বোত্তম এবং পরিচ্ছন্ন।


Answer #6

আমি সত্যিই CherryPy পছন্দ। এখানে একটি বিশ্রামপূর্ণ ওয়েব পরিষেবা একটি উদাহরণ:

import cherrypy
from cherrypy import expose

class Converter:
    @expose
    def index(self):
        return "Hello World!"

    @expose
    def fahr_to_celc(self, degrees):
        temp = (float(degrees) - 32) * 5 / 9
        return "%.01f" % temp

    @expose
    def celc_to_fahr(self, degrees):
        temp = float(degrees) * 9 / 5 + 32
        return "%.01f" % temp

cherrypy.quickstart(Converter())

এই আমি CherryPy সম্পর্কে সত্যিই কি পছন্দ জোর দেয়; এটি এমন একটি সম্পূর্ণ কাজ যা এমনকি ফ্রেমওয়ার্কটি জানেন না এমন একজনকেও বোঝা যায়। আপনি যদি এই কোডটি চালান, তবে আপনি অবিলম্বে আপনার ওয়েব ব্রাউজারে ফলাফল দেখতে পারেন; যেমন http://localhost:8080/celc_to_fahr?degrees=50 আপনার ওয়েব ব্রাউজারে 122.0 প্রদর্শন করবে।


Answer #7

একটি RESTful API ডিজাইন করার সময় সতর্কতা অবলম্বন করা GET এবং POST এর সম্মতি হয়, যেমন তারা একই জিনিস। Django এর ফাংশন-ভিত্তিক মতামত এবং CherryPy ডিফল্ট CherryPy সাথে এই ভুলটি করা সহজ, যদিও উভয় ফ্রেমওয়ার্কগুলি এখন এই সমস্যার ( শ্রেণী-ভিত্তিক মতামত এবং MethodDispatcher ) প্রায় একটি উপায় সরবরাহ করে।

HTTP- ক্রিয়াগুলি REST এ খুব গুরুত্বপূর্ণ , এবং যদি না আপনি এটি সম্পর্কে খুব সতর্ক হন, তবে আপনি একটি REST বিরোধী-প্যাটার্নের মধ্যে পড়ে যাবেন।

web.py , flask এবং বোতল এটি সঠিক কিছু কাঠামো। mimerender লাইব্রেরির সাথে মিলিত হলে (সম্পূর্ণ প্রকাশ: আমি এটি লিখেছি), তারা আপনাকে চমৎকার সুন্দর ওয়েবসাইটগুলি লিখতে দেয়:

import web
import json
from mimerender import mimerender

render_xml = lambda message: '<message>%s</message>'%message
render_json = lambda **args: json.dumps(args)
render_html = lambda message: '<html><body>%s</body></html>'%message
render_txt = lambda message: message

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

class greet:
    @mimerender(
        default = 'html',
        html = render_html,
        xml  = render_xml,
        json = render_json,
        txt  = render_txt
    )
    def GET(self, name):
        if not name: 
            name = 'world'
        return {'message': 'Hello, ' + name + '!'}

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

পরিষেবার লজিক শুধুমাত্র একবার প্রয়োগ করা হয় এবং সঠিক উপস্থাপনা নির্বাচন (শিরোনাম স্বীকার করুন) + সঠিক রেন্ডার ফাংশন (বা টেমপ্লেট) প্রেরণ করা একটি সুশৃঙ্খল, স্বচ্ছ উপায়ে করা হয়।

$ curl localhost:8080/x
<html><body>Hello, x!</body></html>

$ curl -H "Accept: application/html" localhost:8080/x
<html><body>Hello, x!</body></html>

$ curl -H "Accept: application/xml" localhost:8080/x
<message>Hello, x!</message>

$ curl -H "Accept: application/json" localhost:8080/x
{'message':'Hello, x!'}

$ curl -H "Accept: text/plain" localhost:8080/x
Hello, x!

আপডেট (এপ্রিল ২01২) : জ্যাঞ্জো-এর ক্লাস-ভিত্তিক মতামত, চেরিপির মেথডডিসপারচার এবং ফ্লাস্ক এবং বোতল ফ্রেমওয়ার্ক সম্পর্কিত আরও তথ্য। প্রশ্ন জিজ্ঞাসা করা হয় যখন ফিরে অস্তিত্ব।



Answer #9

সব ধরণের পাইথন ওয়েব ফ্রেমওয়ার্কগুলি এখন RESTful ইন্টারফেসগুলি বাস্তবায়ন করতে পারে।

Django জন্য, সুস্বাদু এবং পিস্টন ছাড়া, django-rest-framework উল্লেখযোগ্য একটি প্রতিশ্রুতিশীল। আমি ইতিমধ্যে আমার প্রকল্পের একটি সহজে স্থানান্তরিত করেছি।

Django REST ফ্রেমওয়ার্ক Django এর জন্য একটি লাইটওয়েট রিস্ট ফ্রেমওয়ার্ক, যা লক্ষ্য করে এটি ভাল-সংযুক্ত, স্ব-বিবরণী বিশৃঙ্খলাপূর্ণ ওয়েব API তৈরি করা সহজ করে।

দ্রুত উদাহরণ:

from django.conf.urls.defaults import patterns, url
from djangorestframework.resources import ModelResource
from djangorestframework.views import ListOrCreateModelView, InstanceModelView
from myapp.models import MyModel

class MyResource(ModelResource):
    model = MyModel

urlpatterns = patterns('',
    url(r'^$', ListOrCreateModelView.as_view(resource=MyResource)),
    url(r'^(?P<pk>[^/]+)/$', InstanceModelView.as_view(resource=MyResource)),
)

অফিসিয়াল সাইট থেকে উদাহরণটি নিন, উপরের কোডগুলি API, স্ব ব্যাখ্যা করা নথি (সাবান ভিত্তিক webservice মত) এবং এমনকি একটি বিট পরীক্ষা করার জন্য স্যান্ডবক্স সরবরাহ করে। খুব সুবিধাজনক।

লিংক: http://django-rest-framework.org/


Answer #10

Piston Django অ্যাপ্লিকেশনের জন্য RESTful APIs wirting জন্য খুব নমনীয় ফ্রেমওয়ার্ক।


Answer #11

web2py here সহজে এবং here (ভিডিও) বর্ণিত, RESTful API নির্মাণের জন্য সমর্থন অন্তর্ভুক্ত। বিশেষ করে, parse_as_rest এ দেখুন, যা আপনাকে ইউআরএল প্যাটার্ন সংজ্ঞায়িত করতে দেয় যা মানচিত্রের parse_as_rest দেয়; এবং smart_query , যা আপনাকে URL এ স্বতন্ত্র প্রাকৃতিক ভাষা প্রশ্নগুলি প্রেরণ করতে সক্ষম করে।





frameworks