2010-09-10 13 views
6

मैं अभी कुछ समय से इस विचार से टकरा रहा हूं, लेकिन लोगों ने इसे करने पर कोई जानकारी नहीं देखी है। मेरे पास एक छोटी वेबसाइट प्रोजेक्ट है जहां मुझे 1 ऑब्जेक्ट लोड और संशोधित करने की आवश्यकता है। यह वस्तु बहुत सरल है, और कुछ केबी से अधिक नहीं होनी चाहिए। इस छोटी मात्रा में डेटा के लिए डीबी चलाने के बजाय, इस डेटा को सहेजने के लिए केवल pickle और/या shelve का उपयोग क्यों न करें, और इसे लोड करें? मैं प्रोजेक्ट के लिए बोतल या फ्लास्क जैसे माइक्रो वेब फ्रेमवर्क का उपयोग करने की योजना बना रहा हूं।क्या पाइथन पिकल संचालित वेबसाइट बनाने में कुछ गड़बड़ है?

क्या डेटा लोड करने के लिए इस विधि का उपयोग नहीं करने के कोई कारण हैं? अपाचे शुरू होने पर यह केवल अचार फ़ाइल लोड करेगा, इसलिए मुझे नहीं लगता कि गति प्रभावित होगी (एक डीबी पूछताछ से तेज़)।

किसी भी इनपुट के लिए धन्यवाद!

+0

अचार का उपयोग क्यों करें? सरल सादा पाठ क्यों नहीं? ऑब्जेक्ट के लिए पायथन स्रोत कोड क्यों नहीं? ऑब्जेक्ट को चुनने के लिए खुद को सीमित क्यों करें? –

+1

क्या SQLite की तरह कुछ उपयोग करने का कोई कारण नहीं है? –

+1

@ एसएलओटी ऑब्जेक्ट में उप-ऑब्जेक्ट्स हैं, जिनमें कुछ डेटाटाइम ऑब्जेक्ट्स हैं। यदि आवश्यक हो तो मैं सादा पाठ कर सकता हूं। साइट पर एक नया डेटा डालने के लिए एक नया पृष्ठ है, इसलिए यही स्रोत में नहीं हो सकता है। मैं साइट को सरल रखने की कोशिश कर रहा हूं, अगर मुझे आवश्यकता नहीं है तो कोई डीबी नहीं। –

उत्तर

3

कोई कारण नहीं है कि आप मानक पायथन pickle या shelve मॉड्यूल के माध्यम से ऑब्जेक्ट दृढ़ता को लागू नहीं कर सकते हैं। बस सुनिश्चित करें कि आपकी वस्तुएं साफ़ और सुरक्षित रूप से पिकनीय हैं। यदि आपकी साइट आपके वर्तमान दायरे से आगे बढ़ती है तो स्केलेबिलिटी चिंता का विषय बन सकती है, लेकिन तब तक आपके विचार को ठीक काम करना चाहिए। यदि वह दिन आता है, तो अगला स्पष्ट कदम पाइथन के उत्कृष्ट SQLitemodule का उपयोग करने पर विचार करना होगा जो भाषा के हाल के संस्करणों के साथ पूर्व-पैक किया जाता है।

+0

एसक्यूएल होने की तुलना में मोंगो डीबी की तरह कुछ पिकल से एक आसान संक्रमण होगा। –

+0

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

+0

@ डेविड एमआई ने एसक्यूएल के साथ बहुत पहले काम किया है, इसलिए कोई समस्या नहीं होगी, मैं सिर्फ NoSQL में अधिक अनुभव पाने के लिए मोंगो डीबी का उपयोग करना चुनूंगा :) –

3

मैं सीधे एक फ़ाइल में एक मसालेदार स्ट्रिंग नहीं लिखूंगा। चिंता करने के लिए बहुत कम स्तर के विवरण हैं। MySQL में पायथन ऑब्जेक्ट्स संग्रहीत करने के बारे में Durus, ZODB, या this post from FriendFeed देखें।

रिलेशनल डेटाबेस को न छोड़ें, हालांकि, वे आपको बॉक्स से बाहर बहुत धमाके देते हैं (यहां तक ​​कि सरल परियोजनाओं के लिए भी)।

+0

लिंक के लिए धन्यवाद। अगर मैं किसी भी डीबी का उपयोग करने जा रहा हूं, तो यह मोंगोडीबी होगा। मैंने कई पायथन प्रक्रियाओं को चलाने वाले ढांचे की समस्या के बारे में नहीं सोचा था और कुछ संशोधित होने पर उसी ऑब्जेक्ट तक पहुंच नहीं है। इसे किसी प्रकार का ध्वज ट्रिगर करना होगा और प्रत्येक प्रक्रिया में मसालेदार फाइल को फिर से लोड करना होगा? कुछ अन्य "निम्न स्तर के विवरण चिंता करने के लिए" क्या हैं? धन्यवाद! –

1

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

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