Python 未解析的'的引用;自我';

Python 未解析的'的引用;自我';,python,python-2.7,Python,Python 2.7,我不明白为什么在形头、形身和形脚之后,它显示了一个未解决的“自我”参照物。。。这不允许Google引擎应用程序正确显示和运行。任何帮助都会有帮助 import webapp2 class MainHandler(webapp2.RequestHandler): def get(self): #web page sections form_head='''<!DOCTYPE html> <html> <head>

我不明白为什么在形头、形身和形脚之后,它显示了一个未解决的“自我”参照物。。。这不允许Google引擎应用程序正确显示和运行。任何帮助都会有帮助

import webapp2

class MainHandler(webapp2.RequestHandler):
    def get(self):

#web page sections
    form_head='''<!DOCTYPE html>
    <html>
      <head>
        <meta charset="utf-8" />
          <link href='http://fonts.googleapis.com/css?family=Roboto' rel='stylesheet'     type='text/css'>
          <link href="css/style.css" rel="stylesheet" type="text/css" />
      <title>Gamers R' Us Subscribing</title>
      </head>
      <body>'''
form_body='''
  <div class="maincontainer">
    <h1>Welcome to Gamers R' Us!</h1>
    <div id="bgimg">
      <p>Filler atm.</p>
      <div id="formbox">
        <h2>Subscribe Today!</h2>
        <form method="GET">
        <label>Full Name: </label><input type="text" name="name" placeholder=" John Doe"/><br>
        <label>Email: </label><input type="text" name="email" placeholder=" me@domain.com"/><br>
        <select name="system" class="selectbox">
          <option value="ps4">Playstation 4</option>
          <option value="xbone">Xbox One</option>
          <option value="wiiu">Wii U</option>
          <option value="pc">PC Gaming</option>
        </select><br>
        <input type="radio" name="genre" value="FPS">First Person Shooter.<br>
        <input type="radio" name="genre" value="MOBA">Multiplayer Online Battle Arena.<br>
        <input type="radio" name="genre" value="RPG">Role-Playing Game.<br>
        <input type="radio" name="genre" value="RTS">Real Time Strategy.<br>
        <input type="radio" name="genre" value="Other">Other Genre.<br>
        <input type="checkbox" name="subscribe" value="yes" checked>Subscribe for gaming updates and more!<br>
        <input type="submit" class="subbtn" value="Done" />
        </form>
      </div>
    </div>
  </div>'''
form_foot='''
  </body>
</html>'''

#if GET is requested it should display on next screen.
#else should load page.
if self.request.GET:
  name= self.request.GET['name']
  email= self.request.GET['email']
  system= self.request.GET['system']
  genre= self.request.GET['genre']
  subscribe= self.request.GET['subscribe']

#displays form information submitted by user.
  self.response.write(form_head + "<div class='maincontainer'>" +
    '<h1>Thanks for Subbing!</h1>' +
    '<div id="infobox">' +
    '<h2></h2>' +
    "Name: "+name+"<br />" +
    "Email: "+email+"<br />" +
    "Preferred System: "+system+"<br /> " +
    "Preferred Genre: "+genre+
    '</div>' +
    '</div>' +
    form_foot)

#Will display error. ** PLACE HOLDER **
else:
  self.response.write("Help! Error!")

# Do not touch this.
app = webapp2.WSGIApplication([
('/', MainHandler)
], debug=True)
导入webapp2
类MainHandler(webapp2.RequestHandler):
def get(自我):
#网页部分
表格头=“”
玩家的美国订阅
'''
表格体=“”
欢迎来到游戏玩家我们!
自动取款机

今天订阅! 全名:
电子邮件:
游戏机4 Xbox One Wii U 电脑游戏
第一人称射击手。
多人在线战场。
角色扮演游戏。
实时策略。
其他类型。
订阅游戏更新等
''' 形式_英尺=“” ''' #如果请求GET,它将显示在下一个屏幕上。 #否则应该加载页面。 如果self.request.GET: name=self.request.GET['name'] email=self.request.GET['email'] system=self.request.GET['system'] genre=self.request.GET['genre'] subscribe=self.request.GET['subscribe'] #显示用户提交的表单信息。 自我。回应。书写(表格_head+“”+ “谢谢你的帮忙!”+ '' + '' + 名称:“+Name+”
”+ 电子邮件:“+电子邮件+”
”+ 首选系统:“+System+”
”+ “首选类型:”+类型+ '' + '' + 表(英尺) #将显示错误。**占位符** 其他: self.response.write(“帮助!错误!”) #不要碰这个。 app=webapp2.WSGIApplication([ (“/”,MainHandler) ],debug=True)
这是正确缩进的代码(据我所知)

我已经更新了以前的答案,说明了如何使用
textwrap.dedent()
删除多余的缩进,这通常是为了使与缩进代码混合的大型内联文本块更具可读性。此外,我修改了末尾附近的
self.response.write()
语句,以显示将多个文本变量值替换为长字符串的更简洁的方法

import textwrap
import webapp2

class MainHandler(webapp2.RequestHandler):
  def get(self):
    #web page sections
    form_head=textwrap.dedent('''
      <!DOCTYPE html>
      <html>
        <head>
          <meta charset="utf-8" />
            <link href='http://fonts.googleapis.com/css?family=Roboto' rel='stylesheet' type='text/css'>
            <link href="css/style.css" rel="stylesheet" type="text/css" />
        <title>Gamers R' Us Subscribing</title>
        </head>
        <body>''')

    form_body=textwrap.dedent('''
          <div class="maincontainer">
            <h1>Welcome to Gamers R' Us!</h1>
            <div id="bgimg">
              <p>Filler atm.</p>
              <div id="formbox">
                <h2>Subscribe Today!</h2>
                <form method="GET">
                <label>Full Name: </label><input type="text" name="name" placeholder=" John Doe"/><br>
                <label>Email: </label><input type="text" name="email" placeholder=" me@domain.com"/><br>
                <select name="system" class="selectbox">
                  <option value="ps4">Playstation 4</option>
                  <option value="xbone">Xbox One</option>
                  <option value="wiiu">Wii U</option>
                  <option value="pc">PC Gaming</option>
                </select><br>
                <input type="radio" name="genre" value="FPS">First Person Shooter.<br>
                <input type="radio" name="genre" value="MOBA">Multiplayer Online Battle Arena.<br>
                <input type="radio" name="genre" value="RPG">Role-Playing Game.<br>
                <input type="radio" name="genre" value="RTS">Real Time Strategy.<br>
                <input type="radio" name="genre" value="Other">Other Genre.<br>
                <input type="checkbox" name="subscribe" value="yes" checked>Subscribe for gaming updates and more!<br>
                <input type="submit" class="subbtn" value="Done" />
                </form>
              </div>
            </div>
          </div>''')

    form_foot=textwrap.dedent('''
        </body>
      </html>''')

    #if GET is requested it should display on next screen.
    #else should load page.
    if self.request.GET:
      name=self.request.GET['name']
      email=self.request.GET['email']
      system=self.request.GET['system']
      genre=self.request.GET['genre']
      subscribe=self.request.GET['subscribe']

      #displays form information submitted by user.
      self.response.write(form_head +
                          textwrap.dedent('''
                            <div class='maincontainer'>
                              <h1>Thanks for Subbing!</h1>
                              <div id="infobox">
                                <h2></h2>
                                Name: {name}<br />
                                Email: {email}<br />
                                Preferred System: {system}<br />
                                Preferred Genre: {genre}
                              </div>
                            </div>''').format(**locals()) +
                          form_foot)

    #Will display error. ** PLACE HOLDER **
    else:
      self.response.write("Help! Error!")

# Do not touch this.
app = webapp2.WSGIApplication([('/', MainHandler)], debug=True)
导入文本包装
导入webapp2
类MainHandler(webapp2.RequestHandler):
def get(自我):
#网页部分
form_head=textwrap.dedent(“”)
玩家的美国订阅
''')
form_body=textwrap.dedent(“”)
欢迎来到游戏玩家我们!
自动取款机

今天订阅! 全名:
电子邮件:
游戏机4 Xbox One Wii U 电脑游戏
第一人称射击手。
多人在线战场。
角色扮演游戏。
实时策略。
其他类型。
订阅游戏更新等!
''') form_foot=textwrap.dedent(“”) ''') #如果请求GET,它将显示在下一个屏幕上。 #否则应该加载页面。 如果self.request.GET: name=self.request.GET['name'] email=self.request.GET['email'] system=self.request.GET['system'] genre=self.request.GET['genre'] subscribe=self.request.GET['subscribe'] #显示用户提交的表单信息。 自我回答,写(表格头)+ textwrap.dedent(“”) 谢谢你的支持! 名称:{Name}
电子邮件:{Email}
首选系统:{System}
首选流派:{Genre} '')。格式(**locals())+ 表(英尺) #将显示错误。**占位符** 其他: self.response.write(“帮助!错误!”) #不要碰这个。 app=webapp2.WSGIApplication([('/',MainHandler)],debug=True)
这段代码编译了吗?看起来你的缩进搞砸了。
MainHandler.get()
函数中的所有代码和数据变量必须缩进相同的数量,才能被视为方法的一部分。例外情况是三重引号字符串中的数据。这是未定义的最可能的原因,因为引用它的代码不在函数定义中。最后一件事。我在“else:”中得到了一个无效的语法,你知道为什么它的样式不正确吗?我把css文件放在css文件夹里了?不,不是随便的。我想你读过谷歌字体。