0
main.app가 루트 페이지의 index.html 페이지 (GAE가 cgi/apache와 같이 작동하지 않음)에 관계없이 기본 페이지이므로 불행히도 폼 페이지 main.app와 쿼리/응답 페이지 response.py를 만들었습니다. 양식을 제출하면, 나는 오류가 발생합니다 :app.yaml 구성에서 일치하는 패턴, POST 404 오류
Not found error: /response.py did not match any patterns in application configuration.
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()
response.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()
도움말을 감상 할 수있다.
을 읽어야 /.* 또는 /response.py 중 하나를 사용하면 양식을 제출 한 후 response.py에 "404 Not Found 리소스를 찾을 수 없습니다."라는 메시지가 나타납니다. 무엇이 이것을 일으킬 수 있습니까? 내 모든 작업 코드는 위에 게시됩니다. 양식은 app.yaml의 1 페이지를 사용하여 훌륭하게 작동하지만 응답을 처리하고 response.py에 표시해야합니다. – p1nesap
다른 문제는 응답에서 get 처리기를 정의하지만 method = POST를 사용하여 양식을 제출하므로 Response 클래스에 post() 메서드가 필요하다는 것입니다. –