Explorar o código

优化ip地区信息存储和读写

locky hai 1 ano
pai
achega
606798f5f5
Modificáronse 2 ficheiros con 9 adicións e 3 borrados
  1. 3 1
      Controller/ShadowController.py
  2. 6 2
      Object/IPWeatherObject.py

+ 3 - 1
Controller/ShadowController.py

@@ -177,9 +177,11 @@ def update_device_shadow(request):
 
 
 def get_district(ip):
-    ip_addr_qs = IPAddr.objects.filter(ip=ip).values('district')
+    ip_addr_qs = IPAddr.objects.filter(ip=ip).values('district', 'city')
     if ip_addr_qs.exists():
         district = ip_addr_qs[0]['district']
+        if district == '':
+            district = ip_addr_qs[0]['city']
     else:
         ip_qs = IPQuery(ip)
         district = ip_qs.district

+ 6 - 2
Object/IPWeatherObject.py

@@ -41,8 +41,12 @@ class IPQuery:
                 if country_id == 'CN' and city != '':
                     city += '市'
 
-                # ip地址信息存表
-                IPAddr.objects.create(ip=ip, district=district, city=city, region=region, country_code=country_id)
+                # ip地址信息存表或更新
+                ip_addr_qs = IPAddr.objects.filter(ip=ip)
+                if ip_addr_qs.exists():
+                    ip_addr_qs.update(district=district, city=city, region=region, country_code=country_id)
+                else:
+                    IPAddr.objects.create(ip=ip, district=district, city=city, region=region, country_code=country_id)
 
                 # 确定天气城市
                 if district != '':