0

谁能告诉我这两个代码片段之间的区别:

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 介绍材料,每当我尝试自己输入代码时,有些东西会有所不同,而且它不起作用。每当我从他们的网站上复制它时,它就可以工作,尽管它看起来相同。检查视图面板中的编码,它是相同的,ANSI(我使用的是 Notepad++)。也尝试使用缩进,但没有任何区别。

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

4

2 回答 2

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

于 2012-11-29T01:08:01.607 回答
0

发现一个问题,是缩进的事情。您可以在此处此处阅读有关此内容 的信息,无论您是使用“空格”还是“制表符”来缩进,都可能会导致问题,程序中的设置也可能会出现问题(在我的情况下,在 Sublime Text 的“制表符”设置中)缩进,可设置为 4 或 8 等)

于 2013-03-01T07:30:54.113 回答