फ्लास्क में स्थिर फाइलों की सेवा कैसे करें

| | | | | | | | | | | | | | | | | | | | |

तो यह शर्मनाक है। मेरे पास एक एप्लिकेशन है जिसे मैंने फ्लास्क में एक साथ फेंक दिया है और अभी के लिए यह सीएसएस और जेएस के कुछ लिंक के साथ केवल एक स्थिर HTML पृष्ठ की सेवा कर रहा है। और मुझे दस्तावेज़ीकरण में कहां नहीं मिल रहा है फ्लास्क स्थिर फ़ाइलों को वापस करने का वर्णन करता है। हां, मैं render_template का उपयोग कर सकता था लेकिन मुझे पता है कि डेटा टेम्पलेट नहीं किया गया है। मैंने सोचा होगा कि send_file या url_for सही बात है, लेकिन मैं उन्हें काम पर नहीं ला सका। इस बीच, मैं फाइलें खोल रहा हूं, सामग्री पढ़ रहा हूं, और उपयुक्त माइमटाइप के साथ एक <कोड>प्रतिक्रिया में हेराफेरी करना:

फ्लास्क आयात फ्लास्क से os.path आयात करें, प्रतिक्रिया ऐप = फ्लास्क (__name__) app.config.from_object(__name__) def root_dir(): # pragma: नो कवर रिटर्न os.path.abspath(os.path.dirname(__file__)) def get_file(filename): # pragma: नो कवर ट्राई: src = os.path.join(root_dir(), फ़ाइल नाम) # यह पता लगाएं कि फ्लास्क स्थिर फाइलें कैसे लौटाता है # कोशिश की: # - render_template # - send_file # यह इतना गैर-स्पष्ट रिटर्न ओपन (src) नहीं होना चाहिए। IOError को छोड़कर ex: वापसी str (exc) @app। मार्ग ("/", विधियाँ = ["GET"]) def मेट्रिक्स (): # प्राग्मा: कोई कवर सामग्री नहीं = get_file ("jenkins_analytics.html") वापसी प्रतिक्रिया (सामग्री, माइमटाइप = "पाठ/एचटीएमएल") @app .route("/", defaults={"path": ""}) @app.route("/<path:path>") def get_resource(path): # pragma: नहीं कवर mimetypes = { ".css": "text/css", ".html": "text/html", ".js": "application/javascript", } complete_path = os.path। join(root_dir(), path) ext = os.path.splitext(path)[1] mimetype = mimetypes.get(ext, "text/html") content = get_file(complete_path) रिटर्न रिस्पांस (सामग्री, mimetype=mimetype ) अगर __name__ == "__main__": # pragma: कोई कवर नहीं app.run(port=80) 

कोई इसके लिए कोड नमूना या यूआरएल देना चाहता है? मुझे पता है कि यह बहुत आसान होने वाला है।