0

これら2つのコードスニペットの違いを教えてください。

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です(メモ帳++を使用しています)。インデントも試してみましたが、違いはありませんでした。

コメントをいただければ幸いです。ありがとうございました。

4

2 に答える 2

0

Python コードは常に次の 3 行で開始する必要があります。

#!/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 が必要です。PyDev を使用した Eclipse をお勧めします。セットアップするには、このチュートリアルを使用して、次の質問を参照してください: Debug google app engine project line by line

そして、あなたがまったくの初心者なら?Google アプリ エンジンを使用したこの優れた Web 開発コースにアクセスしてください: 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 に答える