任何人都可以告诉我这两个代码片段之间的区别:
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 ++)。 尝试使用缩进也没有任何区别。
任何意见将不胜感激。 谢谢。
答案 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)