3
Google의 사이트에서 예를 들어 this을 팔로우하고 있습니다. 기본 작업의 작동 방식을 이해하는 데 어려움을 겪고 있습니다. 주로 MainHandler HTML에서 텍스트를 제출할 때 GuestBook 사용 방법을 어떻게 알 수 있습니까? 나는 그것이 <form action="/sign" method=post>
과 ('/sign', GuestBook)
과 관련이 있다고 가정하지만, 그것이 어떻게 작동하는지 완전히 모릅니다.Google App Engine의 HTML
from google.appengine.ext import db
import webapp2
class Greeting(db.Model):
content = db.StringProperty(multiline=True)
date = db.DateTimeProperty(auto_now_add=True)
class MainHandler(webapp2.RequestHandler):
def get(self):
self.response.write('Hello world!')
self.response.write('<h1>My GuestBook</h1><ol>')
#greetings = db.GqlQuery("SELECT * FROM Greeting")
greetings = Greeting.all()
for greeting in greetings:
self.response.write('<li> %s' % greeting.content)
self.response.write('''
</ol><hr>
<form action="/sign" method=post>
<textarea name=content rows=3 cols=60></textarea>
<br><input type=submit value="Sign Guestbook">
</form>
''')
class GuestBook(webapp2.RequestHandler):
def post(self):
greeting = Greeting()
greeting.content = self.request.get('content')
greeting.put()
self.redirect('/')
app = webapp2.WSGIApplication([
('/', MainHandler),
('/sign', GuestBook),
], debug=True)
으로 지원합니다. 클래스의 인스턴스 생성에 대한 몇 가지 세부 사항을 추가 한 다음 나중에 post (..) 또는' get (..)'(적절하다면) 더 나은 대답이 될 것입니다 :) – SuperSaiyan
@Thrustmaster 좋은 생각! 피드백 주셔서 감사합니다 :) – Andbdrew
@ Andbdrew의 답변에 추가, GAE 자체는 webapp2의 라우팅을 인식하지 못합니다. GAE 자신의 라우팅 설정은'app.yaml' 파일에 있습니다.이 파일은 WSGI 핸들러를 포함하는 변수를 가리켜 야합니다 (이 경우'app') –