我在google和stackoverflow中搜索了很多但是无法弄清楚我的代码是不行的,
app.yaml文件如下:
application: morgan629200774
version: 1
runtime: python27
api_version: 1
threadsafe: yes
handlers:
- url: /.*
script: main.app
- url: /unit1/
script: unit1.app
- url: /unit2/
script: unit2.app
- url: /favicon\.ico
static_files: favicon.ico
upload: favicon\.ico
libraries:
- name: webapp2
version: "2.5.2"
这是我的代码:
import webapp2
form = """
<form method="post">
Enter some text to ROT13
<br>
<br>
<div><textarea name="content" rows="7" cols="50"></textarea></div>
<input type="submit" value="submit">
<br>
<br>
</form>
"""
class MainPage(webapp2.RequestHandler):
def get(self):
self.response.out.write("main page")
class unit1(webapp2.RequestHandler):
def get(self):
self.response.out.write("hello world")
class unit2(webapp2.RequestHandler):
def get(self):
self.response.out.write(form)
self.response.out.write("hello world")
def post(self):
rot13=''
text=self.request.get('content')
rot13=text.encode('rot13')
self.response.out.write(rot13)
app = webapp2.WSGIApplication([
('/.*', MainPage),
('/unit1/', unit1),
('/unit2/', unit2)
], debug=True)
有人能告诉我我做错了什么吗?
由于
答案 0 :(得分:1)
你还没有(并且不需要)unit1.app
或unit2.app
,所以我不知道你为什么在app.yaml中引用它们。从Python代码中可以看出,有一个名为app
的对象,它包含整个应用程序的路由。我假设(虽然你没有声明)Python文件被称为“main.py”。这就是app.yaml引用main.app
的原因 - 即app
模块中的main
对象。
app.yaml中URL的目的只是传递给Python代码。所以,你只需要一个处理程序:第一个。删除其他两个处理程序。它捕获/
下的所有并将其传递给main.app。在该文件中,底部定义的第一条路线应为:
('/', MainPage)
因为您不想捕获该路由中的所有内容,只捕获特定的根URL。