ルート ディレクトリの index.html ページに関係なく、main.app がデフォルト ページであるため (残念ながら、GAE は cgi/apache のようには機能しません)、フォーム ページ main.app とクエリ/応答ページを作成しました。 response.py. フォームを送信した後、次のエラーが表示されます。
エラーが見つかりません: /response.py は、アプリケーション構成のパターンと一致しませんでした。
application: emot13
version: 1
runtime: python27
api_version: 1
threadsafe: true
handlers:
- url: /stylesheets/
static_dir: stylesheets
- url: /
script: main.app
- url: /.
script: response.app
main.app:
#!/usr/bin/env python
import cgi
import urllib
from google.appengine.ext import db
import webapp2
class MainPage(webapp2.RequestHandler):
def get(self):
self.response.out.write("""<html>
<body>
<head>
<link type="text/css" rel="stylesheet" href="/stylesheets/main.css" />
</head>
<body>
<form action="/response.py" method="post"> #also tried "response.py", no difference
<p>First Name: <input type="text" name="name"/></p>
<p>How are things?</p>
<p><input type="radio" name="mood" value="good">Good</p>
<p><input type="radio" name="mood" value="bad">Bad</p>
<p><input type="radio" name="mood" value="fair">Fair</p>
<p><input type="submit" name="submit" value="Process"/></p>
</form>
</body></html>""")
app = webapp2.WSGIApplication(
[("/", MainPage)],
debug=True)
def main():
application.run()
if __name__ == "__main__":
main()
応答.py:
#!/usr/bin/env python
import cgi
import time
import datetime
import urllib
from google.appengine.ext import db
import webapp2
#model
class Visitor(db.Model):
name = db.StringProperty(required=1)
mood = db.StringProperty(choices=["good","bad","fair"])
date = db.DateTimeProperty(auto_now_add=True)
class Response(webapp2.RequestHandler):
def get(self):
today = datetime.date.today()
self.response.out.write("""<html><head>
<link type="text/css" rel="stylesheet" href="/stylesheets/main.css" />
</head>
<body>
self.response.out.write(today.strftime(<html><body><p style='color:#3E3535'>%A, %d %B</p>)
</body></html> """)
localtime = time.localtime(time.time())
mon = localtime[1] # MONTH
h = localtime[3] # HOUR
name = self.request.get("name")
name = name.capitalize()
mood = self.request.get("mood")
# variables and if/elif statements follow; they all work so that is not the problem.
responses = db.GqlQuery("SELECT * "
"FROM Visitor "
"ORDER BY date DESC_LIMIT 1")
for response in responses:
if mood == "bad" and name != "":
# responses follow; they all work so that is not the problem.
class Process(webapp2.RequestHandler):
def post(self):
name = self.request.get("name")
mood = self.request.get("mood")
info = Visitor(name = name, mood = mood)
info.put()
self.redirect("/")
app = webapp2.WSGIApplication(
[("/", Response),
("/", Process)],
debug=True)
# tried uncommenting this as well v v
#def response():
# application.run()
#if __name__ == "__response__":
# response()
助けていただければ幸いです。