2013-02-05 27 views
9

मैं जीएई के साथ memcached काम नहीं कर सकता। जब मैं GAE website पर ट्यूटोरियल के बाद, Google कैश बैकएंड का उपयोग करता हूं, तो विचार कैश नहीं होते हैं। इसलिए मैं के रूप में (Django ट्यूटोरियल में सुझाव दिया यूआरएल कैशिंग इस्तेमाल किया जैसे:Django के साथ कैशिंग का उपयोग कैसे करें? (अधिमानतः जीएई में)

`(r'^example$', cache_page(60*15)(views.example)), 

तो मैं इस मिल:

File "/python27_runtime/python27_lib/versions/third_party/django-1.4/django/middleware/cache.py", line 205, in __init__ 
self.cache_timeout = self.cache.default_timeout 

AttributeError: 'Client' object has no attribute 'default_timeout' 

AttributeError: 'ग्राहक' ऑब्जेक्ट कोई भी विशेषता 'default_timeout' है अगर मैं गूगल का उपयोग बैकएंड (django.core.cache.backends.memcached.MemcachedCache) मैं

Error: ImproperlyConfigured: Error importing middleware django.contrib.sessions.middleware: "No module named memcache". 

यहाँ किसी Django कैशिंग बैकएंड उपयोग के बारे में पहले से पूछा हो और अजगर-memcached स्थापित करने के लिए सुझाव देते हैं, मैंने वह किया और यह अभी भी काम नहीं करता है ।

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

+1

मुझे लगता है कि तुम यहाँ अपने जवाब मिलेगा: http://stackoverflow.com/questions/1138715/will-djangos-cache-modules-work-on-google-app -engine – nizz

+0

धन्यवाद, ठीक है, मैं ऊपर दिए गए इस प्रश्न को पोस्ट करने से पहले कई बार उन उत्तरों को गया था। लेकिन यह वास्तव में भ्रमित है क्योंकि दो सर्वश्रेष्ठ वोट किए गए उत्तर खुद का विरोधाभास करते हैं, और यह भी एक पुरानी चर्चा है। –

उत्तर

3

ऐप इंजन पर सभी Django के कार्यात्मक काम नहीं। तो, ऐप इंजन इंफ्रास्ट्रक्चर प्रतिबंधित होने के कारण आप जिस कार्यात्मक का उपयोग करने का प्रयास कर रहे हैं वह ऐप इंजन Django लाइब्रेरी के लिए अस्वीकार्य है।

यदि मैं आपको सही ढंग से समझता हूं, तो आप पूरे पृष्ठ को कैश करना चाहते हैं या दूसरे शब्दों में संपूर्ण दृश्य की प्रतिक्रिया करना चाहते हैं? आपको लगता है कि जिस तरह से (सिर्फ उदाहरण) में यह कर सकते हैं:

# Django on App Engine view example 
from google.appengine.api import memcache 
from django.http import HttpResponse 

def cached_index_page(request): 
    output_html = memcache.get('index_page') # here we "take" from cache 
    if output is not None: 
    pass 
    else: 
    output_html = get_page_content() 
    memcache.add('index_page', output_html, 60) # here we "put" to cache" (timeout also here) 
    HttpResponse(output_html) 

उद्देश्य आप किसी भी पृष्ठ आप की जरूरत ऑटो कैशिंग के साथ Django के मिडिलवेयर बना सकते हैं के लिए।

यह भी सुनिश्चित करें कि आपने कॉन्फ़िगरेशन फ़ाइल से ऐप इंजन सामग्री पर सभी असंबंधित/स्वीकार्य नहीं हटाए हैं। को ध्यान में रखते सहायता पृष्ठ (https://developers.google.com/appengine/articles/django), कम से कम config लगता है:

import os 

# 'project' refers to the name of the module created with django-admin.py 
ROOT_URLCONF = 'project.urls' 

MIDDLEWARE_CLASSES = (
    'django.middleware.common.CommonMiddleware', 
# 'django.contrib.sessions.middleware.SessionMiddleware', 
# 'django.contrib.auth.middleware.AuthenticationMiddleware', 
    'django.middleware.doc.XViewMiddleware', 
    'google.appengine.ext.ndb.django_middleware.NdbDjangoMiddleware', # NoSQL db middleware 
) 

INSTALLED_APPS = (
# 'django.contrib.auth', 
    'django.contrib.contenttypes', 
# 'django.contrib.sessions', 
    'django.contrib.sites', 
) 

ROOT_PATH = os.path.dirname(__file__) 
TEMPLATE_DIRS = (
    # Put strings here, like "/home/html/django_templates" or 
    # "C:/www/django/templates". Always use forward slashes, even on Windows. 
    # Don't forget to use absolute paths, not relative paths. 
    ROOT_PATH + '/templates', 
) 

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

सहायक लिंक: https://developers.google.com/appengine/articles/django-nonrelhttps://developers.google.com/appengine/docs/python/tools/libraries27

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

  • कोई संबंधित समस्या नहीं^_^