我正在寫一個模塊,在其中電子郵件字符串被插入到數據庫之前被驗證。當我嘗試輸入無效的電子郵件字符串時,它會輸出錯誤的電子郵件,但是當我輸入正確的電子郵件字符串時,它不會執行任何操作。這裏是代碼:這個Python代碼有什麼問題? if塊沒有被執行
#!/usr/bin/python
import MySQLdb
import re
# Open database connection
db = MySQLdb.connect("localhost","root","root","acl")
# prepare a cursor object using cursor() method
cursor = db.cursor()
def addUser(email,password):
try:
if validateEmail(email):
sql = "INSERT INTO acl_users(email, password) VALUES ('%s', '%s')" % (email, password)
# Execute the SQL command
cursor.execute(sql)
# Commit your changes in the database
db.commit()
else:
print "wrong email"
except Exception as inst:
# Rollback in case there is any error
db.rollback()
print inst
def validateEmail(email):
if len(email) > 7:
if re.match("^.+\\@(\\[?)[a-zA-Z0-9\\-\\.]+\\.([a-zA-Z]{2,3}|[0-9]{1,3})(\\]?)$", email) != None:
return True
else:
return False
else:
return False
有什麼建議嗎?
編輯-1
得到了答案的傢伙!在除了block之外創建異常的實例後,我知道導入重新丟失了。解決了這個問題。
很明顯,你用'try/except'塊隱藏了一個有用的異常。這正是你不應該捕捉所有例外的原因。 – 2012-01-31 22:11:52
首先,你有沒有理由使用1和0來代替Built in'True'和'False'?如果我們能看到正確電子郵件的例子,這將有所幫助。 – mklauber 2012-01-31 22:12:47
好..你有一點我現在試着用它。我編輯了我的問題,以便您可以查看我的最新代碼。 – Maverick 2012-01-31 22:18:09