如何在Google App Engine中导入Django 1.1的render_to_response方法?

2 投票
2 回答
4234 浏览
提问于 2025-04-15 16:02

我刚开始学Python,所以我觉得这个问题应该很简单。以下是我在main.py里的代码:

import os
os.environ['DJANGO_SETTINGS_MODULE'] = 'settings'

from google.appengine.dist import use_library
use_library('django', '1.1')

# Use django form library.
from django import forms
from django.shortcuts import render_to_response

最后一行出现了一个导入错误(ImportError)。如果我不加上那一行,就会出现“render_to_response”不可用的错误。我到底哪里出错了呢?

2 个回答

2

好吧,render_to_response 是一个简化的写法,能让你更方便地完成这件事,所以你可以试试这个:

from django.template import Context, loader
from django.http import HttpResponse

def render_to_response(tmpl, data):
    t = loader.get_template(tmpl)
    c = Context(data)
    return HttpResponse(t.render(c))

render_to_response("templates/index.html", {"foo": "bar"})
0

在这个情况下,问题是因为Google App Engine使用的是Django的0.96版本,而这个版本找不到'redirect'这个方法,因为这个方法只在Django 1.1版本中有。如果你使用GAE提供的'用库'这个方法,你可以指定想用哪个版本的Django框架,这样问题就解决了。

撰写回答