양선아

최종 update

# Generated by Django 3.0.6 on 2020-06-10 21:23
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('market_analysis', '0009_auto_20200522_1514'),
]
operations = [
migrations.CreateModel(
name='AuctionData',
fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('aucng_de', models.IntegerField()),
('pblmng_whsal_mrkt_nm', models.CharField(max_length=16)),
('pblmng_whsal_mrkt_cd', models.IntegerField()),
('cpr_nm', models.CharField(max_length=16)),
('cpr_cd', models.IntegerField()),
('prdlst_nm', models.CharField(max_length=10)),
('prdlst_cd', models.IntegerField()),
('spcies_nm', models.CharField(max_length=10)),
('spcies_cd', models.IntegerField()),
('delngbundle_qy', models.FloatField()),
('stndrd', models.CharField(max_length=10)),
('stndrd_cd', models.IntegerField()),
('grad', models.CharField(max_length=8)),
('grad_cd', models.IntegerField()),
('sanji_cd', models.IntegerField()),
('sanji_nm', models.CharField(max_length=20)),
('mumm_amt', models.IntegerField()),
('avrg_amt', models.IntegerField()),
('mxmm_amt', models.IntegerField()),
('delng_qy', models.IntegerField()),
('cnts', models.IntegerField()),
],
),
migrations.CreateModel(
name='ProductData',
fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('large_cd', models.IntegerField()),
('large_nm', models.CharField(max_length=10)),
('medium_cd', models.IntegerField()),
('medium_nm', models.CharField(max_length=10)),
('small_cd', models.IntegerField()),
('small_nm', models.CharField(max_length=15)),
],
),
]
# Generated by Django 3.0.6 on 2020-06-10 21:33
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('market_analysis', '0010_auctiondata_productdata'),
]
operations = [
migrations.AlterField(
model_name='productdata',
name='small_nm',
field=models.CharField(max_length=16),
),
]
# Generated by Django 3.0.6 on 2020-06-10 21:35
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('market_analysis', '0011_auto_20200611_0633'),
]
operations = [
migrations.AlterField(
model_name='productdata',
name='large_cd',
field=models.CharField(max_length=5),
),
migrations.AlterField(
model_name='productdata',
name='medium_cd',
field=models.CharField(max_length=5),
),
migrations.AlterField(
model_name='productdata',
name='small_cd',
field=models.CharField(max_length=8),
),
]
# Generated by Django 3.0.6 on 2020-06-10 21:35
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('market_analysis', '0012_auto_20200611_0635'),
]
operations = [
migrations.AlterField(
model_name='productdata',
name='large_cd',
field=models.CharField(max_length=8),
),
migrations.AlterField(
model_name='productdata',
name='medium_cd',
field=models.CharField(max_length=8),
),
]
# Generated by Django 3.0.6 on 2020-06-10 21:36
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('market_analysis', '0013_auto_20200611_0635'),
]
operations = [
migrations.AlterField(
model_name='productdata',
name='large_cd',
field=models.CharField(max_length=10),
),
migrations.AlterField(
model_name='productdata',
name='medium_cd',
field=models.CharField(max_length=10),
),
migrations.AlterField(
model_name='productdata',
name='small_cd',
field=models.CharField(max_length=10),
),
]
# Generated by Django 3.0.6 on 2020-06-10 21:36
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('market_analysis', '0014_auto_20200611_0636'),
]
operations = [
migrations.AlterField(
model_name='productdata',
name='medium_nm',
field=models.CharField(max_length=16),
),
]
# Generated by Django 3.0.6 on 2020-06-10 21:37
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('market_analysis', '0015_auto_20200611_0636'),
]
operations = [
migrations.AlterField(
model_name='productdata',
name='small_nm',
field=models.CharField(max_length=22),
),
]
# Generated by Django 3.0.6 on 2020-06-10 23:08
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('market_analysis', '0016_auto_20200611_0637'),
]
operations = [
migrations.AlterField(
model_name='auctiondata',
name='cpr_cd',
field=models.CharField(max_length=16),
),
migrations.AlterField(
model_name='auctiondata',
name='grad',
field=models.CharField(max_length=16),
),
migrations.AlterField(
model_name='auctiondata',
name='grad_cd',
field=models.CharField(max_length=16),
),
migrations.AlterField(
model_name='auctiondata',
name='pblmng_whsal_mrkt_cd',
field=models.CharField(max_length=16),
),
migrations.AlterField(
model_name='auctiondata',
name='prdlst_cd',
field=models.CharField(max_length=16),
),
migrations.AlterField(
model_name='auctiondata',
name='sanji_cd',
field=models.CharField(max_length=16),
),
migrations.AlterField(
model_name='auctiondata',
name='spcies_cd',
field=models.CharField(max_length=16),
),
migrations.AlterField(
model_name='auctiondata',
name='stndrd_cd',
field=models.CharField(max_length=16),
),
]
# Generated by Django 3.0.6 on 2020-06-10 23:18
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('market_analysis', '0017_auto_20200611_0808'),
]
operations = [
migrations.AddField(
model_name='auctiondata',
name='raw_num',
field=models.IntegerField(default=1),
preserve_default=False,
),
migrations.AlterField(
model_name='auctiondata',
name='spcies_nm',
field=models.CharField(max_length=16),
),
]
# Generated by Django 3.0.6 on 2020-06-10 23:27
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('market_analysis', '0018_auto_20200611_0818'),
]
operations = [
migrations.AlterField(
model_name='auctiondata',
name='sanji_cd',
field=models.CharField(max_length=16, null=True),
),
migrations.AlterField(
model_name='auctiondata',
name='sanji_nm',
field=models.CharField(max_length=20, null=True),
),
]
# Generated by Django 3.0.6 on 2020-06-10 23:27
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('market_analysis', '0019_auto_20200611_0827'),
]
operations = [
migrations.AlterField(
model_name='auctiondata',
name='stndrd',
field=models.CharField(max_length=16),
),
]
# Generated by Django 3.0.6 on 2020-06-10 23:28
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('market_analysis', '0020_auto_20200611_0827'),
]
operations = [
migrations.AlterField(
model_name='auctiondata',
name='prdlst_nm',
field=models.CharField(max_length=16),
),
]
# Generated by Django 3.0.6 on 2020-06-10 23:28
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('market_analysis', '0021_auto_20200611_0828'),
]
operations = [
migrations.AlterField(
model_name='auctiondata',
name='stndrd',
field=models.CharField(max_length=17),
),
]
# Generated by Django 3.0.6 on 2020-06-10 23:29
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('market_analysis', '0022_auto_20200611_0828'),
]
operations = [
migrations.AlterField(
model_name='auctiondata',
name='stndrd',
field=models.CharField(max_length=20),
),
]
......@@ -24,4 +24,40 @@ class RT_agri_policy(models.Model):
plcy_condition_detail = models.TextField(null=True)
plcy_document = models.TextField(null=True)
plcy_amount = models.TextField(null=True)
plcy_contact = models.TextField(null=True)
\ No newline at end of file
plcy_contact = models.TextField(null=True)
class AuctionData(models.Model):
raw_num = models.IntegerField()
aucng_de = models.IntegerField()
pblmng_whsal_mrkt_nm = models.CharField(max_length=16)
pblmng_whsal_mrkt_cd = models.CharField(max_length=16)
cpr_nm = models.CharField(max_length=16)
cpr_cd = models.CharField(max_length=16)
prdlst_nm = models.CharField(max_length=16)
prdlst_cd = models.CharField(max_length=16)
spcies_nm = models.CharField(max_length=16)
spcies_cd = models.CharField(max_length=16)
delngbundle_qy = models.FloatField()
stndrd = models.CharField(max_length=20)
stndrd_cd = models.CharField(max_length=16)
grad = models.CharField(max_length=16)
grad_cd = models.CharField(max_length=16)
sanji_cd = models.CharField(max_length=16, null=True)
sanji_nm = models.CharField(max_length=20, null=True)
mumm_amt = models.IntegerField()
avrg_amt = models.IntegerField()
mxmm_amt = models.IntegerField()
delng_qy = models.IntegerField()
cnts = models.IntegerField()
class ProductData(models.Model):
large_cd = models.CharField(max_length=10)
large_nm = models.CharField(max_length=10)
medium_cd = models.CharField(max_length=10)
medium_nm = models.CharField(max_length=16)
small_cd = models.CharField(max_length=10)
small_nm = models.CharField(max_length=22)
class JointMarketData(models.Model):
raw_num = models.IntegerField()
aucng_de = models.IntegerField()
\ No newline at end of file
......
<!DOCTYPE html>
<html lang="kr">
<head>
<title>RF-Project</title>
<title>귀농통계서비스</title>
<meta charset="utf-8">
<!--BOOTSTRAP 사용 부분-->
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.5.0/css/bootstrap.min.css" integrity="sha384-9aIt2nRpC12Uk9gS9baDl411NQApFmC26EwAOH8WgZl5MYYxFfc+NcPb1dKGj7Sk" crossorigin="anonymous">
......@@ -10,19 +10,58 @@
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.5.0/js/bootstrap.min.js" integrity="sha384-OgVRvuATP1z7JjHLkuOU7Xw704+h835Lr+6QL9UvYjZE3Ipu6Tp75j7Bh/kR0JKI" crossorigin="anonymous"></script>
<div id="header">
<style>
#header{
color: brown;
#bodyWrap{
text-align: center;
background: #fff7b5;
font-family: "210 자연주의";
background: #fffce2;
}
h1{
font-weight: bold;
a.projectname{
font-family: "THE또박또박";
color: black;
text-decoration:none;
}
a.projectname:hover{
color: orange;
text-decoration:none;
}
h3{
font-family: "Dovemayo";
font-size: 150%;
}
a.nav-link{
font-size: 175%;
font-family: "THE또박또박";
color: rgb(0, 0, 0);
}
a.nav-link:hover{
color: orange;
}
#contentWrap{
text-align:center;
line-height: 220%;
padding: 100px;
}
a.datalink{
color: orange;
}
a.datalink:hover{
color: orangered;
}
p.dataexplain{
font-family: "Dovemayo";
font-size: 150%;
}
table.CategoryTable{
font-family: "Dovemayo";
font-size: 150%;
margin:0 auto;
}
th,td{
padding: 15px;
}
th.orangetext{
color: orangered;
}
</style>
</style>
</div>
</head>
......@@ -30,15 +69,15 @@
<!--body-->
<div id="bodyWrap">
<div id="header">
<h1 class="projectname"><a href="/market_analysis/maplist">Statistics on Return Farm Project</a></h1>
<h1 class="projectname"><a class="projectname" href="/market_analysis/maplist">Statistics on Return Farm Project</a></h1>
<br>
<h3>농산물 시장 유통에 대한 통계분석 입니다.</h3>
<h3>- 귀농 데이터 통계분석 서비스 -</h3>
<br>
</div>
<div id="menubar">
<ul class="nav justify-content-center">
<li class="nav-item">
<a class="nav-link active" href="/market_analysis/market">Market</a>
<a class="nav-link" href="/market_analysis/market">Market</a>
</li>
<li class="nav-item">
<a class="nav-link" href="/market_analysis/population">Population</a>
......@@ -51,9 +90,27 @@
</div>
<!--content-->
<div id="contentWrap">
<h6>
explain 들어가는 부분
</h6>
<p class="dataexplain">
이 서비스는 귀농 데이터 분석을 위한 웹 베이스 서비스입니다.<br>
본 데이터들은 대부분 국가 공공데이터들을 이용하여 분석한 내용입니다.<br>
대부분의 주요 데이터들은 <a class="datalink" href="https://www.data.go.kr/">여기서</a> 확인하실 수 있습니다.<br>
일부 통계청 데이터들은 <a class="datalink" href="https://kosis.kr/openapi/index/index.jsp">KOSIS 공유서비스</a>를 사용하였습니다.
<br><br>
<table class="CategoryTable">
<tr>
<th class="orangetext">Market</th>
<td>농수산물 시장 데이터 분석</td>
</tr>
<tr>
<th class="orangetext">Population</th>
<td>통계청 데이터 기반 인구수 분석</td>
</tr>
<tr>
<th class="orangetext">Return Farm</th>
<td>귀농 관련 데이터 분석</td>
</tr>
</table>
</p>
</div>
</body>
</html>
\ No newline at end of file
......
......@@ -7,12 +7,21 @@
<!-- 직접 다운받아 넣을 수도 있는데 우선은 그냥 웹에서 불러올 수 있도록 해놨다. -->
<link rel="stylesheet" href="https://unpkg.com/leaflet@1.6.0/dist/leaflet.css" />
<script src="https://unpkg.com/leaflet@1.6.0/dist/leaflet.js"></script>
<!--css 내용 여기에 direct로 넣었다-->
<!--BOOTSTRAP 사용 부분-->
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.5.0/css/bootstrap.min.css" integrity="sha384-9aIt2nRpC12Uk9gS9baDl411NQApFmC26EwAOH8WgZl5MYYxFfc+NcPb1dKGj7Sk" crossorigin="anonymous">
<script src="https://code.jquery.com/jquery-3.5.1.slim.min.js" integrity="sha384-DfXdz2htPH0lsSSs5nCTpuj/zy4C+OGpamoFVy38MVBnE+IbbVYUew+OrCXaRkfj" crossorigin="anonymous"></script>
<script src="https://cdn.jsdelivr.net/npm/popper.js@1.16.0/dist/umd/popper.min.js" integrity="sha384-Q6E9RHvbIyZFJoft+2mJbHaEWldlvI9IOYy5n3zV9zzTtmI3UksdQRVvoxMfooAo" crossorigin="anonymous"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.5.0/js/bootstrap.min.js" integrity="sha384-OgVRvuATP1z7JjHLkuOU7Xw704+h835Lr+6QL9UvYjZE3Ipu6Tp75j7Bh/kR0JKI" crossorigin="anonymous"></script>
<style>
#mapbase {position:relative; width:40%; height:0; padding-bottom:40%; }
#mapbase {position:relative; width:80%; height:0; padding-bottom:80%; margin-left: 3%;}
h1 {
font-size: 20px;
}
.form-group{
margin-left: 3%;
margin-top: 2%;
}
.info {
padding: 6px 8px;
font: 14px/16px Arial, Helvetica, sans-serif;
......@@ -36,52 +45,74 @@
margin-right: 8px;
opacity: 0.7;
}
</style>
<!--BOOTSTRAP 사용 부분-->
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.5.0/css/bootstrap.min.css" integrity="sha384-9aIt2nRpC12Uk9gS9baDl411NQApFmC26EwAOH8WgZl5MYYxFfc+NcPb1dKGj7Sk" crossorigin="anonymous">
<script src="https://code.jquery.com/jquery-3.5.1.slim.min.js" integrity="sha384-DfXdz2htPH0lsSSs5nCTpuj/zy4C+OGpamoFVy38MVBnE+IbbVYUew+OrCXaRkfj" crossorigin="anonymous"></script>
<script src="https://cdn.jsdelivr.net/npm/popper.js@1.16.0/dist/umd/popper.min.js" integrity="sha384-Q6E9RHvbIyZFJoft+2mJbHaEWldlvI9IOYy5n3zV9zzTtmI3UksdQRVvoxMfooAo" crossorigin="anonymous"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.5.0/js/bootstrap.min.js" integrity="sha384-OgVRvuATP1z7JjHLkuOU7Xw704+h835Lr+6QL9UvYjZE3Ipu6Tp75j7Bh/kR0JKI" crossorigin="anonymous"></script>
#bodyWrap{
text-align: center;
background: #fffce2;
}
a.projectname{
font-family: "THE또박또박";
color: black;
text-decoration:none;
}
a.projectname:hover{
color: orange;
text-decoration:none;
}
h3{
font-family: "Dovemayo";
font-size: 150%;
}
a.nav-link{
font-size: 175%;
font-family: "THE또박또박";
color: black;
}
a.nav-link:hover{
color: orange;
}
p{
font-family: "Dovemayo";
font-size: medium;
}
</style>
</head>
<body>
<body>
<!--body-->
<div id="bodyWrap">
<div id="header">
<h1><a href="/market_analysis/maplist">Statistics on Return Farm Project</a></h1>
<br>
<h3>농산물 시장 유통에 대한 통계분석 입니다.</h3>
<br>
</div>
<div id="menubar">
<ul class="nav justify-content-center">
<li class="nav-item">
<a class="nav-link active" href="/market_analysis/market">Market</a>
</li>
<li class="nav-item">
<a class="nav-link" href="/market_analysis/population">Population</a>
</li>
<li class="nav-item">
<a class="nav-link" href="/market_analysis/returnfarm">Return Farm</a>
</li>
</ul>
</div>
<div id="header">
<h1 class="projectname"><a class="projectname" href="/market_analysis/maplist">Statistics on Return Farm Project</a></h1>
<br>
<h3>- 귀농 데이터 통계분석 서비스 -</h3>
<br>
</div>
<div id="menubar">
<ul class="nav justify-content-center">
<li class="nav-item">
<a class="nav-link" href="/market_analysis/market">Market</a>
</li>
<li class="nav-item">
<a class="nav-link" href="/market_analysis/population">Population</a>
</li>
<li class="nav-item">
<a class="nav-link" href="/market_analysis/returnfarm">Return Farm</a>
</li>
</ul>
</div>
</div>
<!--population 단독 부분-->
<!--return farm 단독 부분-->
<div id="contentWrap">
<!--검색 바 만든 부분-->
<div id="searchmenu">
<form action="{% url 'population' %}" method="GET">
<div class="form-group">
<select name="maptype">
<option value="9">시도</option>
<option value="10">시군구</option>
<option value="9">시도</option>
<option value="10">시군구</option>
</select>
<select name="densitytype">
<option value="edu">귀농가구원 연령별</option>
<option value="returnfarm_agri_population">지역별 귀농가구원수</option>
<option value="population">지역별 총 인구수</option>
</select>
<input type="submit">
</div>
......@@ -115,6 +146,7 @@
<script>
var densitydatas = "{{exportdata}}".replace(/&quot;/g,"\"");
densitydatas = JSON.parse(densitydatas);
//alert(key);
for(var i=0; i < densitydatas.length; i++)
{
for(var j=0; j<statesdata.features.length; j++)
......@@ -124,6 +156,11 @@
statesdata.features[j]['properties']['density']=densitydatas[i]['DT'];
break;
}
else if(statesdata.features[j]['properties'][key[2]]==densitydatas[i]['C1_NM'] && densitydatas[i]['ITM_NM']=='총인구')
{
statesdata.features[j]['properties']['density']=densitydatas[i]['DT'];
break;
}
}
}
</script>
......@@ -132,17 +169,26 @@
<div id="map_design">
<script>
var geojson;
var density_max = 500000;
if (key[2]=='CTP_KOR_NM' && densitydatas[3]['ITM_NM']=='총인구')
{ density_max = 8000000;}
else if(key[2]=='CTP_KOR_NM' && densitydatas[3]['ITM_NM']=='귀농가구원수')
{ density_max = 300;}
else if(key[2]=='SIG_KOR_NM' && densitydatas[3]['ITM_NM']=='총인구')
{ density_max = 500000;}
else if(key[2]=='SIG_KOR_NM' && densitydatas[3]['ITM_NM']=='귀농가구원수')
{ density_max = 100;}
function getColor(d) {
return d > parseInt(density_max*0.9) ? '#FF0015' :
d > parseInt(density_max*0.8) ? '#F20D20' :
d > parseInt(density_max*0.7) ? '#E6192A' :
d > parseInt(density_max*0.6) ? '#D92635' :
d > parseInt(density_max*0.5) ? '#CC3340' :
d > parseInt(density_max*0.4) ? '#BF404A' :
d > parseInt(density_max*0.3) ? '#B34D55' :
d > parseInt(density_max*0.2) ? '#A65960' :
d > parseInt(density_max*0.1) ? '#99666A' :
'#8C7375';
return d > parseInt(density_max*0.9) ? '#7e5109' :
d > parseInt(density_max*0.8) ? '#9c640c' :
d > parseInt(density_max*0.7) ? '#b9770e' :
d > parseInt(density_max*0.6) ? '#d68910' :
d > parseInt(density_max*0.5) ? '#f39c12' :
d > parseInt(density_max*0.4) ? '#f5b041' :
d > parseInt(density_max*0.3) ? '#f8c471' :
d > parseInt(density_max*0.2) ? '#fad7a0' :
d > parseInt(density_max*0.1) ? '#fdebd0' :
'#fef5e7';
}
function style(feature) {
return {
......@@ -206,7 +252,7 @@
// method that we will use to update the control based on feature properties passed
info.update = function (props) {
this._div.innerHTML = '<h4>Korea Return Farm Density</h4>' + (props ?
'<b>' + props[key[2]] + '</b><br />' + props.density + ' 개의 교육 예정'
'<b>' + props[key[2]] + '</b> ' + props.density + ' 명'
: 'Hover over a state');
};
......
......@@ -2,15 +2,26 @@
<html lang="kr">
<head>
<title>RF-Project</title>
<meta charset = "utf-8">
<!-- link에 들어가 있는건 지도 데이터를 위한 css 파일 -->
<!-- script에 들어가 있는건 지도 데이터를 위한 js 파일 -->
<!-- 직접 다운받아 넣을 수도 있는데 우선은 그냥 웹에서 불러올 수 있도록 해놨다. -->
<link rel="stylesheet" href="https://unpkg.com/leaflet@1.6.0/dist/leaflet.css" />
<script src="https://unpkg.com/leaflet@1.6.0/dist/leaflet.js"></script>
<!--css 내용 여기에 direct로 넣었다-->
<!--BOOTSTRAP 사용 부분-->
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.5.0/css/bootstrap.min.css" integrity="sha384-9aIt2nRpC12Uk9gS9baDl411NQApFmC26EwAOH8WgZl5MYYxFfc+NcPb1dKGj7Sk" crossorigin="anonymous">
<script src="https://code.jquery.com/jquery-3.5.1.slim.min.js" integrity="sha384-DfXdz2htPH0lsSSs5nCTpuj/zy4C+OGpamoFVy38MVBnE+IbbVYUew+OrCXaRkfj" crossorigin="anonymous"></script>
<script src="https://cdn.jsdelivr.net/npm/popper.js@1.16.0/dist/umd/popper.min.js" integrity="sha384-Q6E9RHvbIyZFJoft+2mJbHaEWldlvI9IOYy5n3zV9zzTtmI3UksdQRVvoxMfooAo" crossorigin="anonymous"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.5.0/js/bootstrap.min.js" integrity="sha384-OgVRvuATP1z7JjHLkuOU7Xw704+h835Lr+6QL9UvYjZE3Ipu6Tp75j7Bh/kR0JKI" crossorigin="anonymous"></script>
<style>
#mapbase {position:relative; width:40%; height:0; padding-bottom:40%; }
#mapbase {position:relative; width:80%; height:0; padding-bottom:80%; margin-left: 3%;}
h1 {
font-size: 20px;
}
.form-group{
margin-left: 3%;
margin-top: 2%;
}
.info {
padding: 6px 8px;
font: 14px/16px Arial, Helvetica, sans-serif;
......@@ -34,37 +45,60 @@
margin-right: 8px;
opacity: 0.7;
}
</style>
<!--BOOTSTRAP 사용 부분-->
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.5.0/css/bootstrap.min.css" integrity="sha384-9aIt2nRpC12Uk9gS9baDl411NQApFmC26EwAOH8WgZl5MYYxFfc+NcPb1dKGj7Sk" crossorigin="anonymous">
<script src="https://code.jquery.com/jquery-3.5.1.slim.min.js" integrity="sha384-DfXdz2htPH0lsSSs5nCTpuj/zy4C+OGpamoFVy38MVBnE+IbbVYUew+OrCXaRkfj" crossorigin="anonymous"></script>
<script src="https://cdn.jsdelivr.net/npm/popper.js@1.16.0/dist/umd/popper.min.js" integrity="sha384-Q6E9RHvbIyZFJoft+2mJbHaEWldlvI9IOYy5n3zV9zzTtmI3UksdQRVvoxMfooAo" crossorigin="anonymous"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.5.0/js/bootstrap.min.js" integrity="sha384-OgVRvuATP1z7JjHLkuOU7Xw704+h835Lr+6QL9UvYjZE3Ipu6Tp75j7Bh/kR0JKI" crossorigin="anonymous"></script>
#bodyWrap{
text-align: center;
background: #fffce2;
}
a.projectname{
font-family: "THE또박또박";
color: black;
text-decoration:none;
}
a.projectname:hover{
color: orange;
text-decoration:none;
}
h3{
font-family: "Dovemayo";
font-size: 150%;
}
a.nav-link{
font-size: 175%;
font-family: "THE또박또박";
color: black;
}
a.nav-link:hover{
color: orange;
}
p{
font-family: "Dovemayo";
font-size: medium;
}
</style>
</head>
<body>
<!--body-->
<div id="bodyWrap">
<div id="header">
<h1><a href="/market_analysis/maplist">Statistics on Return Farm Project</a></h1>
<br>
<h3>농산물 시장 유통에 대한 통계분석 입니다.</h3>
<br>
</div>
<div id="menubar">
<ul class="nav justify-content-center">
<li class="nav-item">
<a class="nav-link active" href="/market_analysis/market">Market</a>
</li>
<li class="nav-item">
<a class="nav-link" href="/market_analysis/population">Population</a>
</li>
<li class="nav-item">
<a class="nav-link" href="/market_analysis/returnfarm">Return Farm</a>
</li>
</ul>
</div>
<div id="header">
<h1 class="projectname"><a class="projectname" href="/market_analysis/maplist">Statistics on Return Farm Project</a></h1>
<br>
<h3>- 귀농 데이터 통계분석 서비스 -</h3>
<br>
</div>
<div id="menubar">
<ul class="nav justify-content-center">
<li class="nav-item">
<a class="nav-link" href="/market_analysis/market">Market</a>
</li>
<li class="nav-item">
<a class="nav-link" href="/market_analysis/population">Population</a>
</li>
<li class="nav-item">
<a class="nav-link" href="/market_analysis/returnfarm">Return Farm</a>
</li>
</ul>
</div>
</div>
<!--return farm 단독 부분-->
<div id="contentWrap">
......@@ -89,7 +123,7 @@
<script type="text/javascript">
// map 객체 생성 map안에 넣어주는건 div id
// 위도, 경도, zoom 수준
var map = L.map('mapbase', {zoomDelta: 0.25, zoomSnap: 0}).setView([36.5205243,128.0540569], 7);
var map = L.map('mapbase', {zoomDelta: 0.25, zoomSnap: 0}).setView([36.5205243,128.0540569], 6);
// tilelayer를 씌우는 작업 OSM을 사용했음
L.tileLayer('https://api.mapbox.com/styles/v1/{id}/tiles/{z}/{x}/{y}?access_token={accessToken}', {
attribution: 'Map data &copy; <a href="https://www.openstreetmap.org/">OpenStreetMap</a> contributors, <a href="https://creativecommons.org/licenses/by-sa/2.0/">CC-BY-SA</a>, Imagery © <a href="https://www.mapbox.com/">Mapbox</a>',
......@@ -141,16 +175,16 @@
<script>
var geojson;
function getColor(d) {
return d > parseInt(density_max*0.9) ? '#FF0015' :
d > parseInt(density_max*0.8) ? '#F20D20' :
d > parseInt(density_max*0.7) ? '#E6192A' :
d > parseInt(density_max*0.6) ? '#D92635' :
d > parseInt(density_max*0.5) ? '#CC3340' :
d > parseInt(density_max*0.4) ? '#BF404A' :
d > parseInt(density_max*0.3) ? '#B34D55' :
d > parseInt(density_max*0.2) ? '#A65960' :
d > parseInt(density_max*0.1) ? '#99666A' :
'#8C7375';
return d > parseInt(density_max*0.9) ? '#7e5109' :
d > parseInt(density_max*0.8) ? '#9c640c' :
d > parseInt(density_max*0.7) ? '#b9770e' :
d > parseInt(density_max*0.6) ? '#d68910' :
d > parseInt(density_max*0.5) ? '#f39c12' :
d > parseInt(density_max*0.4) ? '#f5b041' :
d > parseInt(density_max*0.3) ? '#f8c471' :
d > parseInt(density_max*0.2) ? '#fad7a0' :
d > parseInt(density_max*0.1) ? '#fdebd0' :
'#fef5e7';
}
function style(feature) {
return {
......@@ -213,7 +247,7 @@
// method that we will use to update the control based on feature properties passed
info.update = function (props) {
this._div.innerHTML = '<h4>Korea Return Farm Density</h4>' + (props ?
'<b>' + props[key[2]] + '</b><br />' + props.density + ' 개의 교육 예정'
'<b>' + props[key[2]] + '</b> ' + props.density + ' 개'
: 'Hover over a state');
};
......
......@@ -5,6 +5,6 @@ from . import views
urlpatterns = [
url('returnfarm', views.returnfarm, name="returnfarm"),
url('population', views.population, name="population"),
url('market', views.market),
url('market', views.market, name="market"),
url('', views.main),
]
\ No newline at end of file
......
#-*- coding:utf-8
from django.shortcuts import render
from django.db.models import Count, Max
from django.db.models import Count, Max, Sum, Avg
from urllib.request import urlopen
from .models import RT_edu, Maps, RT_agri_policy
from .models import RT_edu, Maps, RT_agri_policy, ProductData, AuctionData
from bs4 import BeautifulSoup
import pandas as pd
......@@ -23,9 +23,12 @@ def returnfarm_dbselect(contenttype, maptype):
# 공공데이터 불러오는 부분
def publicdata():
def publicdata(densitytype):
# 통계청 귀농가구원의 시도별, 시군별, 연령별
url = 'http://kosis.kr/openapi/statisticsData.do?method=getList&apiKey=M2I3MWFhNzE2MjlkYjhhNzgwNWFjNWQ3MGU0MzY5Y2Y=&format=json&jsonVD=Y&userStatsId=tjsdk3105/101/DT_1A02003/2/1/20200529160216&prdSe=Y&newEstPrdCnt=1'
if densitytype == 'returnfarm_agri_population':
url = 'http://kosis.kr/openapi/statisticsData.do?method=getList&apiKey=M2I3MWFhNzE2MjlkYjhhNzgwNWFjNWQ3MGU0MzY5Y2Y=&format=json&jsonVD=Y&userStatsId=tjsdk3105/101/DT_1A02003/2/1/20200529160216&prdSe=Y&newEstPrdCnt=1'
elif densitytype == 'population':
url = 'http://kosis.kr/openapi/statisticsData.do?method=getList&apiKey=M2I3MWFhNzE2MjlkYjhhNzgwNWFjNWQ3MGU0MzY5Y2Y=&format=json&jsonVD=Y&userStatsId=tjsdk3105/101/DT_1IN1502/2/1/20200611044341&prdSe=Y&newEstPrdCnt=1'
data = urlopen(url).read().decode('utf8')
return data
......@@ -56,7 +59,7 @@ def population(request):
maptype = request.GET['maptype']
densitytype = request.GET['densitytype']
mapp = Maps.objects.get(id=int(maptype))
exportdatas = publicdata()
exportdatas = publicdata(densitytype)
except:
mapp = Maps.objects.get(id=9)
exportdatas = {}
......@@ -65,4 +68,24 @@ def population(request):
########### market ##########
def market(request):
return render(request, 'market.html')
\ No newline at end of file
product_large = ProductData.objects.values('large_cd','large_nm').distinct()
product_medium = ProductData.objects.values('medium_cd','medium_nm').distinct()
product_small = ProductData.objects.values('small_cd','small_nm')
try:
maptype = request.GET['maptype']
mapp = Maps.objects.get(id=int(maptype))
largefilter = request.GET['ctgr_large']
mediumfilter = request.GET['ctgr_medium']
if mediumfilter=='all':
if largefilter=='all':
exportdatas = AuctionData.objects.values('sanji_nm').annotate(count=Count('sanji_nm'))
else:
exportdatas = AuctionData.objects.values('sanji_nm').filter(large_cd=largefilter).annotate(count=Count('sanji_nm'))
else:
exportdatas = AuctionData.objects.values('sanji_nm').filter(medium_cd=mediumfilter).annotate(count=Count('sanji_nm'))
except:
mapp = Maps.objects.get(id=9)
exportdatas = AuctionData.objects.values('sanji_nm').annotate(count=Count('sanji_nm'),avrg=Avg('mumm_amt'))
maxx = exportdatas.aggregate(maxx=Sum('count'))
context = {'largedata' : product_large, 'mediumdata': product_medium, 'maps':mapp, 'max':maxx, 'exportdata':exportdatas}
return render(request, 'market.html', context)
\ No newline at end of file
......
No preview for this file type