第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

賦值前引用的局部變量“sql”

賦值前引用的局部變量“sql”

慕工程0101907 2021-12-09 15:57:12
我正在嘗試使用 if/elif 編寫一個(gè)函數(shù),我在嘗試執(zhí)行 elif 之后的最終游標(biāo)函數(shù)時(shí)遇到了問(wèn)題。我認(rèn)為我的縮進(jìn)是錯(cuò)誤的,我現(xiàn)在一直在嘗試找出錯(cuò)誤的地方:def api_report(request):    params = request.GET    if params["type"] == 'revenue':        sql = get_revenue_query(params)    elif params["type"] == 'order_count':        sql = get_order_created_count(params)    elif params["type"] == 'product_count':        sql = get_product_count(params)    elif params["type"] == 'order_card_created_count':        sql = get_order_card_created_count(params)    elif params["type"] == 'product_count':        sql = get_product_count(params)    elif params["type"] == 'card':        sql = get_card_query(params)    elif params["type"] == 'order_not_card_created_count':        sql = get_order_not_card_created_count(params)    elif params["type"] == 'product':        get_product_report(params)    elif params["type"] == 'order_rate_by_district':        sql = get_order_rate_by_district(params)        with connection.cursor() as cursor:            cursor.execute(sql)            rows = cursor.fetchall()            data = []            for row in rows:                data.append(OrderRateDataEntry(row[0], row[1], row[2]))        serializer = OrderRateDataEntrySerializer(data, many=True)        return JsonResponse(serializer.data, safe=False)    with connection.cursor() as cursor:        cursor.execute(sql)        rows = cursor.fetchall()        data = []        for row in rows:            data.append(TimeSeriesDataEntry(row[0], row[1]))    serializer = TimeSeriesDataEntrySerializer(data, many=True)    return JsonResponse(serializer.data, safe=False)錯(cuò)誤:cursor.execute(sql)  UnboundLocalError:     local variable 'sql' referenced before assignment在elif params["type"] == 'product':和elif params["type"] == 'order_rate_by_district':有他們自己的函數(shù)來(lái)執(zhí)行,我想其他條件與在代碼的末尾跳轉(zhuǎn)到最后光標(biāo)功能。
查看完整描述

3 回答

?
紅糖糍粑

TA貢獻(xiàn)1815條經(jīng)驗(yàn) 獲得超6個(gè)贊

一旦你運(yùn)行程序,這就是我假設(shè)會(huì)發(fā)生的事情(閱讀 #)


def api_report(request):

    params = request.GET

    if params["type"] == 'revenue': # False so sql is not made, move to next elif

        sql = get_revenue_query(params)


    elif params["type"] == 'order_count': # False so sql is not made, move to next elif

        sql = get_order_created_count(params)


    elif params["type"] == 'product_count': # False so sql is not made, move to next elif

        sql = get_product_count(params)


    elif params["type"] == 'order_card_created_count': # False so sql is not made, move to next elif

        sql = get_order_card_created_count(params)


    elif params["type"] == 'product_count': # False so sql is not made, move to next elif

        sql = get_product_count(params)


    elif params["type"] == 'card': # False so sql is not made, move to next elif

        sql = get_card_query(params)


    elif params["type"] == 'order_not_card_created_count': # False so sql is not made, move to next elif

        sql = get_order_not_card_created_count(params)


    elif params["type"] == 'product': # False so sql is not made, move to next elif

        get_product_report(request) # P.S There is also a chance that if this is run then sql variable will also not be made!


    elif params["type"] == 'order_rate_by_district':  # This is also false so code leaves.

        sql = get_order_rate_by_district(params)


        with connection.cursor() as cursor:

            cursor.execute(sql)

            rows = cursor.fetchall()

            data = []

            for row in rows:

                data.append(OrderRateDataEntry(row[0], row[1], row[2]))

        serializer = OrderRateDataEntrySerializer(data, many=True)

        return JsonResponse(serializer.data, safe=False)


        pass

    # When the code is here it still didn't made variable sql. Thus so will crashes when refere to variable sql as it wasn't yet created

    with connection.cursor() as cursor:

        cursor.execute(sql) # sql was never made here and thus doesn't exist. Code crashes here.

        rows = cursor.fetchall()

        data = []

        for row in rows:

            data.append(TimeSeriesDataEntry(row[0], row[1]))

    serializer = TimeSeriesDataEntrySerializer(data, many=True)

    return JsonResponse(serializer.data, safe=False)

Maby 在第一個(gè) if 語(yǔ)句之前 make 并清空 sql 變量。(或任何您喜歡的默認(rèn)值)


查看完整回答
反對(duì) 回復(fù) 2021-12-09
?
蝴蝶刀刀

TA貢獻(xiàn)1801條經(jīng)驗(yàn) 獲得超8個(gè)贊

您應(yīng)該重新排列 if 序列以忽略sql空時(shí)的情況。否則你可以sql = 'some default value'在它上面添加,但它已經(jīng)很難閱讀了。


查看完整回答
反對(duì) 回復(fù) 2021-12-09
?
紅顏莎娜

TA貢獻(xiàn)1842條經(jīng)驗(yàn) 獲得超13個(gè)贊

在我改變了


 elif params["type"] == 'product':

      get_product_report(request)


 elif params["type"] == 'product': 

      return get_product_report(params)

它起作用是因?yàn)?get_product_report 是它自己的函數(shù)所以沒(méi)有任何返回結(jié)果到 param = 'product' 條件所以它是錯(cuò)誤的產(chǎn)品參數(shù)行(返回?zé)o)


查看完整回答
反對(duì) 回復(fù) 2021-12-09
  • 3 回答
  • 0 關(guān)注
  • 235 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)