#!/usr/bin/env python3 # -*- coding: utf-8 -*- import time from django.views import View from Model.models import Device_User, RegionCountryModel from Object.ResponseObject import ResponseObject from Object.TokenObject import TokenObject import json class RegionCountryView(View): def get(self, request, *args, **kwargs): request.encoding = 'utf-8' operation = kwargs.get('operation', None) request_dict = request.GET return self.validate(request_dict, operation) def post(self, request, *args, **kwargs): request.encoding = 'utf-8' operation = kwargs.get('operation', None) request_dict = request.POST return self.validate(request_dict, operation) def validate(self, request_dict, operation): token = TokenObject(request_dict.get('token', None)) response = ResponseObject() if token.code != 0: return response.json(token.code) if operation == 'initUserRegion': return self.do_initUserRegion(token.userID, request_dict, response) elif operation == 'initRegionDate': return self.do_initRegionDate(request_dict, response) else: return response.json(404) def do_initUserRegion(self, userID, request_dict, response): user_qs = Device_User.objects.filter(userID=userID) number = request_dict.get('number', None) if not user_qs.exists(): return response.json(309) user_qs[0].region_country = number user_qs[0].save() return response.json() def do_initRegionDate(self, request_dict, response): filepath = request_dict.get('filepath') with open(filepath, 'r', encoding='UTF-8') as f: region_list = json.load(f) #region_list = json.loads(fobj) now_time = int(time.time()) regin_list = [] for region in region_list: name = region['name'] region_id = region['region_id'] countries_list = region['countries'] for countries in countries_list: cn = countries['cn'] en = countries['en'] number = countries['number'] regin_list.append(RegionCountryModel(number=number, region_id=region_id, name=name, cn=cn, en=en, add_time=now_time, update_time=now_time)) RegionCountryModel.objects.bulk_create(regin_list) return response.json(0)