首页 > 解决方案 > 在 django 中赋值之前引用的局部变量“params”

问题描述

这是我的看法

def ATFinfo(Request):
    # inputdata = Request.GET.get('inputdata')
    url = 'www.google.com'
    req = Request.GET
    print("hi",req)
    req_list = list(dict(req).values())
    print("list",req_list)
    params_count = len(req_list)
    print('params_count', params_count)
    if params_count > 0:
        for i in range(params_count):
            params = params + req_list[i+1][0] + '=' + req_list[i+1][1] + '&' 
        url = url + params

        print('paramfinal',params)
    return render(Request, 'hello/ATF_Dashboard.html')

在这个视图中,我在行赋值之前收到错误局部变量“params”引用params = params + req_list[i+1][0] + '=' + req_list[i+1][1] + '&' 如何解决这个问题?我也无法理解这里有什么问题

标签: djangodjango-views

解决方案


当您尝试在params此处专门使用 expression时,尚未定义params + req_list...该变量。params

for i in range(params_count):
    params = params + req_list[i+1][0] + '=' + req_list[i+1][1] + '&' 

你必须先定义它:

params = ""
for i in range(params_count):
    params = params + req_list[i+1][0] + '=' + req_list[i+1][1] + '&'

您还可以使用+=运算符:

params += req_list[i+1][0] + '=' + req_list[i+1][1] + '&'

同样基于粘贴的代码,请注意这一行:

url = url + params

不会在逻辑中添加任何url此后未使用的内容(除非粘贴的代码不是完整版本)。


推荐阅读