| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498 |
- import datetime
- import hashlib
- # Create your views here.
- import json
- import os
- import random
- import re
- import subprocess
- import time
- import urllib
- import urllib.parse
- from datetime import date, datetime
- from io import BytesIO
- import requests
- import xlwt
- from django.contrib import auth
- from django.contrib.auth import authenticate
- from django.contrib.auth import login as auth_login
- from django.contrib.auth import logout
- from django.contrib.auth.decorators import login_required
- from django.contrib.auth.hashers import check_password, make_password
- from django.core import serializers
- from django.db.models import Q
- from django.http import HttpResponse, JsonResponse, StreamingHttpResponse
- from django.shortcuts import redirect, render
- from django.utils import timezone
- from django.views.generic import ListView
- from django.views.generic.base import View
- from PIL import Image
- from _io import StringIO
- from apps.AppInfoManage.models import *
- from apps.EquipManage.views import CJSONEncoder
- from yfwlw_pro import settings
- from yfwlw_pro.settings import get_client_ip
- from apps.ReportManage.all_dict import transpont_equip_scd,transpont_equip_cbd,transpont_equip_qxz,transpont_equip_ybq,transpont_equip_bzy
- # app登陆
- class app_log(View):
- def post(self, request):
- user_name = request.POST.get("username")
- pass_word = request.POST.get("password")
- #校验用户和密码
- if User_Reporter.objects.filter(name=user_name).exists():
- account = User_Reporter.objects.get(name=user_name)
- if Purchase.objects.filter(userid__username=account.user_id.username).exists():
- ret = check_password(pass_word, account.password)
- if ret:
- data = [{
- "name": account.name,
- "photo": account.photo.name,
- "phone": account.phone,
- "username": account.user_id.username,
- "addr": account.addr,
- "time": account.time.strftime("%Y-%m-%d %H:%M:%S"),
- "is_active":account.user_id.is_active,
- 'is_staff':account.user_id.is_staff,
- 'is_superuser':account.user_id.is_superuser,
- }]
- #将当前登录的用户名写入session
- request.session['username'] = user_name
- data = json.dumps(data)
- return HttpResponse(data)
- else:
- data = 2
- else:
- data = 2
- else:
- data = 1
- data = json.dumps(data)
- return HttpResponse(data)
- # 退出APP登录:
- @login_required
- def app_out(request):
- username = request.POST.get('username')
- print("用户退出")
- del request.session['username']
- auth.logout(request)
- data = "0"
- return HttpResponse(data)
- # 个人信息:
- class app_user_in(View):
- def get(self, request):
- user_name = request.session["username"]
- if user_name:
- user = User_Reporter.objects.filter(name=user_name)
- user_list = []
- for x in user:
- data = {"name": x.name,
- "name": x.name,
- "photo": x.photo.name,
- "phone": x.phone,
- "username": x.user_id.username,
- "addr": x.addr,
- "time": x.time.strftime("%Y-%m-%d %H:%M:%S"),
- "is_active":x.user_id.is_active,
- 'is_staff':x.user_id.is_staff,
- 'is_superuser':x.user_id.is_superuser,
- }
- data = json.dumps(data)
- else:
- data = 0
- print("用户未登陆")
- return HttpResponse(data)
- # 修改头像 未完成
- class app_user_head(View):
- def post(self, request):
- name = request.session['username']
- print("name", name)
- user_name = MyUser.objects.get(username=name)
- user_name = str(user_name)
- user_photo = request.FILES.get('file')
- print("APP修改用户头像:", user_photo)
- user_photo_dir = 'user_photo/'
- # 判断如果路径不存在,即创建路径
- if os.path.exists(user_photo_dir) == False:
- os.makedirs(user_photo_dir)
- img = Image.open(user_photo)
- img.save(user_photo_dir + user_name+".png")
- new_photo = user_photo_dir + user_name+".png"
- # 数据库关联设备,并在照片的表中存入路径:
- user.user_picture = new_photo
- user_name.save()
- data = "0"
- return HttpResponse(data)
-
- # 省市区
- class Citys(View):
- def get(self, request):
- city = []
- ret = Address_Province.objects.filter(parent_code__in=[1,2,3,4,5,6,7])
- for i in ret:
- city.append({"name": i.name, 'code': i.code,"id":i.id,
- "parent_code": i.parent_code})
- data = json.dumps(city)
- return HttpResponse(data)
- def post(self, request):
- name = request.session['username']
- user_name = User_Reporter.objects.get(name=name)
- ret = request.POST.get("ret")
- print("ret",ret)
- data = []
- if ret == "city": #月份查询
- city_id = request.POST.get("id")
- print("city_id",city_id)
- month_list = User_Month.objects.filter(addr_id=city_id)
- if month_list:
- for i in month_list:
- data.append({"month":i.month,"id":i.id})
-
- else:
- data = {"code":None}
- elif ret == "harm": #分类查询
- month_id = request.POST.get("month_id")
- pest_sort =request.POST.get("pest_sort")
- print("month_id",month_id)
- print("pest_sort",pest_sort)
- user_name = User_Reporter.objects.get(name=name)
- harm_list = Pest_Harm_New.objects.filter(Q(month_id=month_id, pest_sort=pest_sort) | Q(month_id=month_id, user_id=user_name,pest_sort=pest_sort))
- date = []
- if harm_list:
- for i in harm_list:
- date.append({"pest":i.pest,"crop_sort":i.crop_sort})
- for i in date: #去重
- if i not in data:
- data.append(i)
- else:
- data = {"code":None}
- elif ret == "details": #种类详情
- harm_name = request.POST.get("harm_name")
- print(harm_name)
- pest_sort = request.POST.get("pest_sort")
- print(pest_sort)
- month_id = request.POST.get("month_id")
- print(month_id)
- pest_harm = Pest_Harm_New.objects.filter(Q(pest=harm_name,pest_sort=pest_sort,month_id=month_id)| Q(pest=harm_name,pest_sort=pest_sort,user_id=user_name,month_id=month_id))
- if pest_harm:
- for i in pest_harm:
- data.append({"label":i.pest_name,"value":i.id})
- else:
- data = {"code":None}
- elif ret == "crea": #添加种类
- month_id = request.POST.get("month_id")
- pest = request.POST.get("pest")
- crop_sort = request.POST.get("crop_sort")
- pest_sort = request.POST.get("pest_sort")
- month = User_Month.objects.get(id=month_id)
- harm_list = Pest_Harm_New.objects.filter(user_id=user_name,month_id=month,pest=pest,pest_sort=pest_sort)
- if harm_list.exists():
- data = {"code":None}
- else:
- Pest_Harm_New.objects.create(pest=pest,month_id=month,user_id=user_name,crop_sort=crop_sort,pest_sort=pest_sort)
- data = {"code":200}
- elif ret == "add_harm": #添加病害
- month_id = request.POST.get("month_id")
- print("month_id",month_id)
- harm = request.POST.get("harm")
- print("harm",harm)
- pest_sort = request.POST.get("pest_sort")
- print("pest_sort",pest_sort)
- pest_name = request.POST.get("pest_name")
- print("pest_name",pest_name)
- month = User_Month.objects.get(id=month_id)
- try:
- pest_list = Pest_Harm_New.objects.filter(pest=harm,month_id=month_id,pest_sort=pest_sort)
- print(pest_list)
- for i in pest_list:
- if i.pest_name:
- if Pest_Harm_New.objects.filter(pest=i.pest,month_id=month_id,pest_sort=pest_sort,pest_name=pest_name,user_id=user_name).exists():
- data = {"code":201}
- data = json.dumps(data)
- return HttpResponse(data)
- else:
- Pest_Harm_New.objects.create(pest=i.pest,pest_sort=pest_sort,pest_name=pest_name,month_id=month,user_id=user_name,crop_sort=i.crop_sort)
- data = {"code":200}
- data = json.dumps(data)
- return HttpResponse(data)
- else:
- harm_list = Pest_Harm_New.objects.get(id=i.id)
- harm_list.pest_name = pest_name
- harm_list.save()
- data = {"code":200}
- data = json.dumps(data)
- return HttpResponse(data)
- except Exception as e:
- print(e)
- data = {"code":None}
- elif ret == "del_harm":
- month_id = request.POST.get("month_id")
- print("month_id",month_id)
- harm = request.POST.get("harm")
- print("harm",harm)
- pest_sort = request.POST.get("pest_sort")
- print("pest_sort",pest_sort)
- pest_name = request.POST.get("pest_name")
- print("pest_name",pest_name)
- month = User_Month.objects.get(id=month_id)
- try:
- pest_list = Pest_Harm_New.objects.filter(pest=harm,month_id=month_id,pest_sort=pest_sort,pest_name=pest_name,user_id=user_name).delete()
- pest_list.pest_name = ""
- pest_list.save()
- data = {"code":200}
- except Exception as e:
- print("error message:",e)
- data = {"code":400}
- data = json.dumps(data)
- return HttpResponse(data)
- else:
- data = {"code":ret,"test":"ret值不对"}
- data = json.dumps(data, ensure_ascii=False)
- print(data)
- return HttpResponse(data)
- #新建数据信息
- class Cate_Collector_User(View):
- '''保存地址数据'''
- def get(self,request):
- pest_sort = request.GET.get("pest_sort")
- print("pest_sort",pest_sort)
- name = request.session['username']
- # name = "demo"
- print("name", name)
- user_name = User_Reporter.objects.get(name=name)
- date = []
- data = []
- city_list = []
- city = []
- user_list = User_Data_Table_New.objects.filter(user_id=user_name,harm_id__pest_sort=pest_sort)
- if user_list:
- for i in user_list:
- months = i.harm_id.month_id.month + "月份"
- date.append({"value":months})
- city.append({"value":i.harm_id.month_id.addr_id.name})
- for i in date:
- if i not in data:
- data.append(i)
- for i in city:
- if i not in city_list:
- city_list.append(i)
- data = {"month":data,"city":city_list}
- else:
- data = {"code":200}
- data = json.dumps(data)
- return HttpResponse(data)
- def post(self, request):
- name = request.session['username']
- print("name", name)
- user_name = User_Reporter.objects.get(name=name)
- harm_id = request.POST.get("harm_id")
- growth_stages = request.POST.get("growth_stages")
- addr_photo = request.POST.get("addr_photo")
- area = request.POST.get("area")
- pestname = request.POST.get("pestname")
- cens_method = request.POST.get("cens_method")
- user_id = request.POST.get("user_id")
- data = []
- date = []
- pestname = json.loads(pestname)
- for x in pestname:
- keys = x.split(':')[:1]
- keys = " ".join(keys)
- data.append(keys)
- values = x.split(':')[1:]
- values = " ".join(values)
- date.append(values)
- pestname = dict(zip(data, date))
- print("user_id",user_id)
- print("harm_id",harm_id)
- print("growth_stages",growth_stages)
- print("addr_photo",addr_photo)
- print("area",area)
- print("pestname",pestname)
- print("cens_method",cens_method)
- harm_id = Pest_Harm_New.objects.get(id=harm_id)
- print("harm_id_list",harm_id.pest_sort)
- if user_id:
- print("修改")
- user_list = User_Data_Table_New.objects.get(id=user_id)
- user_list.harm_id=harm_id
- user_list.growth_stages=growth_stages
- user_list.addr_photo=addr_photo
- user_list.area = area
- user_list.pestname = pestname
- user_list.cens_method= cens_method
- user_list.save()
- data = {"code":200}
- else:
- print("新建")
- try:
- User_Data_Table_New.objects.create(
- harm_id=harm_id,growth_stages=growth_stages,addr_photo=addr_photo,
- area=area,pestname=pestname,cens_method=cens_method,user_id=user_name)
- data = {"code":200}
- except Exception as e:
- print(e)
- data = {"code":None}
- data = json.dumps(data)
- return HttpResponse(data)
- #添加用户上传的图片
- class Account_Photo(ListView):
- def post(self, request):
- harm_photos = request.FILES.get('file')
- print(harm_photos)
- if harm_photos:
- print("病虫害图片:", harm_photos)
- harm_photo_dir = 'harm_photos/'
- end_name = harm_photos.name.split('.')[-1]
- # 判断如果路径不存在,即创建路径
- if os.path.exists(harm_photo_dir) == False:
- os.makedirs(harm_photo_dir)
- img = Image.open(harm_photos)
- now_time = time.strftime(
- '%Y%m%d%H%M%S', time.localtime(time.time()))
- pic_name = now_time + '.' + end_name
- print("pic_name:", pic_name)
- #转换图片类型 因为用户的进行上传识别的图片格式不定,需要进行转换格式,mode=P 全部改成 mode=RGB这种格式进行保存
- img = img.convert('RGB')
- img.save(harm_photo_dir + pic_name)
- harm_photos = harm_photo_dir + pic_name
- print("harm_photos:", harm_photos)
- data = {"src": harm_photos}
- else:
- harm_photos = "0"
- data = {"src": harm_photos}
- data = json.dumps(data)
- return HttpResponse(data)
- #删除用户上传的图片
- class Del_Account_Photo(ListView):
- def post(self, request):
- pic_list = request.POST.get("pic_list")
- pest_id = request.POST.get("id")
- date = []
- if pest_id:
- user_list = User_Data_Table_New.objects.get(id=pest_id)
- user_list.addr_photo = pic_list
- if pic_list.find(",") != -1:
- pic_list = pic_list.split(",")
- for i in pic_list:
- date.append(i)
- else:
- date.append(pic_list)
- for i in date:
- if os.path.exists(i) == True:
- # 删除图片文件
- if pest_id:
- os.remove(i)
- user_list.addr_photo = ''
- user_list.save()
- else:
- os.remove(i)
- data = {"code":200}
- else:
- data = {"code":None}
- data = json.dumps(data)
- return HttpResponse(data)
- # 用户详情信息和植物病级查看
- # id 采集人的名id
- class SeeUser(View):
- def get(self, request):
- page = int(request.GET.get("page"))
- name = request.session.get("username")
- pest_sort = request.GET.get("pest_sort")
- print(pest_sort)
- name = User_Reporter.objects.get(name=name)
- data = []
- print("name",name)
- user_list = User_Data_Table_New.objects.filter(user_id=name,harm_id__pest_sort=pest_sort)
- if user_list.exists():
- for i in user_list:
- data.append({"user_name":i.user_id.name,"defa":i.defa,"pest":i.harm_id.pest,"month":i.harm_id.month_id.month,
- "city":i.harm_id.month_id.addr_id.name,"id":i.id,"upl_time":i.upl_time.strftime('%Y-%m-%d %H:%M:%S'),"harm_id":i.harm_id.id,
- })
- num = len(user_list)
- print("num",num)
- dat = data[(6*(page-1)):(page*6)]
- data = {'dat': dat, 'num': num}
- data = json.dumps(data)
- return HttpResponse(data)
- def post(self, request):
- ret = request.POST.get("ret")
- print("ret",ret)
- name = request.session["username"]
- user_name = User_Reporter.objects.get(name=name)
- print(user_name)
-
- if ret == "see": #详情
- user_id = request.POST.get("user_id")
- print('user_id',user_id)
- user_list = User_Data_Table_New.objects.get(id=user_id)
- data = []
- date = []
- dats = []
- pestname = eval(user_list.pestname)
- key = list(pestname)
- valu = list(pestname.values())
- for x in range(len(key)):
- date.append(key[x] + ":" + valu[x])
- if user_list.addr_photo:
- #判断用户上传的图片是多张还是一张进行切割
- if user_list.addr_photo.find(",") != -1:
- prc_list = user_list.addr_photo.split(",")
- for y in prc_list:
- dats.append(y)
- else:
- dats.append(user_list.addr_photo)
- else:
- dats = "null"
- data.append({"user_name":user_name.name,"growth_stages":user_list.growth_stages,"addr_photo":dats,"pestname":date,"area":user_list.area,"pest_name":user_list.harm_id.pest_name,"month":user_list.harm_id.month_id.month,"defa":user_list.defa,
- "pest":user_list.harm_id.pest,"crop_sort":user_list.harm_id.crop_sort,"cens_method":user_list.cens_method,"city":user_list.harm_id.month_id.addr_id.name,"id":user_list.id,"upl_time":user_list.upl_time.strftime('%Y-%m-%d %H:%M:%S')
- ,"city_id":user_list.harm_id.month_id.addr_id.id,"harm_id":user_list.harm_id.id,"pest_sort":user_list.harm_id.pest_sort,
- })
-
- elif ret == "all_del": #删除
- date = []
- user_id = request.POST.get("user_id")
- userid_list = json.loads(user_id)
- for i in userid_list:
- user_list = User_Data_Table_New.objects.get(id=i)
- print(user_list.addr_photo)
- if user_list.addr_photo.find(",") != -1:
- pic_list = user_list.addr_photo.split(",")
- for x in pic_list:
- if os.path.exists(x):
- os.remove(x)
- else:
- print(user_list.addr_photo)
- if os.path.exists(user_list.addr_photo):
- os.remove(user_list.addr_photo)
- data = {"code":200}
- user_list.delete()
- elif ret == "screen": #
- data = []
- city = request.POST.get("city")
- month = request.POST.get("month")
- pest_sort = request.POST.get("pest_sort")
-
- print(user_name.id)
- if month:
- user_list = User_Data_Table_New.objects.filter(user_id=user_name.id,harm_id__month_id__month=month,harm_id__pest_sort=pest_sort)
- else:
- user_list = User_Data_Table_New.objects.filter(user_id=user_name.id,harm_id__month_id__addr_id__name=city,harm_id__pest_sort=pest_sort)
- nums = len(user_list)
- if user_list:
- for i in user_list:
- data.append({
- "user_name":i.user_id.name,
- "city":i.harm_id.month_id.addr_id.name,"id":i.id,"upl_time":i.upl_time.strftime('%Y-%m-%d %H:%M:%S')
- })
- data = {"date":data,"nums":nums}
- else:
- data = {"code":None,"nums":nums}
- elif ret == "def": #设置默认
- user_id = request.POST.get("user_id")
- name = request.session.get("username")
- print("user_id",user_id)
- user_li = User_Data_Table_New.objects.get(id=user_id)
- print("user_li",user_li)
- userid = User_Reporter.objects.get(name=name)
- user_list = User_Data_Table_New.objects.filter(user_id=userid,defa=1)
- if len(user_list):
- for i in user_list:
- i.defa = 0
- i.save()
- user_li.defa = 1
- user_li.save()
- else:
- user_li.defa = 1
- user_li.save()
- data = {"code":200}
- elif ret == "del": #取消默认
- user_id = request.POST.get("user_id")
- user_li = User_Data_Table_New.objects.get(id=user_id)
- user_li.defa = 0
- user_li.save()
- data = {"code":200}
- data = json.dumps(data)
- print(data)
- return HttpResponse(data)
- #饼状图病害展示
- class Count_Plant(ListView):
- def post(self, request):
- pest_sort = request.POST.get("pest_sort")
- name = request.session.get("username")
- user_name = User_Reporter.objects.get(name=name)
- user_list = User_Data_Table_New.objects.filter(user_id=user_name)
- date = []
- dats = []
- data = []
-
- userid_list = user_list.filter(harm_id__pest_sort=pest_sort)
- # print(len(userid_list))
- if userid_list:
- for i in userid_list:
- date.append({"pest":i.harm_id.pest,"crop_sort":i.harm_id.crop_sort,"dat":""})
- for i in date:
- if i not in dats:
- dats.append(i)
-
- for x in dats:
- data_list = []
- userid_lists = user_list.filter(harm_id__pest_sort=pest_sort,harm_id__pest=x["pest"])
- for harmid in userid_lists:#当前大分类下所有的小分类
- data_list.append(harmid.harm_id.pest_name)
- date_list = []
- for y in set(data_list): #统计小分类数量
- date_list.append({"pest_name":y,"num":data_list.count(y)})
- x["dat"] = date_list
- data.append({"data":x,})
- else:
- data = {"code":None}
- data = json.dumps(data)
- return HttpResponse(data)
- # 害虫识别接口
- class app_insect(View):
- def post(self, request):
- time_start = time.time()
- print("害虫识别")
- imageFile = request.FILES.get('img_addr')
- imageFile = {"imageFile": imageFile}
- username = 'yunfei'
- uniqueKey = '84e6eb40f3a616dd14b1fefc75425006'
- time1 = time.time()
- print('识别前', time1-time_start)
- url = 'http://47.99.110.100:8080/recognizationSys/api/recognization'
- data = {'imageType': '1', 'gis': '118.279643#31.221456',
- 'username': username, 'uniqueKey': uniqueKey}
- print("data", data)
- res = requests.post(url, data=data, files=imageFile)
- time_end = time.time()
- print('识别后', time_end-time_start)
- return HttpResponse(res.text)
- # 病害识别接口
- class app_plant(View):
- def post(self, request):
- print("病害识别")
- imageFile = request.FILES.get('img_addr')
- imageFile = {"imageFile": imageFile}
- username = 'yunfei'
- uniqueKey = '84e6eb40f3a616dd14b1fefc75425006'
- url = 'http://47.99.110.100:8080/recognizationSys/api/recognization'
- data = {'imageType': '2', 'gis': '118.279643#31.221456',
- 'username': username, 'uniqueKey': uniqueKey}
- res = requests.post(url, data=data, files=imageFile)
- return HttpResponse(res.text)
- # 害虫识别接口丨新 (测试用)
- class app_insect_plant(ListView):
- def post(self, request):
- img_addr = request.FILES.get('img_addr')
- print("img_addr", img_addr)
- imageFile = {"imageFile": img_addr}
- # url = 'http://60.166.14.184:9143/upload'
- url = 'http://60.166.14.184:9143/upload'
- # imageFile = {'imageFile':('pic.jpg',open("d:/dog.jpg",'rb'),'image/jpeg')}
- data = {'longitude': '118.279643', 'latitude': '31.221456'}
- print('data:', data)
- res = requests.post(url, data=data, files=imageFile)
- print("res:", res.text)
- try:
- resp = json.loads(res.text)
- except Exception as e:
- print(e)
- print("识别失败")
- data = "1"
- return HttpResponse(data)
- print(resp["returnResult"]["returnString"])
- data = {"image": resp["returnResult"]["returnImageUrl"],
- "result": resp["returnResult"]["returnString"]}
- if data["result"] == "":
- print("识别失败")
- data = "2"
- else:
- data = json.dumps(data, cls=CJSONEncoder)
- return HttpResponse(data)
- # 数据导出指定单条数据和多条数据或者病害、虫害全部数据
- class Exportes(ListView):
- def post(self, request):
- id_list = request.POST.get("user_id")
- name = request.POST.get("username")
- id_list = json.loads(id_list)
- print(id_list)
- print("name", name)
- # name = "admin"
- user_name = User_Reporter.objects.get(name=name)
- # 创建一个文件对象
- wb = xlwt.Workbook(encoding="utf8")
- # 创建一个sheet对象
- sheet = wb.add_sheet("sheet1",cell_overwrite_ok=True)
- # 设置文件头的样式,这个不是必须的可以根据自己的需求进行更改
- style_heading = xlwt.easyxf("""
- font:
- name Arial,
- colour_index white,
- bold on,
- height 0xA0;
- align:
- wrap off,
- vert center,
- horiz center;
- pattern:
- pattern solid,
- fore-colour 0x19;
- borders:
- left THIN,
- right THIN,
- top THIN,
- bottom THIN;
- """)
- # 写入文件标题
- sheet.write(0, 0, "测报员", style_heading)
- sheet.write(0, 1, "创建时间", style_heading)
- sheet.write(0, 2, "详细地址", style_heading)
- sheet.write(0, 3, "所属分类", style_heading)
- sheet.write(0, 4, "统计面积", style_heading)
- sheet.write(0, 5, "病害虫害名称", style_heading)
- sheet.write(0, 6, "病害值", style_heading)
- sheet.write(0, 7, "统计种类", style_heading)
- sheet.write(0, 8, "统计方法", style_heading)
- sheet.write(0, 9, "生育期", style_heading)
- sheet.write(0, 10, "月份", style_heading)
- data_row = 1
- date = []
- dats = []
- for x in id_list:
- user_list = User_Data_Table_New.objects.filter(id=x)
- for i in user_list:
- if i.harm_id.pest_sort == "1":
- pest_sort = "病害"
- elif i.harm_id.pest_sort == "2":
- pest_sort = "虫害"
- pestname = eval(i.pestname)
- key = list(pestname)
- valu = list(pestname.values())
- for x in range(len(key)):
- date.append(key[x] + ":" + valu[x])
- # date.append(i.pestname)
- pri_time = i.upl_time.strftime("%Y-%m-%d")
- sheet.write(data_row, 0, i.user_id.name)
- sheet.write(data_row, 1, pri_time)
- sheet.write(data_row, 2, i.harm_id.month_id.addr_id.name)
- sheet.write(data_row, 3, i.harm_id.pest)
- sheet.write(data_row, 4, i.area)
- sheet.write(data_row, 5, i.harm_id.pest_name)
- sheet.write(data_row, 6, date)
- sheet.write(data_row, 7, i.harm_id.pest_sort)
- sheet.write(data_row, 8, i.cens_method)
- sheet.write(data_row, 9, i.growth_stages)
- sheet.write(data_row, 10, i.harm_id.month_id.month)
- data_row = data_row + 1
- # 写入数据 保存到本地
- user_export = "sexport_file/"
- if os.path.exists(user_export) == False:
- os.makedirs(user_export)
- wb.save(user_export + user_name.name + ".xls")
- dat = []
- user_data = user_export + user_name.name + ".xls"
- dat.append({"file": user_data})
- data = json.dumps(dat)
- return HttpResponse(data)
- #app在线升级
- class App_Upgrade(ListView):
- def get(self, request):
- edition_obj = Insect_Edition.objects.all()
- edit = edition_obj.first()
- data = {"app_num": edit.app_num, "app_desc": edit.app_desc, "upl_time": edit.upl_time.strftime(
- "%Y-%m-%d %H:%M:%S"), "app_name": edit.app_name}
- data = json.dumps(data)
- return HttpResponse(data)
- # 版本更新历史
- class App_All(ListView):
- def get(self, request):
- page = int(request.GET.get('page'))
- app_list = Insect_Edition.objects.all()
- data = []
- for i in app_list:
- data.append({"app_name": i.app_name,"id":i.id,"app_num":i.app_num,
- "upl_time": i.upl_time.strftime("%Y-%m-%d %H:%M:%S")})
- num = app_list.count()
- dat = data[(10*(page-1)):(page*10)]
- data = {'dat': dat, "num": num}
- data = json.dumps(data)
- return HttpResponse(data)
- def post(self, request):
- datas = json.loads(request.body.decode())
- ids = datas["id"]
- app_list = Insect_Edition.objects.get(id=ids)
- data = []
- data.append({"app_desc": app_list.app_desc,
- "upl_time": app_list.upl_time.strftime("%Y-%m-%d %H:%M:%S")})
- data = json.dumps(data)
- return HttpResponse(data)
- #昆虫识别记录
- class Insect_Record(ListView):
- def post(self, request):
- imgs = request.FILES.get('filte')
- if not all([imgs]):
- return HttpResponse("没有传图片")
- names = request.POST.get("name")
- print("names:", names)
- prevention = request.POST.get("prevention")
- img_urls = request.POST.get("img_urls")
- course = request.POST.get("course")
- addr = request.POST.get("addr")
- lng = request.POST.get("lng")
- lat = request.POST.get("lat")
- name = request.session.get("username")
- uid = User_Reporter.objects.get(name=name)
- time_now = timezone.now().strftime('%Y-%m-%d %H:%M:%S')
- #有名字说明识别成功
- if names == "":
- news_photo_dir = 'insect_photos_fail/'
- data = "1"
- else:
- news_photo_dir = 'insect_photos/'
- data = "2"
- print("news_photo_dir:", news_photo_dir)
- end_name = imgs.name.split('.')[-1]
- # 判断如果路径不存在,即创建路径
- if os.path.exists(news_photo_dir) == False:
- os.makedirs(news_photo_dir)
- img = Image.open(imgs)
- now_time = time.strftime('%Y%m%d%H%M%S', time.localtime(time.time()))
- pic_name = now_time + '.' + end_name
- #保存图片,拼接路径
- #转换图片类型 因为用户的进行上传识别的图片格式不定,需要进行转换格式,mode=P 全部改成 mode=RGB这种格式进行保存
- img = img.convert('RGB')
- img.save(news_photo_dir + pic_name)
- news_photo = news_photo_dir + pic_name
- if data == "2":
- #如果两次识别出来的昆虫名字一样只保留最新的记
- if App_Insect.objects.filter(name=names, reporter_id=uid).exists():
- insect = App_Insect.objects.get(name=names, reporter_id=uid)
- insect.time = time_now
- insect.course = course
- insect.img_urls = img_urls
- insect.prevention = prevention
- insect.img = news_photo
- insect.addr = addr
- insect.lng = lng
- insect.lat = lat
- insect.userid = uid.user_id
- insect.save()
- data = 1
- else:
- #保存识别结果
- App_Insect.objects.create(addr=addr, lng=lng, lat=lat, userid=uid.user_id,
- name=names, course=course, img_urls=img_urls, prevention=prevention, reporter_id=uid, img=news_photo)
- data = 1
- #把识别成功的记录数据保存到知识库(虫害)
- if Diseases.objects.filter(name=names).exists():
- data = 1
- else:
- Diseases.objects.create(
- name=names, img_urls=img_urls, prevention=prevention, course=course, ret="insect")
- data = 1
- else:
- #保存识别失败的数据
- App_Insect.objects.create(
- reporter_id=uid, img=news_photo, userid=uid.user_id)
- data = 1
- return HttpResponse(data)
- #保存植物识别记录
- class Plant_Record(ListView):
- def post(self, request):
- imgs = request.FILES.get('filte')
- if not all([imgs]):
- return HttpResponse("没有传图片")
- names = request.POST.get("name")
- print("names:", names)
- prevention = request.POST.get("prevention")
- img_urls = request.POST.get("img_urls")
- course = request.POST.get("course")
- addr = request.POST.get("addr")
- lng = request.POST.get("lng")
- lat = request.POST.get("lat")
- name = request.session.get("username")
- uid = User_Reporter.objects.get(name=name)
- time_now = timezone.now().strftime('%Y-%m-%d %H:%M:%S')
- #有名字说明识别成功
- if names == "":
- news_photo_dir = 'plant_photos_fail/'
- data = "1"
- else:
- news_photo_dir = 'plant_photos/'
- data = "2"
- print("news_photo_dir:", news_photo_dir)
- end_name = imgs.name.split('.')[-1]
- # 判断如果路径不存在,即创建路径
- if os.path.exists(news_photo_dir) == False:
- os.makedirs(news_photo_dir)
- img = Image.open(imgs)
- now_time = time.strftime('%Y%m%d%H%M%S', time.localtime(time.time()))
- pic_name = now_time + '.' + end_name
- #保存图片,拼接路径
- #转换图片类型 因为用户的进行上传识别的图片格式不定,需要进行转换格式,mode=P 全部改成 mode=RGB这种格式进行保存
- img = img.convert('RGB')
- img.save(news_photo_dir + pic_name)
- news_photo = news_photo_dir + pic_name
- if data == "2":
- if App_Plant.objects.filter(name=names, reporter_id=uid).exists():
- plant = App_Plant.objects.get(name=names, reporter_id=uid)
- plant.time = time_now
- plant.course = course
- plant.img_urls = img_urls
- plant.prevention = prevention
- plant.img = news_photo
- plant.addr = addr
- plant.lng = lng
- plant.lat = lat
- plant.userid = uid.user_id
- #如果两次识别结果一样只保留最新的记录
- plant.save()
- data = 1
- else:
- #保存识别结果
- App_Plant.objects.create(addr=addr, lng=lng, lat=lat, userid=uid.user_id,
- name=names, course=course, img_urls=img_urls, prevention=prevention, reporter_id=uid, img=news_photo)
- data = 1
- # 把识别成功的记录数据保存到知识库(植物)如果知识库中有不做操作
- if Diseases.objects.filter(name=names).exists():
- data = 1
- else:
- # 把识别成功的记录数据保存到知识库(植物)
- Diseases.objects.create(
- name=names, img_urls=img_urls, prevention=prevention, course=course, ret="plant")
- data = 1
- else:
- #保存识别失败的数据
- App_Plant.objects.create(
- reporter_id=uid, img=news_photo, userid=uid.user_id)
- data = 1
- return HttpResponse(data)
- #虫害列表和详情查看
- class Insect_Details(ListView):
- def get(self, request):
- page = int(request.GET.get("page"))
- name = request.session.get("username")
- uid = User_Reporter.objects.get(name=name)
- dat = []
- insect = App_Insect.objects.filter(reporter_id=uid)
- num = insect.count()
- for i in insect:
- dat.append(
- {
- "time": i.time.strftime('%Y-%m-%d %H:%M:%S'),
- "coures": i.course,
- "name": i.name,
- "img": i.img.name,
- "img_urls": i.img_urls,
- "prevention": i.prevention,
- "id": i.id,
- "ret": "insect",
- "addr": i.addr,
- }
- )
- dat = dat[(6*(page-1)):(page*6)]
- data = {'dat': dat, 'pag': page, 'num': num}
- data = json.dumps(data)
- return HttpResponse(data)
- def post(self, request):
- datas = json.loads(request.body.decode())
- reporter_id = datas["id"]
- dat = []
- insect = App_Insect.objects.filter(id=reporter_id)
- for i in insect:
- dat.append(
- {
- "time": i.time.strftime('%Y-%m-%d %H:%M:%S'),
- "coures": i.course,
- "name": i.name,
- "img": i.img.name,
- "img_urls": i.img_urls,
- "prevention": i.prevention,
- "addr": i.addr,
- }
- )
- data = json.dumps(dat)
- return HttpResponse(data)
- #植物病害列表和详情查看
- class Plant_Details(ListView):
- def get(self, request):
- page = int(request.GET.get("page"))
- name = request.session.get("username")
- uid = User_Reporter.objects.get(name=name)
- dat = []
- plant = App_Plant.objects.filter(reporter_id=uid)
- num = plant.count()
- for i in plant:
- dat.append(
- {
- "time": i.time.strftime('%Y-%m-%d %H:%M:%S'),
- "coures": i.course,
- "name": i.name,
- "img": i.img.name,
- "img_urls": i.img_urls,
- "prevention": i.prevention,
- "id": i.id,
- "ret": "plant",
- "addr": i.addr,
- }
- )
- dat = dat[(6*(page-1)):(page*6)]
- data = {'dat': dat, 'pag': page, 'num': num}
- data = json.dumps(data)
- return HttpResponse(data)
- def post(self, request):
- datas = json.loads(request.body.decode())
- reporter_id = datas["id"]
- dat = []
- plant = App_Plant.objects.filter(id=reporter_id)
- for i in plant:
- dat.append(
- {
- "time": i.time.strftime('%Y-%m-%d %H:%M:%S'),
- "coures": i.course,
- "name": i.name,
- "img": i.img.name,
- "img_urls": i.img_urls,
- "prevention": i.prevention,
- "addr": i.addr
- }
- )
- data = json.dumps(dat)
- return HttpResponse(data)
- #识别失败用户自行补充数据
- class Make_Data(ListView):
- def post(self, request):
- datas = json.loads(request.body.decode())
- img_urls = datas["photo"]
- names = datas["name"]
- prevention = datas["prevention"]
- course = datas["course"]
- ids = datas["id"]
- ret = datas["ret"]
- addr = datas["addr"]
- lat = datas["lat"]
- lng = datas["lng"]
- name = request.session.get("username")
- uid = User_Reporter.objects.get(name=name)
- try:
- if ret == "insect":
- insect_plant = App_Insect.objects.get(id=ids, reporter_id=uid)
- elif ret == "plant":
- insect_plant = App_Plant.objects.get(id=ids, reporter_id=uid)
- img_urls = "http://120.27.222.26/" + img_urls
- # img_urls = "http://39.104.94.153/" + img_urls
- insect_plant.name = names
- insect_plant.course = course
- insect_plant.img_urls = img_urls
- insect_plant.prevention = prevention
- insect_plant.addr = addr
- insect_plant.lat = lat
- insect_plant.lng = lng
- insect_plant.save()
- data = 1
- except Exception as e:
- print(e)
- data = 0
- return HttpResponse(data)
- #保存识别失败用户上传的照片
- class Upload_Photos(ListView):
- def post(self, request):
- imgs = request.FILES.get('filter')
- print("imgs", imgs)
- ret = request.POST.get("ret")
- if ret == "insect":
- news_photo_dir = 'insect_photos/'
- elif ret == "plant":
- news_photo_dir = 'plant_photos/'
- if os.path.exists(news_photo_dir) == False:
- os.makedirs(news_photo_dir)
- img = Image.open(imgs)
- end_name = imgs.name.split('.')[-1]
- now_time = time.strftime('%Y%m%d%H%M%S', time.localtime(time.time()))
- pic_name = now_time + '.' + end_name
- img = img.convert('RGB')
- img.save(news_photo_dir + pic_name)
- news_photo = news_photo_dir + pic_name
- data = {"news_photo": news_photo, "ret": ret}
- data = json.dumps(data)
- print("data", data)
- return HttpResponse(data)
- #删除识别记录用户上传的图片
- class Del_Insect_Photo(ListView):
- def post(self, request):
- datas = json.loads(request.body.decode())
- photos = datas["photos"]
- ret = datas["ret"]
- if os.path.exists(photos) == True:
- # 删除图片文件
- os.remove(photos)
- data = 1
- else:
- data = 0
- return HttpResponse(data)
- #识别记录删除
- class Del_Record(ListView):
- def post(self, request):
- datas = json.loads(request.body.decode())
- reporter_id = datas["id"]
- ret = datas["ret"]
- if not all([reporter_id, ret]):
- return HttpResponse("参数不正确")
- name = request.session.get("username")
- uid = User_Reporter.objects.get(name=name)
- if ret == "insect":
- insect = App_Insect.objects.get(id=reporter_id, reporter_id=uid)
- elif ret == "plant":
- insect = App_Plant.objects.get(id=reporter_id, reporter_id=uid)
- if os.path.exists(str(insect.img)) == True:
- # 删除图片文件
- os.remove(str(insect.img))
- insect.delete()
- data = 1
- else:
- data = 0
- return HttpResponse(data)
- #知识库
- class Insect_Base(ListView):
- def get(self, request):
- page = int(request.GET.get("page"))
- dat = []
- req = Diseases.objects.filter(ret="insect")
- num = req.count()
- for i in req:
- dat.append({
- "time": i.time.strftime('%Y-%m-%d %H:%M:%S'),
- "course": i.course,
- "name": i.name,
- "img_urls": i.img_urls,
- "prevention": i.prevention,
- "id": i.id,
- "ret": i.ret
- })
- dat = dat[(6*(page-1)):(page*6)]
- data = {'dat': dat, 'pag': page, 'num': num}
- data = json.dumps(data)
- return HttpResponse(data)
- def post(self, request):
- datas = json.loads(request.body.decode())
- reporter_id = datas["id"]
- dat = []
- req = Diseases.objects.filter(id=reporter_id)
- for i in req:
- dat.append({
- "time": i.time.strftime('%Y-%m-%d %H:%M:%S'),
- "course": i.course,
- "name": i.name,
- "img_urls": i.img_urls,
- "prevention": i.prevention,
- })
- data = json.dumps(dat)
- return HttpResponse(data)
- #知识库(作物)
- class Plant_Base(ListView):
- def get(self, request):
- page = int(request.GET.get("page"))
- dat = []
- req = Diseases.objects.filter(ret="plant")
- num = req.count()
- if num:
- for i in req:
- dat.append({
- "time": i.time.strftime('%Y-%m-%d %H:%M:%S'),
- "course": i.course,
- "name": i.name,
- "img_urls": i.img_urls,
- "prevention": i.prevention,
- "id": i.id,
- "ret": i.ret
- })
- dat = dat[(6*(page-1)):(page*6)]
- data = {'dat': dat, 'pag': page, 'num': num}
- data = json.dumps(data)
- else:
- data = 0
- return HttpResponse(data)
- #知识库搜索
- class Search(ListView):
- def post(self, request):
- datas = json.loads(request.body.decode())
- name = datas["name"]
- ret = datas["ret"]
- page = int(datas["page"])
- dat = []
- if ret != "insect" and ret != "plant":
- data = 0
- return HttpResponse(data)
- #包涵查询 name__contains
- req = Diseases.objects.filter(name__contains=name, ret=ret)
- num = req.count()
- for i in req:
- dat.append({
- "time": i.time.strftime('%Y-%m-%d %H:%M:%S'),
- "course": i.course,
- "name": i.name,
- "img_urls": i.img_urls,
- "prevention": i.prevention,
- "id": i.id,
- "req": ret
- })
- dat = dat[(6*(page-1)):(page*6)]
- data = {'dat': dat, 'pag': page, 'num': num}
- data = json.dumps(data)
- return HttpResponse(data)
- #用户反馈
- class User_Pro(ListView):
- def post(self, request):
- datas = json.loads(request.body.decode())
- name = datas["name"]
- phone = datas["phone"]
- proposal = datas["proposal"]
- count = datas["count"]
- store = datas["store"]
- if store == "1":
- mobile = re.compile('^(13\d|14[5|7]|15\d|166|17\d|18\d)\d{8}$')
- res = re.search(mobile, phone)
- if res:
- Feedback.objects.create(
- name=name, phone=phone, proposal=proposal, count=count, store=store)
- data = 1
- else:
- data = 0
- elif store == "2":
- Feedback.objects.create(
- name=name, phone=phone, proposal=proposal, count=count, store=store)
- data = 1
- return HttpResponse(data)
- #返回用户反馈(管理员可见)
- class Check_Leaving(ListView):
- def get(self, request):
- name = request.session.get("username")
- print("name:", name)
- # name = "demo"
- page = int(request.GET.get("page"))
- uid = User_Reporter.objects.get(name=name)
- dat = []
- if uid.user_id.is_superuser == True and uid.user_id.is_staff == True and uid.user_id.is_active == True:
- print("管理员")
- ret = Feedback.objects.all()
- num = ret.count()
- for i in ret:
- dat.append({
- "time": time.strftime("%Y-%m-%d %H:%M:%S"),
- "phone": i.phone,
- "count": i.count,
- "id": i.id,
- "store": i.store,
- "name": i.name,
- "proposal": i.proposal,
- "ret": "del"
- })
- dat = dat[(7*(page-1)):(page*7)]
- data = {'dat': dat, 'page': page, 'num': num}
- data = json.dumps(data)
- else:
- # print("普通用户")
- data = 1
- return HttpResponse(data)
- def post(self, request):
- datas = json.loads(request.body.decode())
- reporter_id = datas["id"]
- ret = datas["ret"]
- dat = []
- if ret == "del":
- Feedback.objects.get(id=reporter_id).delete()
- data = 1
- else:
- ret = Feedback.objects.filter(id=reporter_id)
- for i in ret:
- dat.append({
- "time": i.time.strftime("%Y-%m-%d %H:%M:%S"),
- "phone": i.phone,
- "count": i.count,
- "store": i.store,
- "name": i.name,
- "proposal": i.proposal,
- })
- data = json.dumps(dat)
- return HttpResponse(data)
- #获取随机6位数字进行加密
- def verification_code():
- num = ''
- for x in range(6):
- num += str(random.randint(0, 9))
- return num
- #生成32位激活验证码
- class Census(ListView):
- def get(self, request):
- # word = verification_code().encode("utf-8")
- word = request.GET.get("word").encode("utf-8")
- password = hashlib.sha1(word).hexdigest()
- print(password)
- # pass_word = password[8:]
- # print(pass_word)
- # Encryption.objects.create(cipher=password)
- data = 1
- return HttpResponse(data)
- def post(self, request):
- datas = json.loads(request.body.decode())
- num = datas["num"]
- imei = datas["imei"]
- print("原始imei", imei)
- if not all([num, imei]):
- data = 0
- return HttpResponse(data)
- imei = json.loads(imei)
- imeid = imei["uuid"]
- if imeid.find(",") != -1:
- imeid = imeid.split(",")[0]
- print("imeid", imeid)
- #校验是否登录过
- if Encryption.objects.filter(cipher=num, meid=imeid).exists():
- data = 5
- else:
- #校验秘钥是否正确
- if Encryption.objects.filter(cipher=num).exists():
- #在秘钥正确的情况下校验手机imei是否正确
- if Encryption.objects.filter(meid=imeid).exists():
- data = 1
- else:
- #在imei没有进行绑定的情况下
- cip = Encryption.objects.get(cipher=num)
- if cip.meid:
- data = 3
- else:
- cip.meid = imeid
- cip.save()
- data = 4
- else:
- data = 2
- data = json.dumps(data)
- return HttpResponse(data)
- #判定是否已注册
- class Decide(ListView):
- def post(self, request):
- datas = json.loads(request.body.decode())
- imei = datas["imei"]
- print("原始imei", imei)
- data = []
- if not all([imei]):
- data = 0
- return HttpResponse(data)
- imei = json.loads(imei)
- imeid = imei["uuid"]
- if imeid.find(",") != -1:
- imeid = imeid.split(",")[0]
- print("imeid", imeid)
- print("转换后的imei", imei)
- if Encryption.objects.filter(meid=imeid).exists():
- imei = Encryption.objects.get(meid=imeid)
- data.append({
- "cipher": imei.cipher
- })
- else:
- data = 2
- data = json.dumps(data)
- return HttpResponse(data)
- #往数据库中添加病虫害值接口
- class Plus_Insect(ListView):
- def post(self, request):
- datas = json.loads(request.body.decode())
- ret = datas["ret"]
- course = datas["course"]
- name = datas["name"]
- img_urls = datas["img_urls"]
- prevention = datas["prevention"]
- try:
- Diseases.objects.create(ret=ret, course=course,
- name=name, img_urls=img_urls, prevention=prevention
- )
- data = 1
- except Exception as e:
- print(e)
- data = 0
- return HttpResponse(data)
- #爬取数据的
- class scrapy_insect(View):
- def get(self,request):
- # start_date = datetime.datetime.now() - datetime.timedelta(days=2)
- # end_date = datetime.datetime.now()
- page = int(request.GET.get("page"))
- start_time = request.GET.get('start_time')
- end_time = request.GET.get('end_time')
- now_time = datetime.datetime.now()
- print("当前日期为:",now_time)
- print("当前月为:",now_time.month)
- begindate = re.findall(r"\d+\.?\d*", start_time)
- enddate = re.findall(r"\d+\.?\d*", end_time)
- start_date = datetime.date(int(begindate[0]), int(begindate[1]), int(begindate[2]))
- end_date = datetime.date(int(enddate[0]), int(enddate[1]), int(enddate[2]))
- sta1 = RecentCBDdata.objects.all().values()[(20*(page-1)):(page*20)]
- data = []
- # upl_time__range=(start_date, end_date)
- for x in sta1:
- cbd_list = CBDphoto.objects.filter(equip_id_id=x['equip_id_id'],upl_time__range=(start_date,end_date))
- if cbd_list.exists():
- da = []
- imei_list = []
- for i in cbd_list:
- if i.equip_id.equip_id not in imei_list:
- imei_list.append({i.equip_id.equip_id:i.addr})
- else:
- imei_list = []
- data.append(imei_list)
- data = json.dumps(data)
- return HttpResponse(data)
-
- #数据导入接口
- # class daoru(View):
- # def post(self,request):
- # # ret = request.POST.get("ret")
- # # if ret == "scd":
- # # equip_list = transpont_equip_scd
- # # elif ret == "cbd":
- # # equip_list = transpont_equip_cbd
- # # elif ret == "qxz":
- # # equip_list = transpont_equip_qxz
- # # elif ret == "bzy":
- # # equip_list = transpont_equip_bzy
- # # elif ret == "ybq":
- # # equip_list = transpont_equip_ybq
- # # # print(equip_list.keys())
- # # for i in equip_list.keys():
- # # zhi = equip_list[i]
- # # print(zhi)
- # # Equip_Forward.objects.create(equip_id=i,equip_data_url=zhi,equip_data_between=1)
- # # data = 0
- # # return HttpResponse(data)
- # ret = request.POST.get("ret")
- # equip_list = Equip.objects.filter(~Q(ftp_addr=None),equip_type__type_id=ret)
- # print(len(equip_list))
- # for i in equip_list:
- # if i.ftp_addr:
- # try:
- # equips = Equip_Forward.objects.get(equip_id=i.equip_id)
- # equips.equip_img_url = i.ftp_addr
- # equips.equip_img_between = 1
- # equips.save()
- # except:
- # Equip_Forward.objects.create(equip_id=i.equip_id,equip_img_url=i.ftp_addr,equip_img_between=1)
-
- # data = 0
- # return HttpResponse(data)
|