2010-06-03 6 views
5

मुझे वेबपी पसंद है, यह वास्तव में काफी पाइथनिक है लेकिन मुझे यूआरएल मैपिंग्स जोड़ने और कक्षा बनाने के लिए पसंद नहीं है, आमतौर पर इसके अंदर केवल 1 फ़ंक्शन के साथ। मुझे कोड टाइपिंग और प्रोटोटाइप को तेज़ करने में दिलचस्पी है।Web.py की तुलना में अधिक कुशल वेब ढांचा? बेहद पायथनिक कृपया!

क्या किसी के पास बॉबी, नागारे, बोतल, फ्लास्क, डेनिड, चेरीपी जैसे वेबपी की अच्छी चीजों के प्रेमी के लिए कोई सुझाव और आने वाले सुझाव हैं?

क्या यह एक अच्छा कारण बनाता है?

इसके अलावा मुझे टेक्स्ट आधारित टेम्पलेटिंग सिस्टम को अनुपलब्ध (दृढ़ता से) याद नहीं है, मैं ऑब्जेक्ट उन्मुख HTML पीढ़ी का उपयोग करता हूं। कोड कुछ इस तरह देखने के लिए सक्षम होना चाहिए:

def addTask(task): 
    db.tasks.append({'task':task,'done':False}) 
    return 'Task Added' 
def listTasks(): 
    d = doc() 
    d.body.Add(Ol(id='tasks')) 
    for task in db.tasks: 
     taskStatus = 'notDoneTask' 
     if task.done: taskStatus = 'doneTask' 
     d.body.tasks.Add(Li(task.task,Class=taskStatus)) 
    return d 

न्यूनतर CherryPy पल में एक मजबूत दावेदार की तरह लग रही है। क्या आखिरी मिनट दूसरे से बचाएगा?

+0

मैं थोड़ा उलझन में हूं कि आप अपने उदाहरण में सूचीबद्ध कार्यों में यूआरएल से कैसे प्राप्त करेंगे। –

+0

चेरीपी उदाहरण देखें, यह फ़ंक्शन नामों का एक ही सहज ज्ञान युक्त मैपिंग है। तो/listTasks कार्यों को दिखाएगा। –

+0

आह, मैं देखता हूं। मुझे लगता है कि आप एक ही चीज़ प्राप्त करने के लिए कुछ आत्मनिरीक्षण जादू कर सकते हैं, लेकिन यह निश्चित रूप से एक कठिन समाधान है। –

उत्तर

9

Flask, आर्केन रोनाकर का माइक्रोफ्रेमवर्क वर्कज़ुग, जिनजा 2 और अच्छे इरादों के शीर्ष पर बनाया गया है (हालांकि आप जो भी टेम्पलेटिंग इंजन पसंद करते हैं, या बिल्कुल भी नहीं), यूआरएल बहुत संक्षेप में मैपिंग करता है।

@app.route("/") 
def index(): 
    return """Hello, world. <a href="/thing/spam_eggs">Here's a thing.</a>""" 

@app.route("/thing/<id>") 
def show_thing(id): 
    return "Now showing you thing %s."%id 
    # (or:) return render_template('thing.html', id = id) 

शायद यही वह है जिसे आप ढूंढ रहे हैं?

+0

धन्यवाद। यह वेबपी के मुकाबले थोड़ा कम टेक्स्ट डुप्लिकेशन है लेकिन मैं बेहतर करना चाहता हूं। मैंने प्रश्न में एक उदाहरण जोड़ा। –

6

चेरीपी आपको रेगेक्स के बजाय पेड़ में हैंडलर को हुक करने की अनुमति देता है। web.py कहाँ लिख सकते हैं:

urls = (
    '/', 'Index', 
    '/del/(\d+)', 'Delete' 
) 

class Index: 
    def GET(self): ... 

class Delete: 
    def POST(self, id): ... 

बराबर CherryPy होगा:

class Delete: 
    def POST(self, id): .... 

class Index: 
    del = Delete() 
    def GET(self): ... 

तुम भी CherryPy में पूरी तरह से वर्गों के साथ बांटना कर सकते हैं:

def delete(id): ... 
def index(): ... 
index.del = delete 
+0

धन्यवाद fumanchu, मुझे विशेष रूप से वर्गीकृत उदाहरण पसंद है। मैंने प्रश्न में भी एक उदाहरण जोड़ा। –

1

मैं webpy का एक उपयोगकर्ता था । और हाल ही में, मुझे django मिला है, और मुझे लगता है कि यह बहुत अच्छा है। आप बस अपने व्यापार तर्क पर ध्यान केंद्रित कर सकते हैं और ढांचा आपके लिए अधिकतर चीजें करेगा।

+0

मैं सख्ती से अधिक हल्के विकल्पों की तलाश में हूं। अगर डैंजो की एमवीसी प्रणाली फ्यूमंचू के गैर-एमवीसी उदाहरण के रूप में हल्के वजन के रूप में थी, तो यह एक दावेदार हो सकता है। मैं Django के बारे में अच्छी तरह से जानता हूं, और इसके आगे जाने की तलाश में हूं, इसलिए मेरे सिर में प्रोटोटाइप और वास्तव में विकसित होने के लिए कम सामान फिट होना है। सरलता और मिश्रण और मैच शायद यहां कुंजी हैं। मैं आवश्यक न्यूनतम कीस्ट्रोक की तलाश में हूं। –

+0

नागारे, उदाहरण के लिए Django से बहुत करीब हो सकता है हालांकि यह चेरीपी के रूप में मिश्रण और मैच के रूप में नहीं हो सकता है। http://www.nagare.org –

+0

Django के साथ, आप मॉडल और टेम्पलेट्स के साथ बांट सकते हैं, और केवल वे दृश्य हैं जो URLConf के साथ मैप किए गए हैं। कोड को कम करने के लिए पूरी तरह से सहायक तरीके और कक्षाएं प्रदान करते समय, आपको लिखने के लिए आवश्यक कोड के संबंध में Django बहुत हल्का हो सकता है। –