प्रसंस्करण मार्कडाउन सर्वर पक्ष और क्लाइंट पक्ष पर पायथन के साथ प्रतिपादन - पायथन, मार्कडाउन, wysiwym

जिस तरह से हम SO फॉर्म में प्रश्न लिखते हैंएमडी संपादक की मदद। मैं जानना चाहता था कि डेटा सर्वर पर क्या और कैसे जाता है और जिस तरह से इसे सहेजा जाता है और फिर प्रस्तुत किया जाता है। जिस पाठ को मैं टाइप कर रहा हूं उसका जीवन चक्र।

मैं मार्कडाउन में, यहां टेक्स्ट टाइप करता हूं।यह सर्वर पर कैसे सबमिट किया जाता है, मेरा मतलब है कि प्रारूपण की देखभाल कैसे की जा रही है, और एक बार जब वे सहेजे जाते हैं, तो वे ग्राहक को कैसे प्रदान किए जाते हैं। आप पाइथन में ऐसा करने के बारे में कैसे जाते हैं? सबसे अच्छा अभ्यास क्या है।

उत्तर:

उत्तर № 1 के लिए 1

आमतौर पर आप यह करते हैं कि आप मार्कडाउन इनपुट को उपयोगकर्ता के रूप में टेक्स्ट के रूप में संग्रहीत करते हैं, और जब इसे प्रदर्शित करना होता है तो इसे HTML पर प्रस्तुत करें। (यदि आपको "प्रदर्शन की सख्त ज़रूरत है, तो आप हमेशा इसे कैश कर सकते हैं)।
जब आपको इसे संशोधित करने की आवश्यकता होती है, तो आप मार्कडाउन इनपुट को फिर से संशोधित करते हैं, HTML नहीं।

अजगर में एचटीएमएल रूपांतरण -> HTML रूपांतरण करने के लिए, आप इसका उपयोग कर सकते हैं Markdown पुस्तकालय।

आप वास्तव में HTML को वापस मार्कडाउन में बदलना नहीं चाहते हैं (मार्कडाउन HTML के रूप में समृद्ध स्वरूपण के रूप में नहीं है, इसलिए आप कुछ स्वरूपण खो सकते हैं), लेकिन पायथन लाइब्रेरी html2text आउटपुट वैध मार्कडाउन के साथ होता है - आप यह गारंटी नहीं दे सकते कि मार्कडाउन स्वयं आपके प्रारंभिक एचटीएमएल में परिवर्तित हो जाएगा!


फिर भी, कृपया ध्यान रखें कि ग्राहक द्वारा सबमिट किए गए डेटा को आउटपुट करते समय, आपको सुरक्षा जोखिमों को ध्यान में रखना चाहिए क्रॉस साइट स्क्रिप्टिंग। आप एक उदाहरण देख सकते हैं यह Django टिकट
आप जा सकते हैं यह security.stackexchange.com प्रश्न अधिक जानकारी के लिए।

असल में, पायथन मार्कडाउन पुस्तकालय (दूसरों के बीच) में सुरक्षा की कमी ने भूमिका निभाई है django.utils.markup Django 1.5 में बहिष्कृत किया जा रहा है


संबंधित सवाल
सबसे लोकप्रिय