Google AppEngine教程,代码片段之间的区别

时间:2012-11-29 00:04:01

标签: google-app-engine

任何人都可以告诉我这两个代码片段之间的区别:

1

import webapp2

from google.appengine.api import users

class MainPage(webapp2.RequestHandler):
  def get(self):
    user = users.get_current_user()

    if user:
      self.response.headers['Content-Type'] = 'text/plain'
      self.response.out.write('Hello, ' + user.nickname())
    else:
      self.redirect(users.create_login_url(self.request.uri))

app = webapp2.WSGIApplication([('/', MainPage)],
                              debug=True)

2

import webapp2

from google.appengine.api import users

class MainPage(webapp2.RequestHandler):
  def get(self):
    user = users.get_current_user()

    if user:
      self.response.headers['Content-Type'] = 'text/plain'
      self.response.out.write('Hello, ' + user.nickname())
    else:
      self.redirect(users.create_login_url(self.request.uri))

app = webapp2.WSGIApplication([('/', MainPage)],
                              debug=True)

问题是我正在尝试查看Google AppEngine的介绍材料,每当我尝试自己输入代码时,有些东西是不同的,它不起作用。每当我从他们的网站上复制它时,它都有效,尽管看起来相同。 检查了View面板中的编码,它是相同的,ANSI(我正在使用Notepad ++)。 尝试使用缩进也没有任何区别。

任何意见将不胜感激。 谢谢。

2 个答案:

答案 0 :(得分:0)

你应该总是用这3行开始你的Pyhton代码:

#!/usr/bin/python
# -*- coding: utf-8 -*-
from __future__ import unicode_literals

你的编辑器应该用utf-8编码。不要使用ANSI。

最后一行是可选的,但我建议它,以避免编码问题。有一些例外。因此,如果您使用unicode文字,则必须使用标题更改该行:

import webapp2
from google.appengine.api import users

class MainPage(webapp2.RequestHandler):
    def get(self):
        user = users.get_current_user()

        if user:
            self.response.headers['Content-Type'.encode()] = 'text/plain'.encode()
            self.response.out.write('Hello, ' + user.nickname())
        else:
            self.redirect(users.create_login_url(self.request.uri))

app = webapp2.WSGIApplication([('/', MainPage)],
                          debug=True)

你的app.yaml应该是这样的:

application: helloworld
version: 1
runtime: python27
api_version: 1
threadsafe: false

handlers:
- url: /.*
  script: helloworld.app

libraries:
- name: webapp2
  version: latest

但Notepad ++不适合应用引擎。你需要一个好的Python IDE。我推荐Eclipse和PyDev。要设置,请使用此摘要查看此问题:Debug google app engine project line by line

如果你是新手?使用谷歌应用引擎进入这个伟大的网络开发课程:http://www.udacity.com/overview/Course/cs253/CourseRev/apr2012

答案 1 :(得分:0)

发现问题,这是缩进的事情。 您可以阅读有关此herehere的信息 不管是使用“空格”还是“制表符”进行缩进都有区别,这可能会导致问题, 程序中的设置也会出现问题(在我的情况下,在Sublime Text的“Tab”缩进设置中,它可以设置为4或8等。)