2009-04-17 8 views
14

क्या चेरीपी का उपयोग वेब सर्वर के रूप में करने का कोई आसान तरीका है जो कुछ फ़ोल्डर में .html फ़ाइलों को प्रदर्शित करेगा? सभी CherryPy परिचयात्मक प्रलेखन कहा गया है कि सामग्री गतिशील रूप से उत्पन्न होता है:स्थिर फाइलों के लिए वेब सर्वर के रूप में चेरीपी का उपयोग कैसे करें?

import cherrypy 
class HelloWorld(object): 
    def index(self): 
     return "Hello World!" 
    index.exposed = True 
cherrypy.quickstart(HelloWorld()) 

यह HelloWorld.index() विधि के बजाय index.html उपयोग करने के लिए किसी भी आसान तरीका है?

उत्तर

31

यह सरल कोड: http://docs.cherrypy.org/stable/progguide/files/static.html

Btw, यहाँ अजगर के साथ HTTP पर वर्तमान निर्देशिका साझा करने के लिए एक आसान तरीका है वर्तमान निर्देशिका पर फाइलों की सेवा करेगा।

import os 
import cherrypy 

PATH = os.path.abspath(os.path.dirname(__file__)) 
class Root(object): pass 

cherrypy.tree.mount(Root(), '/', config={ 
     '/': { 
       'tools.staticdir.on': True, 
       'tools.staticdir.dir': PATH, 
       'tools.staticdir.index': 'index.html', 
      }, 
    }) 

cherrypy.quickstart() 
+8

चेरीपी 3.2 के साथ, मुझे 'cherrypy.quickstart() '' cherrypy.engine.start' में बदलना पड़ा() 'और 'cherrypy.engine.block()' सामग्री से पहले सेवा की जाएगी। – technomalogical

+0

चेरीपी 3.6 के साथ आपको 'cherrypy.engine.start()' और 'cherrypy.engine.block() ' –

7

यहाँ CherryPy साथ स्थैतिक सामग्री की सेवा में कुछ जानकारी है:

 
# Python 3 
$ python -m http.server [port] 

# Python 2 
$ python -m SimpleHTTPServer [port] 
+0

मुझे सरल एचटीटीपीएस सर्वर के बारे में पता है, लेकिन चेरीपी के साथ एक ही चीज़ करना बहुत दिलचस्प है। दुर्भाग्यवश, ट्यूटोरियल स्थिर सामग्री के रूप में किसी भी .html फ़ाइल की सेवा करने के बारे में कुछ भी नहीं कहता है - केवल पूर्वनिर्धारित .css फ़ाइलें :( – grigoryvp

+0

आप किस प्रकार की फाइलों की सेवा कर रहे हैं, इसका कोई परिणाम नहीं होना चाहिए, इसे HTML फ़ाइलों के साथ भी काम करना चाहिए। Http: // www.cherrypy.org/wiki/StaticContent#Servingfilesthroughthestaticdirtool। एक और लिंक: http://www.nabble.com/How-do-I-serve-up-static-file-pages--td20897705.html – codeape

+1

विकी लिंक बदल गया http://docs.cherrypy.org/stable/progguide/files/static.html –

-1
# encode: utf-8 

import cherrypy 
WEB_ROOT = "c:\\webserver\\root\\" 

class CServer(object) : 
    @cherrypy.expose 
    def do_contact(self, **params): 
     pass 

cherrypy.server.socket_port = 80 
# INADDR_ANY: listen on all interfaces 
cherrypy.server.socket_host = '0.0.0.0' 
conf = { '/': 
    { 'tools.staticdir.on' : True, 
    'tools.staticdir.dir' : WEB_ROOT, 
    'tools.staticdir.index' : 'index.html' } } 
cherrypy.quickstart(CServer(), config = conf) 
+0

क्या होगा यदि आपके पास do_contact नामक फ़ाइल है? वह फ़ाइल होगी डाउनलोड करना असंभव है? – nosklo

+0

यह उदाहरण से था, ऐसा लगता है कि मुझे गुमराह किया गया था और ओवरराइड करने के लिए किसी प्रकार की आंतरिक फ़िल्टर विधि के लिए 'do_contract' लिया :) – grigoryvp

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