私は電子メール文字列がデータベースに挿入される前に検証されるモジュールを作成しています。無効な電子メール文字列を入力しようとすると、間違った電子メールメッセージでブロックされますが、正しい電子メール文字列を入力すると何もしません。コードは次のとおりです。この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
回答ありがとうございました!ブロックを除いて例外のインスタンスを作成した後、私はインポートが不足していたことを知る必要があります。問題を解決した
明らかに、あなたは 'try/except'ブロックで有用な例外を隠しています。これはまさにあなたがすべての例外を捕まえてはならない理由です。 –
まず、Built in 'True'と' False'の代わりに1と0を使用する理由がありますか?正しいメールの例を見ることができれば助かります。 – mklauber
ええ。あなたは今私はそれを試してポイントを持っています。あなたの最新のコードをチェックできるように私は自分の質問を編集しました。 – Maverick