python - Google App Engine Python : Class Definition “Invalid Syntax”

标签 python google-app-engine syntax-error

当我在dev_appserver中运行此代码时,它在第22行(​​初始化HugAPanda类)处给我“无效语法”错误。有人知道为什么会这样吗?这是代码:

import wsgiref.handlers
from google.appengine.ext import db
from google.appengine.ext import webapp
from google.appengine.ext.webapp.util import run_wsgi_app

class PandasHugs(db.Model):
  message = db.IntegerProperty()

class MainPage(webapp.RequestHandler):
    def get(self):
        ListOfHugs = db.GqlQuery("SELECT * FROM PandasHugs")
        Adder = 0
        for PandasHugs in ListOfHugs:
            Adder = Adder + 1
        self.response.out.write('<html><body>')
        self.response.out.write('<h6>Panda has ' + str(Adder) + ' hugs!</h6>')
        self.response.out.write("<form action=\"/HugPanda\" method=\"post\"><div><input type=\"text\" name=\"PandaMessage\" value=\"A message for a panda.\"></div><div><input type=\"submit\" value=\"Hug a panda?\"></div></form></body></html>">


class HugAPanda(webapp.RequestHandler):
    def post(self):
        HugForAPanda = PandaHugs()
        HugForAPanda.message = self.request.get('PandaMessage')
        HugForAPanda.put()
        self.redirect('/main')

application = webapp.WSGIApplication(
  [('/', MainPage), ('/main', MainPage), ('/HugPanda', HugAPanda)],
  debug=True)

def main():
  run_wsgi_app(application)

if __name__ == "__main__":
  main()

再次感谢!
-尼尔

最佳答案

上面一行中的语法无效。 (第15行看起来像)

self.response.out.write("<form action=\"/HugPanda\" method=\"post\"><div><input type=\"text\" name=\"PandaMessage\" value=\"A message for a panda.\"></div><div><input type=\"submit\" value=\"Hug a panda?\"></div></form></body></html>">

末尾的多余“>”应替换为“)”。

这是遵循python约定并将行长限制为79个字符的很好的理由。如果贵组织的标准配置为120,我不会提出异议,但是肯定不应该按照此处介绍的方式编写:)

在这种情况下,我建议用三重引号编写可读的html代码(即,正确缩进)。在您的情况下,我将使用单引号引起来,因此您不必转义每个“。”我只是在这里建议使用单引号以避免混淆,但是我相信在这种情况下“”也可以使用。

即。
self.response.out.write('''<html>
  <body>
    <h6>Panda has %s hugs!</h6>
      <form action="/HugPanda" method="post">
        <div>
          <input type="text" name="PandaMessage" value=
          "A message for a panda.">
        </div>
        <div>
          <input type="submit" value="Hug a panda?">
        </div>
      </form>
  </body>
</html>''' % Adder)

刚刚在重写代码后注意到html中的一些错误,应该用'/>'来关闭输入标签。好的样式可以在不使用任何工具的情况下为避免错误发挥很大的作用!

http://www.python.org/dev/peps/pep-0008/

关于python - Google App Engine Python : Class Definition “Invalid Syntax” ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8337349/

相关文章:

python - 解决嵌套属性中的属性错误

python - Google App Engine 上的动态属性与固定属性查询速度

google-app-engine - 无法在 Google 应用引擎启动器中运行 helloworld

python - 使用 pandas 和 Google App Engine 时出现 AttributeError

syntax-error - 处理一个 token 后Bison中的语法错误

python - OpenCV imread 发布 libpng 错误 : IEND: CRC error and not loading images

python - 如何确定 Pandas/NumPy 中的列/变量是否为数字?

python - Python中稀疏LIL矩阵中的求和行运算极其缓慢

python - 我有语法错误

sql - 将查询转换为SQL Server语法