#add message

This commit is contained in:
xieshen 2020-11-17 18:25:42 +08:00
parent f3859296d4
commit e034d3f8c9
6 changed files with 74 additions and 47 deletions

View File

@ -159,7 +159,6 @@ MEDIA_ROOT = '/var/www/p3/newmediamonitoring/media/'
"""用户模块扩展部分""" """用户模块扩展部分"""
AUTH_PROFILE_MODULE = 'djangoadmin.myadmin.UserProfile' AUTH_PROFILE_MODULE = 'djangoadmin.myadmin.UserProfile'
"""用户模块扩展完成""" """用户模块扩展完成"""
UPLOAD_ROOT = os.path.join(BASE_DIR,'/static/upload')
CORS_ORIGIN_ALLOW_ALL = True CORS_ORIGIN_ALLOW_ALL = True
CORS_URLS_REGEX = r'^/polls/.*$' CORS_URLS_REGEX = r'^/polls/.*$'

View File

@ -32,11 +32,17 @@
<div class="panel-heading">新媒体舆情数据录入</div> <div class="panel-heading">新媒体舆情数据录入</div>
<div class="panel panel-default"> <div class="panel panel-default">
<!-- Default panel contents --> <!-- Default panel contents -->
<form action="{% url 'backstage-new-media-public-opinion' %}" method="post" enctype="multipart/form-data" >{% csrf_token %} <form action="{% url 'backstage-new-media-public-opinion' %}" method="post"
enctype="multipart/form-data">{% csrf_token %}
<div class="form-group col-md-4">
<label for="date">时间</label>
<input type="date" class="form-control" id="source"
name="date">
</div>
<div class="form-group"> <div class="form-group">
<label for="exampleInputFile">点击上传文件</label> <label for="exampleInputFile">点击上传文件</label>
<input type="file" id="exampleInputFile" name="file"> <input type="file" id="exampleInputFile" name="file">
<p class="help-block">请上传excel文件</p> <p class="help-block">请上传csv文件(文件表头依次为:新媒体类型,新媒体名称,主体类型,代表主体名称,市,县/区,备注,结果,更新次数,最大连续静默日数,开始时间,结束时间。时间格式为2020/11/17.更新次数和最大连续静默日必须是数字)</p>
</div> </div>
<button type="submit" class="btn btn-success">点击上传</button> <button type="submit" class="btn btn-success">点击上传</button>
</form> </form>

View File

@ -1,59 +1,78 @@
import csv
import os import os
import re import re
import xlrd import xlrd
from django.contrib import messages from django.contrib import messages
from django.http import HttpResponse from django.http import HttpResponse, HttpResponseRedirect
from django.shortcuts import render from django.shortcuts import render
# Create your views here. # Create your views here.
from NewMediaMonitoring import settings from NewMediaMonitoring import settings
from NewMediaMonitoring.local_settings import MEDIA_ROOT
from dashboard.models import TimelinessMonitoring from dashboard.models import TimelinessMonitoring
def backstage_new_media_public_opinion(request): def backstage_new_media_public_opinion(request):
if request.method == 'POST': if request.method == 'POST':
filename = request.FILES.get('file') filename = request.FILES.get('file')
workbook = xlrd.open_workbook(settings.UPLOAD_ROOT + "/" + str(filename)) date = request.POST.get("date")
# sheet = readboot.sheet_by_index(0) print(filename)
# # 获取excel的行和列 if not os.path.exists(settings.MEDIA_ROOT):
# nrows = sheet.nrows os.makedirs(settings.MEDIA_ROOT)
# ncols = sheet.ncols if filename is None:
table = workbook.sheets()[0] messages.error(request,'请选择要上传的文件!!!')
for row in range(table.nrows): return HttpResponseRedirect('/backstage/backstage/newmedia/public/opinion/')
v = table.row_values(row) if str(filename).split('.')[1] == 'csv':
if v[0] != '新媒体类型' or v[1] != '新媒体名称' or v[2] != '主体类型' or v[3] != '代表主体名称' or v[4] != '' or v[ data = filename.read().decode("utf-8")
6] != '备注' or v[7] != '结果' or v[8] != '更新次数' or v[9] != '最大连续静默日数' or v[10] != '开始时间' or v[ line = str(data).split('\n')
11] != '结束时间': for l in line:
messages.error(request, '请上传正确的文件格式!!!') v = l.split(',')
return render(request, 'backstage/backstage_new_media_public_opinion.html') # print(v[0],v[1],v[2],v[3],v[4],v[5],v[6],v[7],v[8],v[9],v[10],v[11])
mat1 = re.search(r"(\d{4}-\d{1,2}-\d{1,2})", v[10]) # if str(v[0]) != '新媒体类型' or str(v[1]) != '新媒体名称' or str(v[2]) != '主体类型' or str(v[3]) != '代表主体名称' or str(v[4]) != '市' or str(v[6]) != '备注' or str(v[7]) != '结果' or str(v[8]) != '更新次数' or str(v[9]) != '最大连续静默日数' or str(v[10]) != '开始时间' or str(v[11]) != '结束时间':
mat2 = re.search(r"(\d{4}-\d{1,2}-\d{1,2})", v[11]) # messages.error(request, '请上传正确的文件格式!!!')
if mat1 is None or mat2 is None: # return HttpResponseRedirect('/backstage/backstage/newmedia/public/opinion/')
messages.error(request, '请上传正确的时间格式!!!') mat1 = None
return render(request, 'backstage/backstage_new_media_public_opinion.html') mat2 = None
if v[8].isdigit() and v[9].isdigit(): # if v[10] is not None and v[11] is not None:
if v != '账号名称': # mat1 = re.search(r"(\d{4}/\d{1,2}/\d{1,2})", v[10])
n_type = v[0] # mat2 = re.search(r"(\d{4}/\d{1,2}/\d{1,2})", v[11])
n_name = v[1] # if mat1 is None or mat2 is None:
o_type = v[2] # messages.error(request, '请上传正确的时间格式!!!')
o_name = v[3] # return HttpResponseRedirect('/backstage/backstage/newmedia/public/opinion/')
city = v[4]
counties = v[5]
remark = v[6]
results = v[7]
update = v[8]
silet = v[9]
start_data = v[10]
end_data = v[11]
timelinessmonitoring = TimelinessMonitoring(n_type=n_type, n_name=n_name, o_type=o_type, o_name=o_name,
city=city, counties=counties, remark=remark,
results=results, update=update, silet=silet,
start_data=start_data, end_data=end_data,)
print(timelinessmonitoring)
else:
messages.error(request, '更新次数和最大连续静默日数只能为数字!!!') try:
return render(request, 'backstage/backstage_new_media_public_opinion.html') if v[8] != '更新次数':
# if v[8].isdigit():
n_type = v[0]
n_name = v[1]
o_type = v[2]
o_name = v[3]
city = v[4]
counties = v[5]
remark = v[6]
results = v[7]
update = v[8]
silet = v[9]
start_data = v[10]
end_data = v[11]
timelinessmonitoring = TimelinessMonitoring(n_type=n_type, n_name=n_name, o_type=o_type,
o_name=o_name,
city=city, counties=counties, remark=remark,
results=results, update=update, silet=silet,
start_data=start_data, end_data=end_data,
comment=0, date=date)
print(timelinessmonitoring.n_type)
timelinessmonitoring.save()
# else:
# messages.error(request, '更新次数只能为数字!!!')
# return HttpResponseRedirect('/backstage/backstage/newmedia/public/opinion/')
except:
print(v)
else:
messages.error(request, '请上传正确的文件类型!!!')
return HttpResponseRedirect('/backstage/backstage/newmedia/public/opinion/')
return render(request, 'backstage/backstage_new_media_public_opinion.html') return render(request, 'backstage/backstage_new_media_public_opinion.html')

View File

@ -731,7 +731,7 @@ class NewmediaSentimentToutiao(models.Model):
class TimelinessMonitoring(models.Model): class TimelinessMonitoring(models.Model):
id = models.UUIDField('id', primary_key=True, default=uuid.uuid4()) id = models.UUIDField('id', primary_key=True, default=uuid.uuid4)
n_type = models.CharField('新媒体类型', max_length=256, null=True, blank=True) n_type = models.CharField('新媒体类型', max_length=256, null=True, blank=True)
n_name = models.CharField('新媒体名称', max_length=256, null=True, blank=True) n_name = models.CharField('新媒体名称', max_length=256, null=True, blank=True)
o_type = models.CharField('主体类型', max_length=256, null=True, blank=True) o_type = models.CharField('主体类型', max_length=256, null=True, blank=True)
@ -766,3 +766,6 @@ class Wrongly(models.Model):
def __str__(self): def __str__(self):
return self.title return self.title
#时效性监测文件存储表

View File

@ -174,7 +174,7 @@
<ul class="sub-menu"> <ul class="sub-menu">
<li> <li>
<a {% if url_name == 'backstage-new-media-public-opinion' %} class="active" {% endif %} <a {% if url_name == 'backstage-new-media-public-opinion' %} class="active" {% endif %}
href="{% url 'backstage-new-media-public-opinion' %}">新媒体舆情</a> href="{% url 'backstage-new-media-public-opinion' %}">时效性监测</a>
</li> </li>
{# <li>#} {# <li>#}
{# <a {% if url_name == 'group-management-management-init' %} class="active" {% endif %}#} {# <a {% if url_name == 'group-management-management-init' %} class="active" {% endif %}#}

View File

@ -58,7 +58,7 @@ urlpatterns = [
#新闻管理 #新闻管理
path('news/management/',views.new_management,name='news-management'), path('news/management/',views.new_management,name='news-management'),
path('news/management/create/', views.news_management_create, name='news-management-create'), path('news/management/create/', views.news_management_create, name='news-management-create'),
path('news/management/updaye/<str:pk>/', views.news_management_update, name='news-management-update'), path('news/management/update/<str:pk>/', views.news_management_update, name='news-management-update'),
path('news/management/detail/<str:pk>/', views.news_management_detail, name='news-management-detail'), path('news/management/detail/<str:pk>/', views.news_management_detail, name='news-management-detail'),
path('news/management/delete/<str:pk>/', views.news_management_delete, name='news-management-delete'), path('news/management/delete/<str:pk>/', views.news_management_delete, name='news-management-delete'),
] ]