500Flask窗体包含空值时出现内部服务器错误

2024-06-08 00:50:01 发布

您现在位置:Python中文网/ 问答频道 /正文

我把这个表单发布到一个名为submitRegistration的应用程序路径上,代码如下……但是它没有返回一些关于丢失字段的json,而是抛出了一个500内部服务器错误。有人能解释一下为什么吗?在

@app.route('/submitRegistration',methods=['POST', 'GET'])
def submitRegistration():
    try:
    _contactName = request.form['contact_name']
    _businessName = request.form['business_name']
    _telephone = request.form['telephone']
    _email = request.form['email']
    _address = request.form['address']
    _city = request.form['city']
    _state = request.form['state']
    _zip = request.form['zip']
    _services = request.form['services']

    # validate the received values
    if _contactName and _email and _telephone and _address and _city and _state and _zip and _services:

        # All Good, let's call MySQL
        conn = mysql.connect()
        cursor = conn.cursor()
        cursor.callproc('sp_submitRegistration',(_contactName,_businessName,_telephone,_email,_address,_city,_state,_zip,_services))
        data = cursor.fetchall()

        # SMS Confirmation
        smsClient = TwilioRestClient(TWILIO_ACCOUNT_SID, TWILIO_AUTH_TOKEN)
        message = smsClient.messages.create(
            body=TWILIO_REG_SMS_MESSAGE,
            to=_telephone,
            from_=TWILIO_FROM_TELEPHONE,
        )

        if len(data) is 0:
            conn.commit()
            return json.dumps({'message':'Registration submitted successfully !'})
        else:
            return json.dumps({'error':str(data[0])})
    else:
        return json.dumps({'html':'<span>Enter the required fields</span>'})

except Exception as e:
    return json.dumps({'error':str(e)})
finally:
    cursor.close()
    conn.close()

控制台输出

^{pr2}$

新建应用程序路由。。。在

# Functions 
@app.route('/submitRegistration',methods=['POST', 'GET'])
def submitRegistration():
    try:
    _contactName = request.form['contact_name']
    _businessName = request.form['business_name']
    _telephone = request.form['telephone']
    _email = request.form['email']
    _address = request.form['address']
    _city = request.form['city']
    _state = request.form['state']
    _zip = request.form['zip']
    _services = request.form['services']

    # validate the received values
    if _contactName and _email and _telephone and _address and _city and _state and _zip and _services != "":

            # All Good, let's call MySQL
            conn = mysql.connect()
            cursor = conn.cursor()
            cursor.callproc('sp_submitRegistration',(_contactName,_businessName,_telephone,_email,_address,_city,_state,_zip,_services)    )
            data = cursor.fetchall()

        # SMS Confirmation
        smsClient = TwilioRestClient(TWILIO_ACCOUNT_SID, TWILIO_AUTH_TOKEN)
        message = smsClient.messages.create(
            body=TWILIO_REG_SMS_MESSAGE,  
            to=_telephone,
            from_=TWILIO_FROM_TELEPHONE,
            )       

        if len(data) is 0:
                conn.commit()
                return json.dumps({'message': 'Registration submitted successfully !'})
                cursor.close()
                conn.close()
        else:
                return json.dumps({'error':str(data[0])})
        else:
            return json.dumps({'html': '<span>Enter the required fields</span>'})

    except Exception as e:
        return json.dumps({'error':str(e)})    

Tags: andformjsoncityreturnaddressemailrequest
1条回答
网友
1楼 · 发布于 2024-06-08 00:50:01

这里的答案基本上是关闭if语句之外的mysql连接造成了一个超出范围的条件。。。在

更正应用程序路径下面。在

# Functions 
@app.route('/submitRegistration',methods=['POST', 'GET'])
def submitRegistration():
    try:
    _contactName = request.form['contact_name']
    _businessName = request.form['business_name']
    _telephone = request.form['telephone']
    _email = request.form['email']
    _address = request.form['address']
    _city = request.form['city']
    _state = request.form['state']
    _zip = request.form['zip']
    _services = request.form['services']

    # validate the received values
    if _contactName and _email and _telephone and _address and _city and _state and _zip and _services != "":

            # All Good, let's call MySQL
            conn = mysql.connect()
            cursor = conn.cursor()
            cursor.callproc('sp_submitRegistration',(_contactName,_businessName,_telephone,_email,_address,_city,_state,_zip,_services)    )
            data = cursor.fetchall()

        # SMS Confirmation
        smsClient = TwilioRestClient(TWILIO_ACCOUNT_SID, TWILIO_AUTH_TOKEN)
        message = smsClient.messages.create(
            body=TWILIO_REG_SMS_MESSAGE,  
            to=_telephone,
            from_=TWILIO_FROM_TELEPHONE,
            )       

        if len(data) is 0:
                conn.commit()
                return json.dumps({'message': 'Registration submitted successfully !'})
                cursor.close()
                conn.close()
        else:
                return json.dumps({'error':str(data[0])})
        else:
            return json.dumps({'html': '<span>Enter the required fields</span>'})

    except Exception as e:
        return json.dumps({'error':str(e)})    

相关问题 更多 >

    热门问题