【问题标题】:App Engine Python not receiving GET parameter value from Django pageApp Engine Python 未从 Django 页面接收 GET 参数值
【发布时间】:2012-01-12 14:06:39
【问题描述】:

我正在尝试从使用 Django 构建的页面向 App Engine 服务器发送 GET 请求。我在 Django 部分设置了参数,但在 App Engine 中参数值为空。

我已经在Django端记录了它的值,参数值没问题。

这是我的 Django 代码:

try:
        username = request.session['username']
        params = urllib.urlencode('user', username)
        headers = {"Content-type":"application/x-www-form-urlencoded", "Accept":"text/plain"}

        conn = httplib.HTTPConnection(connections_strings.auth)
        conn.request("GET", connections_strings.auth, params, headers)
        response = conn.getresponse()
        jsonString = response.read()
        return render_to_response('home/index.html', locals(), context_instance=RequestContext(request))

这是 App Engine 代码:

def get(self):
        username = self.request.get('user') # Get the username parameter 
        query_user = UserEntity.all()
        query_user.filter('username = ', username)
        user_data = []
        for user in query_user:
            record = { //Create the JSON.. }
            user_data.append(record)

        self.response.headers['Content-Type'] = 'application/json'
        self.response.out.write(simplejson.dumps(user_data))

正在调用 App Engine 中的 get(self) 方法,我已在其中放置了一条日志消息,并且已打印出来。

所以,在 App Engine 端,self.request.get('user') 没有返回任何内容。而且很奇怪,我已经从移动端发出了GET 请求,并且使用相同的方法完美运行。

有什么想法吗??

谢谢!

【问题讨论】:

    标签: python django google-app-engine


    【解决方案1】:

    在 HTTP GET 方法中,查询参数在 URL 中传递:

    http://example.com?user=foo
    

    request() 方法定义如下:

    HTTPConnection.request(method, url[, body[, headers]])
    

    所以通过这样做:

    conn.request("GET", connections_strings.auth, params, headers)
    

    您已经在请求正文中发送了参数。

    试试这个:

    selector = '{}?{}'.format(connections_strings.auth, params)
    conn.request("GET", selector, headers=headers)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-12-25
      • 1970-01-01
      • 1970-01-01
      • 2013-12-20
      • 2021-08-04
      • 2017-08-07
      • 2015-11-21
      • 1970-01-01
      相关资源
      最近更新 更多