2012-06-27 15 views
12

मैंने बोतल दस्तावेज़ीकरण पढ़ा है लेकिन मुझे कई फाइलों के साथ बोतल का उपयोग करने का उदाहरण नहीं मिल रहा है। नीचे मैंने किया है और यह काम कर रहा है लेकिन मुझे यकीन नहीं है कि यह जाने का उचित तरीका है (मैंने merge() और mount() एपीआई में देखा लेकिन यह सुनिश्चित नहीं है कि वे इससे संबंधित हैं या नहीं)। कृपया मुझे टिप्पणियां दें।एकाधिक फाइलों के साथ बोतल ढांचे

  1. all.py

    #! /usr/bin/python 
    from bottle import route, run 
    
    import hello1 
    import hello2 # if I have 10 files, it will be 10 imports 
    
    run(host='localhost', port=8080, debug=True) 
    
  2. hello1.py (यह चलाने के लिए मुख्य फ़ाइल है)

    #! /usr/bin/python 
    from bottle import route, run 
    
    @route('/hello1') 
    def hello1(): 
        return "Hello world no.1" 
    
  3. hello2.py

    #! /usr/bin/python 
    from bottle import route, run 
    
    @route('/hello2') 
    def hello2(): 
        return "Hello world no.2" 
    

उत्तर

2

यदि आप अपना कोड 10 पायथन मॉड्यूल में विभाजित करते हैं, तो आप 10 आयात करने जा रहे हैं। आप __import__ साथ पुनरावृति कर सकते हैं:

for i in range(1, 11): 
    __import__('hello%d' % i) 

लेकिन यह मुझे एक अच्छा विचार के रूप में हड़ताल नहीं करता है। आप को माइक्रो-फ्रेमवर्क के साथ 10 मॉड्यूल क्यों चाहिए?

+1

मुझे लगता है कि इससे कोई फर्क नहीं पड़ता कि यह माइक्रो-फ्रेमवर्क है। यदि मैं एक वेब एपीआई बना रहा हूं और मैंने अपने डीबी में 20 टेबल और प्रत्येक टेबल प्रकार के मानचित्र एक संसाधन में कहा है और मैं स्वतंत्र फाइलों में प्रत्येक तालिका के लिए अनुरोध हैंडलर और संबंधित ओआरएम रखना चाहता हूं, तो यह सही तरीका नहीं होगा कर दो? मैं पाइथन और बोतल दोनों के सापेक्ष नया हूं इसलिए अगर मैं गलत हूं तो मुझे सही करें। – Pankaj

1

आप प्रति दृश्य एक मॉड्यूल क्यों रखना चाहते हैं? विचारों को आम तौर पर, कुछ तार्किक ढंग से वर्गीकृत किया है उदा .:

  • /, /post/:id, /tags /, /tag/:tagblog.py में,
  • /admin, /admin/newpost, /admin/editpost/:idadmin.py में,
  • और इसके आगे।

आपको फ्लास्क दस्तावेज़ से अध्याय Becoming Big भी पढ़ना चाहिए। एक मध्यम आकार एप्लिकेशन के लिए, आप शायद इस के समान एक लेआउट के साथ एक पैकेज बनाने के लिए चाहता हूँ:

/yourapplication 
    /runserver.py 
    /yourapplication 
     /__init__.py 
     /views.py 
     /static 
      /style.css 
     /templates 
      layout.html 
      index.html 
      login.html 

भी बड़ा ऐप के लिए, एक उप पैकेज में विभाजित बार देखा गया।

9

मैं सूक्ष्म अनुप्रयोगों के सूट की सेवा करने के लिए एक एकल बोतल सर्वर का उपयोग करना चाहता हूं और चिंताओं के सभ्य अलगाव के लिए, जो आप खोज रहे हैं वह करना चाहते हैं।

rootApp.py (आपका मुख्य फ़ाइल)

from bottle import Bottle 
from clientApp import clientApp 

rootApp = Bottle() 
@rootApp.route('/') 
def rootIndex(): 
    return 'Application Suite Home Page' 

if __name__ == '__main__': 
    rootApp.merge(clientApp) 
    rootApp.run(debug=True) 



clientApp:

यहाँ कैसे मैं अपने काम के लिए संकल्प लिया है।py

from bottle import Bottle 

clientApp = Bottle() 

@clientApp.route('/clientApp') 
def clientAppIndex(): 
    return 'Client App HomePage' 


मुझे यकीन है कि अगर यह यह करने के लिए सबसे अच्छा तरीका है नहीं कर रहा हूँ (नए एप्लिकेशन सूट में मर्ज करने की जरूरत), लेकिन यह शिकायतों के बिना काम करने लगता है और करने की परेशानी की बचत होती है share ports between applications पर जो अन्यथा आपसी ज्ञान हो सकता है। दृष्टिकोण वास्तव में एक डिजाइन वरीयता से बाहर निकलता है लेकिन अगर कोई प्रदर्शन कर सकता है तो मैं आभारी हूं कि ऐपस्टैक का उपयोग उसी परिणाम के लिए कैसे किया जा सकता है।

संबंधित मुद्दे