Python 未解析的'的引用;自我';
我不明白为什么在形头、形身和形脚之后,它显示了一个未解决的“自我”参照物。。。这不允许Google引擎应用程序正确显示和运行。任何帮助都会有帮助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>
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文件夹里了?不,不是随便的。我想你读过谷歌字体。