def forecast(request): ctx = {'points': []} if request.POST: try: location = request.POST['位置'] la, lo = getCoordinate(request.POST['位置']) except: la = 104.23726561721571 # 所有二手房的均值 lo = 30.520141715355887 location = "不明" keys = ['区', '所处楼层级别', '总楼层数', '建造年份', '面积', '朝向', '是否近地铁'] parameters = [] for i in range(7): value = request.POST[keys[i]] if value == "": parameters.append(-1) elif i == 4: parameters.append(float(value)) else: parameters.append(int(value)) parameters.extend([datetime.datetime.now().year, datetime.datetime.now().month, datetime.datetime.now().day, la, lo]) ctx['预测价格'] = CART(parameters)[0].round(decimals=2) ctx['points'] = json.dumps([{"lng": lo, "lat": la, "name": location}]) # 避免被转义 return render(request, "forecast.html", ctx)
时间: 2024-02-15 17:28:07 浏览: 73
ZuiXiaoErCheng.rar_forecast_point target_site:www.pudn.com_坐标预测_
这段代码是一个 Python 函数,用于预测二手房的价格。它首先定义了一个空的字典 `ctx`,以便在后续代码中向其添加键值对。然后,它检查是否有 POST 请求,如果有,则获取请求中的位置信息,并使用 `getCoordinate()` 函数获取对应的经纬度。如果位置信息无法获取,则使用所有二手房的经纬度平均值代替。接下来,函数从 POST 请求中获取输入变量的值,并将这些值存储在一个列表 `parameters` 中。如果某个输入变量的值为空,则将其替换为 -1。如果输入变量是面积,则将其转换为浮点数。否则,将其转换为整数。接着,函数将当前的年、月、日以及经纬度添加到 `parameters` 中。最后,函数使用 `CART()` 函数预测二手房的价格,并将结果四舍五入到小数点后两位。它还将经纬度和位置信息添加到字典 `ctx` 中,并使用 `json.dumps()` 函数将这些信息转换为 JSON 格式。最后,函数将 `ctx` 字典作为上下文变量传递给模板,并使用 `render()` 函数将模板渲染为 HTML 页面。
阅读全文