flask:从用户获取表单数据时重复数据

whhtz7ly  于 2021-06-20  发布在  Mysql
关注(0)|答案(0)|浏览(229)

我一直在尝试将用户表单数据(如日期、时间、数量等)发送到数据库,并在数据库中获取用户数据。但问题是,代码从某个点开始重复自身,并将整个过程执行两次。
这是app.py文件

@app.route('/takeOrder')
    def takeOrder():
        return render_template('order.html')

    @app.route('/takeOrder', methods = ['POST','GET'])
    def order():

        if request.method == 'POST':

            _userEmail = str(escape(session['email']))
            _chefEmail = 'chef@gmail.com'
            _eventDate = request.form['eventDate']
            _eventTime = request.form['eventTime']
            _description = request.form['description']
            _quantity = request.form['quantity']
            _amount = 100
            _recipeName = 'aloo parotha'

            loggerClass.info('>>>>>>>>>>>>>>' + _userEmail)

            _customerAddressID = orderDB.getAddressID(_userEmail)

            loggerClass.info('>>>>>>>>>>>>>>' + _customerAddressID)

            _chefAddressID = orderDB.getAddressID(_chefEmail)

            loggerClass.info('>>>>>>>>>>>>>>' + _chefEmail)

            _customerID = orderDB.getCustomerID(_customerAddressID)
            loggerClass.info('>>>>>>>>>>>>>>' + _customerID)

            _chefID = orderDB.getChefID(_chefAddressID)
            loggerClass.info('>>>>>>>>>>>>>>' + _chefID)

            _customerName = orderDB.getCustomerName(int(_customerAddressID))
            loggerClass.info('>>>>>>>>>>>>>>' + _customerName)

            _chefName = orderDB.getChefName(int(_chefAddressID))
            loggerClass.info('>>>>>>>>>>>>>>' + _chefName)

            orderFormData = OrderEmailData.OrderFormData(_userEmail, _chefEmail, _customerID, _chefID, _recipeName,
                                                          _eventDate, _eventTime, _description, _quantity, _amount)

            orderNameData = OrderEmailData.OrderNamesData(_customerName, _chefName)
            insertUserOrder = orderDB.insertOrder(orderFormData)

            loggerClass.info('>>>>>>>>>>>>>>' + insertUserOrder)

            if len(insertUserOrder) == 14:
                orderEmail.customerOrderEmail(mail, orderNameData, orderFormData)
                orderEmail.chefOrderEmail(mail, orderNameData, orderFormData)

                return 'order submitted'

            return 'Order failed'

这里是数据库连接文件,我一直在推数据。

def getDBConnection():

        try:
            dbConfig = DBConfig.DBConfig()
            connection = dbConfig.getConnection()
            logger.info('ORDER DB -> CONNECTION CREATED')

        except:
            connection = None
            logger.error('ORDER DB -> CONNECTION NOT CREATED')
        finally:
            logger.info('ORDER DB -> CONNECTION RETURNED')
            return connection

    def getAddressID(userEmail):
        try:
            connection = OrderDB.getDBConnection()
            with connection.cursor() as cursor:
                cursor.execute( "call selectAddressid(%s, @p_address_id);", (userEmail) )
                cursor.execute("select @p_address_id;")
                _addressID = cursor.fetchone()
            connection.commit()
            return str(_addressID[0])
        except:
            logger.error('ERROR: IN FETCHING ADDRESS ID')
            return 0
        finally:
            if connection is not None:
                connection.close()
                logger.info('ADDRESS ID: CONNECTION CLOSED')

    def getCustomerID(_addressID):
        try:
            connection = OrderDB.getDBConnection()
            with connection.cursor() as cursor:                
                cursor.execute( "call selectCustomerID(%s, @p_customer_id);", (int(_addressID) ))
                cursor.execute("select @p_customer_id;")
                _customerID = cursor.fetchone()
            connection.commit()
            return str(_customerID[0])
        except:
            logger.error('ERROR: IN FETCHING CUSTOMER ID')
            return 0
        finally:
            if connection is not None:
                connection.close()
                logger.info('CUSTOMER ID FETCHING: DB CONNECTION CLOSED')

这是日志文件

07/29/2018 12:31:12 AM - INFO - 127.0.0.1 - - [29/Jul/2018 00:31:12] "GET /takeOrder HTTP/1.1" 200 -
07/29/2018 12:31:36 AM - INFO - >>>>>>>>>>>>>>customer@gmail.com
07/29/2018 12:31:36 AM - INFO - >>>>>>>>>>>>>>customer@gmail.com
07/29/2018 12:31:36 AM - INFO - ORDER DB -> CONNECTION CREATED
07/29/2018 12:31:36 AM - INFO - ORDER DB -> CONNECTION RETURNED
07/29/2018 12:31:36 AM - INFO - ORDER DB -> CONNECTION CREATED
07/29/2018 12:31:36 AM - INFO - ORDER DB -> CONNECTION RETURNED
07/29/2018 12:31:36 AM - INFO - ADDRESS ID: CONNECTION CLOSED
07/29/2018 12:31:36 AM - INFO - >>>>>>>>>>>>>>199
07/29/2018 12:31:36 AM - INFO - ADDRESS ID: CONNECTION CLOSED
07/29/2018 12:31:36 AM - INFO - >>>>>>>>>>>>>>199
07/29/2018 12:31:36 AM - INFO - ORDER DB -> CONNECTION CREATED
07/29/2018 12:31:36 AM - INFO - ORDER DB -> CONNECTION RETURNED
07/29/2018 12:31:36 AM - INFO - ORDER DB -> CONNECTION CREATED
07/29/2018 12:31:36 AM - INFO - ORDER DB -> CONNECTION RETURNED
07/29/2018 12:31:36 AM - INFO - ADDRESS ID: CONNECTION CLOSED
07/29/2018 12:31:36 AM - INFO - >>>>>>>>>>>>>>chef@gmail.com
07/29/2018 12:31:36 AM - INFO - ADDRESS ID: CONNECTION CLOSED
07/29/2018 12:31:36 AM - INFO - >>>>>>>>>>>>>>chef@gmail.com

有什么建议为什么它会自己重复吗?它是否与try..有关,除了在db连接文件中?
我试过@app.before\u first\u request decorator and debug=false,但还是没有成功。
谢谢

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题