【问题标题】:python web application behaves differenty at differnet timespython web应用程序在不同时间表现不同
【发布时间】:2015-03-15 06:56:16
【问题描述】:

此代码运行一个注册页面

检查是否与正则表达式匹配

这里只检查错误情况

如果出现错误,它应该显示错误,如用户名无效、密码无效、密码不匹配、电子邮件无效

import webapp2
import escape
import regular
form="""
<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">
         %(user_error)s
      </td>
    </tr>

    <tr>
      <td class="label">
        Password
      </td>
      <td>
        <input type="password" name="password" >
      </td>
      <td class="error">
        %(password_error)s
      </td>
    </tr>

    <tr>
      <td class="label">
        Verify Password
      </td>
      <td>
        <input type="password" name="verify" >
      </td>
      <td class="error">
        %(verify_error)s
      </td>
    </tr>

    <tr>
      <td class="label">
        Email (optional)
      </td>
      <td>
        <input type="text" name="email" value="%(email)s">
      </td>
      <td class="error">
        %(email_error)s

      </td>
    </tr>
  </table>

  <input type="submit">
  </form>
 </body>

 </html>

类 MainPage(webapp2.RequestHandler):

   def write_form(self,username="",email="",user_error="",password_error="",verify_error="",email_error=""):
    self.response.out.write(form % {"username" : username,
                                    "email": email,
                                    "user_error": user_error,
                                    "password_error": password_error,
                                    "verify_error": verify_error,
                                    "email_error": email_error})
def get(self):
    self.write_form()
def post(self):
    username=self.request.get('username')
    password=self.request.get('password')
    verify=self.request.get('verify')
    email=self.request.get('email')

    flag=True
    if not (regular.valid_username(username)):
          user_error="invalid username"
          flag=False
    if not (regular.valid_password(password)):
          password_error="invalid password"
          flag=False
    if not (password==verify):
          verify_error="password didnt match"
          flag=False
    if email and not (regular.valid_email(email)):
          email_error="invalid email"
          flag=False
    if not flag:      
       self.response.out.write(password_error)
       self.response.out.write(user_error)
           self.write_form(username,email,user_error,password_error,verify_error,email_error)
application = webapp2.WSGIApplication([
  ('/', MainPage),
 ], debug=True)

【问题讨论】:

  • 你能提供一个minimal的例子吗?您的代码中似乎还有很多可能出错的地方,因此减少问题至关重要。
  • 谢谢..man..我发现错误

标签: python web


【解决方案1】:

这是因为我在调用方法之前没有初始化所有的错误

write_form(...   )
do this
     user_error=""
     password_error=""
     verify_error=""
     email_error=""

你会很高兴的

【讨论】:

  • 我希望你刚刚删除了你的错误。问题是您的代码特有的,不会帮助其他任何人。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-03-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-04-23
相关资源
最近更新 更多