udacity-web development-homework(unit2 signup)
来源:互联网 发布:java模块化框架 编辑:程序博客网 时间:2024/06/15 18:48
gae http://signup-fxj.appspot.com/
#!/usr/bin/env python## Copyright 2007 Google Inc.## Licensed under the Apache License, Version 2.0 (the "License");# you may not use this file except in compliance with the License.# You may obtain a copy of the License at## http://www.apache.org/licenses/LICENSE-2.0## Unless required by applicable law or agreed to in writing, software# distributed under the License is distributed on an "AS IS" BASIS,# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.# See the License for the specific language governing permissions and# limitations under the License.#import webapp2,cgi,re,copyform = """<!DOCTYPE html><html> <head> <title>Sign Up</title> <style type="text/css"> .label {text-align: right} .error {color: red} </style> </head> <body> <h2>Signup</h2> <form method="post"> <table> <tr> <td class="label"> Username </td> <td> <input type="text" name="username" value="%(username)s"> </td> <td class="error"> %(nameerror)s </td> </tr> <tr> <td class="label"> Password </td> <td> <input type="password" name="password" value=""> </td> <td class="error"> %(passworderror)s </td> </tr> <tr> <td class="label"> Verify Password </td> <td> <input type="password" name="verify" value=""> </td> <td class="error"> %(verifiederror)s </td> </tr> <tr> <td class="label"> Email (optional) </td> <td> <input type="text" name="email" value="%(email)s"> </td> <td class="error"> %(emailerror)s </td> </tr> </table> <input type="submit"> </form> </body></html>"""welpage = """<html> <head> <title>Unit 2 Signup</title> </head> <body> <h2>Welcome, %s!</h2> </body></html>"""nameerror = "That's not a valid username."passworderror = "That wasn't a valid password."verifiederror = "Your passwords didn't match."emailerror = "That's not a valid email."emptybook = {'username':'','nameerror':'','passworderror':'','verifiederror':'','emailerror':'','email':''}class MainHandler(webapp2.RequestHandler): def get(self): self.response.write(form % emptybook) def post(self): inputbook = copy.deepcopy(emptybook) username = self.request.get('username') email = self.request.get('email') password = self.request.get('password') verify = self.request.get('verify') inputbook['username'] = username inputbook['email'] = email ok = True if not self.valid_username(username): inputbook['nameerror'] = nameerror ok = False if email and not self.valid_email(email): inputbook['emailerror'] = emailerror ok = False if not self.valid_password(password): inputbook['passworderror'] = passworderror ok = False if not self.verified(password,verify): inputbook['verifiederror'] = verifiederror ok = False if ok: self.redirect('/welcome?username=' + username) else: self.response.write(form % inputbook) def valid_email(self,email): EMAIL_RE = re.compile("^[\S]+@[\S]+\.[\S]+$") return EMAIL_RE.match(email) def valid_username(self,username): USER_RE = re.compile("^[a-zA-Z0-9_-]{3,20}$") return USER_RE.match(username) def valid_password(self,password): PASSWORD_RE = re.compile("^.{3,20}$") return PASSWORD_RE.match(password) def verified(self,password,verify): return password == verifyclass WelcomeHandler(webapp2.RequestHandler):def get(self):username = self.request.get('username')self.response.write(welpage % username)app = webapp2.WSGIApplication([('/', MainHandler),('/welcome',WelcomeHandler)],debug=True)
0 0
- udacity-web development-homework(unit2 signup)
- udacity-web development-homework(unit2-rot13)
- Pivotal Web Services SignUp
- Unit2
- Unit2
- Web development
- web-homework-2
- For Web Software Technologies' Homework
- Web development for Mobile
- Web Development Helper Tools
- Web Development Helper Tools
- User-centered Web development
- XSLT 2.0 Web Development
- Mobile Web Development
- Web Service Development - 1
- Web Service Development - 2
- web development 一些记录
- web site development security
- android控件的大小控制dimens
- 无推广无刷榜挺进苹果商店AppStore收费榜总榜排行前10!
- Myeclipse、Eclipse 如何设置单行代码显示的最大宽度
- MEncoder的基础用法—6.2. 选择输入文件或设备
- 2051——Bitset
- udacity-web development-homework(unit2 signup)
- OCP-1Z0-053-V13.02-253题
- ubuntu 安装boost
- MEncoder的基础用法—6.3. 编码为双通道MPEG-4 ("DivX")
- UML之部署图
- 怎么让多个div横向并排,前面的div都固定宽度,最后一个div自动计算宽度
- MTK60D+MT5931 调试心得
- 算法实例6
- FPGA之FIFO