मैं वास्तव में हल्के वेब प्रोजेक्ट को कार्यान्वित कर रहा हूं, जिसमें केवल एक पृष्ठ है, जो चित्र में डेटा दिखा रहा है। मैं इस चित्र के लिए नियमित रूप से साजिश के रूप में एक वेबसर्वर और d3.js के रूप में Django का उपयोग करता हूं। जैसा कि आप कल्पना कर सकते हैं, केवल कुछ सरल समय श्रृंखलाएं हैं जिन्हें Django सर्वर द्वारा जवाब देना है, इसलिए मैं सोच रहा था कि क्या मैं बस इस चर को राम में रख सकता हूं। मेरा पहला परीक्षण सकारात्मक था, मैं अपने views.py में कुछ इस तरह था:रैम में django vars
X = np.array([123,23,1,32,123,1])
@csrf_exempt
def getGraph(request):
global X
return HttpResponse(json.dumps(X))
सूचना, X
एक और समारोह से अद्यतन किया जाता है हर अब और फिर, लेकिन सभी उपयोगकर्ता पहुँच केवल पढ़ने के लिए। क्या मुझे
- वैश्विक चर परिभाषित करके सुरक्षा समस्याएं हैं?
- सामान्य रूप से असंगतताएं?
मुझे a thread Django में वैश्विक चर पर चर्चा करने के लिए मिला, लेकिन उस स्थिति में, कठिनाई कई लेखन-पहुंच को संभालने का है।
संभावित प्रश्नों का उत्तर देने के लिए मैं डेटाबेस में स्टोर डेटा क्यों नहीं चाहता हूं: मेरे X
में जो डेटा मिला है वह पहले से ही एक विशाल दूरस्थ डेटाबेस में संग्रहीत है और इस वेब ऐप को केवल डेटा प्रदर्शित करने की आवश्यकता है।
Django समुदाय के सदस्य के रूप में विरोध नहीं कर सका, मैं जरूरी नहीं कहूंगा कि "नहीं" - मैंने कुछ चीजें खुद को समान ही की हैं। लेकिन कैश बैकएंड के लिए +1, यह इस समस्या को हल करने का एक बेहतर तरीका है। –
@ जो मैंने कोशिश की, और यह सामान्य http अनुरोधों के साथ ठीक काम करता है, लेकिन जब मैं इसे 'AJAX' के माध्यम से कॉल करता हूं तो यह कैश नहीं होता है। मुझे लगता है, Django प्रत्येक एकल 'AJAX' अनुरोध को पहले से अलग होने और' X' की गणना करने के लिए मानता है। इसके साथ कैसे निपटें? लेकिन धन्यवाद, फिर से Django कैश सिस्टम की सिफारिश करने के लिए - यह वैश्विक वर्र्स –
की तुलना में काफी अधिक सुरुचिपूर्ण प्रतीत होता है! मैंने इसे 'निम्न-स्तर कैश API' का उपयोग करके हल किया। यह बिल्कुल सही है। बहुत बहुत धन्यवाद –