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

时间:2018-07-29 03:51:15

标签: python mysql database flask

我一直在尝试将用户表单数据(例如日期,时间,数量等)发送到数据库,并且一直在数据库中获取用户数据。但是问题在于,代码从某个角度开始重复自身,并重复两次整个过程。

这是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..except有关吗?

我尝试使用@ app.before_first_request装饰器和debug = False,但还是没有运气。

谢谢

0 个答案:

没有答案
相关问题