# -*- coding:utf8 -*-
import datetime
import json
# 粒子群算法使用数学库
import numpy as np
import random
from django.shortcuts import render,HttpResponse
from django.http import HttpResponseRedirect
from django.core.urlresolvers import reverse
from django.views.generic.base import View
from microgrids.models import WebMicrogrid,DevControl,EnvAddressC,Img,PVDigitalQuantityData,PVAnalogQuantityData1,PVAnalogQuantityData2,BattatyProperty
# Create your views here.
# 电站总览
class OverviewView(View):
def get(self, request):
# 导航栏选择标志
nav = 1
#
return render(request, 'overview.html', {
'nav': nav
})
# 电站设备管理
class DeviceManageView(View):
def get(self, request):
# 获取右侧栏需要显示的对应控制区内容的编号
ask_dev = request.GET.get('ask_dev', '')
# 导航栏选择标志
nav = 2
# 左侧微电网设备管理栏
# 区域信息(目录一级)
message = [[0, '间隔区'],[1, '光伏区'],[2, '风力区'],[3,'燃机区'],[4, '电池储能区'],[5, '飞轮储能区'],[6, '负载区'],[7, '控制区'],[8, '环境']]
# 左侧栏所有信息存储(先存储一级目录信息)
message_left = message
# 获取所有子区域(目录二级)
for area_type_num in message_left:
area_infos = WebMicrogrid.objects.filter(area_type=area_type_num[0],type=1).order_by('name').values_list('num','name')
# 一级目录3位置加list存储二级以下信息
message_left[area_type_num[0]].append([])
# 获取所有组区域(目录三级)
for area_info in area_infos:
# 二级信息元组变数组
area_info = list(area_info)
group_infos = WebMicrogrid.objects.filter(parent_area=area_info[0]).order_by('name').values_list('num', 'name')
# 二级目录3位置加list存储三级以下信息
area_info.append([])
# 获取所有设备(目录四级)
for group_info in group_infos:
group_info = list(group_info)
dev_infos = WebMicrogrid.objects.filter(parent_area=group_info[0]).order_by('name').values_list('num', 'name')
# 三级添加对应四级信息
group_info.append(dev_infos)
# 二级添加对应三级信息
area_info[2].append(group_info)
# 一级添加对应二级信息
message_left[area_type_num[0]][2].append(area_info)
print(message_left)
# 中间模型展示栏
# 中间栏所需图片
big_power_grid_picture = Img.objects.get(name_h='大电网')
pvI_picture = Img.objects.get(name_h='光伏逆变器')
pv_picture = Img.objects.get(name_h='光伏阵列')
BI_picture = Img.objects.get(name_h='蓄电池逆变器')
battery_picture = Img.objects.get(name_h='蓄电池组')
CA_Close_picture = Img.objects.get(name_h='控制区_闭合')
CA_Open_picture = Img.objects.get(name_h='控制区_断开')
load_picture = Img.objects.get(name_h='负荷')
# 间隔区
pcc_model = []
pccs = WebMicrogrid.objects.order_by('num').filter(area_type=message[0][0], type=1).values_list('num')
for pcc in pccs:
# 获取对应控制区区号
pcc_2 = []
try:
# 获取对应控制区
pccc = WebMicrogrid.objects.order_by('num').filter(control_belong__num=pcc[0]).values_list('num')[0][0]
# 获取对应控制区状态
pcc_sws = WebMicrogrid.objects.filter(parent_area=pccc)
# 默认闭合
pcc_status = 1
for pcc_sw in pcc_sws: # 控制区可能有多个开关时判断
pcc_sw_status = DevControl.objects.get(num=pcc_sw).switch_status
if pcc_sw_status == 1:
# 控制区有一个断开,则显示控制区断开
pcc_status = 0
except:
pccc = ''
pcc_status = ''
pcc_2.append(pcc[0])
pcc_2.append(pccc)
pcc_2.append(pcc_status)
pcc_model.append(pcc_2)
print(pcc_model)
# 光伏模型区
pv_model = []
# 获取光伏下的所有控制子区
pas = WebMicrogrid.objects.order_by('num').filter(area_type=message[1][0],type=1).values_list('num')
for pa in pas:
# 创建2级即子区保存数组
pv_2 = []
try:
# 获取对应控制区
pac = WebMicrogrid.objects.order_by('num').filter(control_belong__num=pa[0]).values_list('num')[0][0]
# 获取控制区状态
pac_sws = WebMicrogrid.objects.filter(parent_area=pac)
# 默认闭合
pac_status = 1
for pac_sw in pac_sws:
pac_sw_status = DevControl.objects.get(num=pac_sw).switch_status
if pac_sw_status == 1:
# 控制区有一个断开,则显示控制区断开
pac_status = 0
except:
pac = ''
pac_status = ''
# 追加子区编号和对应控制区编号和三级总容器
pv_2.append(pa[0])
pv_2.append(pac)
pv_2.append(pac_status)
pv_2.append([])
# 获取子区下的所有逆变器
pvIs = WebMicrogrid.objects.order_by('num').filter(parent_area=pa[0]).values_list('num')
for pvI in pvIs:
# 创建保存3级即逆变器数组
pv_3 = []
try:
# 获取逆变器对应控制区(如果逆变器对应无控制区为'')
pvIc = WebMicrogrid.objects.order_by('num').filter(control_belong__num=pvI[0]).values_list('num')[0][0]
# 获取控制区状态
pvIc_sws = WebMicrogrid.objects.filter(parent_area=pvIc)
# 默认闭合
pvIc_status = 1
for pvIc_sw in pvIc_sws:
pvIc_sw_status = DevControl.objects.get(num=pvIc_sw).switch_status
if pvIc_sw_status == 1:
# 控制区有一个断开,则显示控制区断开
pvIc_status = 0
except:
pvIc = ''
pvIc_status = ''
# 获取逆变器控制编号和逆变器编号及四级总容器
pv_3.append(pvIc)
pv_3.append(pvI[0])
pv_3.append(pvIc_status)
pv_3.append([])
# 获取逆变器下所有的光伏阵列
pvs = WebMicrogrid.objects.order_by('num').filter(parent_area=pvI[0]).values_list('num')
for pv in pvs:
# 创建保存4级即光伏阵列的数组
pv_4 = []
try:
# 获取光伏阵列对应控制区(如果光伏阵列对应无控制区为'')
pvc = WebMicrogrid.objects.order_by('num').filter(control_belong__num=pv[0]).values_list('num')[0][0]
# 获取控制区状态
pvc_sws = WebMicrogrid.objects.filter(parent_area=pvc)
# 默认闭合
pvc_status = 1
for pvc_sw in pvc_sws:
pvc_sw_status = DevControl.objects.get(num=pvc_sw).switch_status
if pvc_sw_status == 1:
# 控制区有一个断开,则显示控制区断开
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
基于HTML+CSS+JS+Bootstrap+python的微电网能量管理系统源码(前端+后端).zip 【资源说明】 1.项目代码完整可靠,谈不上高分、满分(多数为夸大其词),但难度适中,满足毕设、课设要求,属于易上手的优质项目,资源内基本都有说明文档,依据文档即可运行 2.小白下载后,使用时可能会遇到些小问题,若自己解决不了,请私信描述具体问题,我会第一时间回复提供帮助,也可以远程指导 3.适用人群:各大计算机相关专业行业的在校学生、高校老师、公司程序员等下载使用 4.特别是那种爱钻研学习的学霸,强烈推荐此项目,可以二次开发提升自己 5.如果确定自己是个学渣,想拿来作毕设、课设直接用也无妨,但自己还是尽可能弄懂项目!也可以与我交流 强调:项目名字和路径不要有中文,解压重命名为英文名字后再运行!项目易上手
资源推荐
资源详情
资源评论
收起资源包目录
基于HTML+CSS+JS+Bootstrap+python的微电网能量管理系统源码(前端+后端).zip (1112个子文件)
bootstrap.css 143KB
bootstrap.css 143KB
bootstrap.css 123KB
bootstrap.css 123KB
bootstrap.min.css 118KB
bootstrap.min.css 118KB
bootstrap.min.css 100KB
bootstrap.min.css 100KB
bootstrap-theme.css 26KB
bootstrap-theme.css 26KB
bootstrap-theme.min.css 23KB
bootstrap-theme.min.css 23KB
font-awesome.css 21KB
font-awesome.css 21KB
bootstrap-theme.css 19KB
bootstrap-theme.css 19KB
select2.css 19KB
select2.css 19KB
font-awesome.min.css 17KB
font-awesome.min.css 17KB
bootstrap-theme.min.css 17KB
bootstrap-theme.min.css 17KB
selectize.bootstrap2.css 15KB
selectize.bootstrap2.css 15KB
selectize.default.css 11KB
selectize.default.css 11KB
bootstrap-datetimepicker.min.css 11KB
bootstrap-datetimepicker.min.css 11KB
selectize.legacy.css 11KB
selectize.legacy.css 11KB
selectize.bootstrap3.css 10KB
selectize.bootstrap3.css 10KB
datepicker.css 10KB
datepicker.css 10KB
selectize.css 8KB
selectize.css 8KB
xadmin.main.css 8KB
xadmin.main.css 8KB
xadmin.responsive.css 4KB
xadmin.responsive.css 4KB
bootstrap-modal.css 4KB
bootstrap-modal.css 4KB
bootstrap-clockpicker.css 4KB
bootstrap-clockpicker.css 4KB
xadmin.form.css 3KB
xadmin.form.css 3KB
bootstrap-image-gallery.css 3KB
bootstrap-image-gallery.css 3KB
bootstrap-clockpicker.min.css 3KB
bootstrap-clockpicker.min.css 3KB
bootstrap-timepicker.css 3KB
bootstrap-timepicker.css 3KB
bootstrap-image-gallery.min.css 2KB
bootstrap-image-gallery.min.css 2KB
bootstrap-timepicker.min.css 2KB
bootstrap-timepicker.min.css 2KB
xadmin.widget.select-transfer.css 2KB
xadmin.widget.select-transfer.css 2KB
mic.css 2KB
mic.css 2KB
bootstrap-xadmin.css 2KB
bootstrap-xadmin.css 2KB
xadmin.mobile.css 1KB
xadmin.mobile.css 1KB
snap.css 1KB
snap.css 1KB
xadmin.plugin.formset.css 1KB
xadmin.plugin.formset.css 1KB
xadmin.widget.editable.css 1KB
xadmin.widget.editable.css 1KB
xadmin.page.dashboard.css 790B
xadmin.page.dashboard.css 790B
xadmin.plugin.importexport.css 321B
xadmin.plugin.importexport.css 321B
xadmin.plugin.quickfilter.css 248B
xadmin.plugin.quickfilter.css 248B
xadmin.plugins.css 175B
xadmin.plugins.css 175B
xadmin.plugin.aggregation.css 95B
xadmin.plugin.aggregation.css 95B
bootstrap-multiselect.css 0B
bootstrap-multiselect.css 0B
fontawesome-webfont.eot 37KB
fontawesome-webfont.eot 37KB
glyphicons-halflings-regular.eot 20KB
glyphicons-halflings-regular.eot 20KB
glyphicons-halflings-regular.eot 20KB
glyphicons-halflings-regular.eot 20KB
loading.gif 4KB
loading.gif 4KB
select2-spinner.gif 2KB
select2-spinner.gif 2KB
ajax-loader.gif 2KB
ajax-loader.gif 2KB
device_manage.html 23KB
device_manage.html 23KB
dev_info_pv.html 21KB
dev_info_pv.html 21KB
pso.html 5KB
pso.html 5KB
共 1112 条
- 1
- 2
- 3
- 4
- 5
- 6
- 12
资源评论
.whl
- 粉丝: 3841
- 资源: 4699
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功