simbha

gae get post form data

Jul 4th, 2016
62
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.37 KB | None | 0 0
  1. #https://www.udacity.com/wiki/cs253/unit-2
  2.  
  3. import webapp2
  4. import cgi
  5.  
  6. def escape_html(s):
  7. return cgi.escape(s, quote = True)
  8.  
  9. form = """
  10. <form method="post">
  11. What is your birthday?
  12. <br>
  13. <label>
  14. Month
  15. <input type="text" name="month" value="%(month)s">
  16. </label>
  17. <label>
  18. Day
  19. <input type="text" name="day" value="%(day)s">
  20. </label>
  21. <label>
  22. Year
  23. <input type="text" name="year" value="%(year)s">
  24. </label>
  25. <div style="color: red">%(error)s</div>
  26. <br><br>
  27. <input type="submit">
  28. </form>
  29. """
  30.  
  31. months = ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August',
  32. 'September', 'October', 'November', 'December']
  33.  
  34. def valid_day(day):
  35. if(day and day.isdigit()):
  36. day = int(day)
  37. if(day < 32 and day > 0):
  38. return day
  39.  
  40. def valid_month(month):
  41. if(month):
  42. month = month.capitalize()
  43. if(month in months):
  44. return month
  45.  
  46. def valid_year(year):
  47. if(year and year.isdigit()):
  48. year = int(year)
  49. if(year < 2020 and year > 1880):
  50. return year
  51.  
  52. class MainPage(webapp2.RequestHandler):
  53. def write_form(self, error="", month="", day="", year=""):
  54. self.response.out.write(form %{"error": error,
  55. "month": escape_html(month),
  56. "day": escape_html(day),
  57. "year": escape_html(year)})
  58.  
  59. def get(self):
  60. self.write_form()
  61.  
  62. def post(self):
  63. user_month = self.request.get('month')
  64. user_day = self.request.get('day')
  65. user_year = self.request.get('year')
  66.  
  67. month = valid_month(user_month)
  68. day = valid_day(user_day)
  69. year = valid_year(user_year)
  70.  
  71. if not(month and day and year):
  72. self.write_form("That doesn't look valid to me, friend.", user_month, user_day, user_year)
  73. else:
  74. self.redirect("/thanks")
  75.  
  76. class ThanksHandler(webapp2.RequestHandler):
  77. def get(self):
  78. self.response.out.write("Thanks! That's a totally valid day!")
  79.  
  80. app = webapp2.WSGIApplication([('/', MainPage),
  81. ('/thanks', ThanksHandler)],
  82. debug=True)
Add Comment
Please, Sign In to add comment