2019年3月2日 星期六

使用Python和Django設計百香果農產品交易行情網站

南開科技大學執行教育部大學社會責任實踐計畫-南投百香果資源永續之煉銀網平台,以南投埔里鎮合成里為實踐場域,南開科技大學師生以百香果為題材,進行創新教學以及在地鏈結,以107學年第二學期民生學院院必修課程"物聯網程式設計"為例,該課程教導學生學習物聯網技術發展智慧農業。程式設計語言選目前最火紅的Python,從這篇文章"IEEE Spectrum發布程式語言排名:Python持續強勢、R語言逐漸消退",就可以看出Python的威力。
我國行政院農業委員會資料開放平台開放農產品交易行情,在這個平台可以查到市場農產品交易情形,當然也包括百香果,於是我們想設計一個網站來讀取百香果市場交易情形。讀者可以參考我們在1月份發布的文章"用Python來撰寫顯示今天百香果市場交易情形的程式",經由這支程式可以看出Python的簡潔有力。
本篇文章將說明如何把該程式發佈在網站上,網站空間我們選用Heroku來進行部署,網站框架則使用功能強大的Django,讀者可以參考這篇文章"使用Python+Django架構網站",Django設計可以參考網站:http://daikeren.github.io/django_tutorial/,把Python+Django程式佈署可以參考"用 Heroku 部署網站"。
百香果農產品交易行情網站:https://quiet-falls-72347.herokuapp.com/

Views.py主要的程式設計如下:

from django.shortcuts import render
import requests
import json

def market(request):
    now = datetime.datetime.now()
    r = requests.get('http://data.coa.gov.tw/Service/OpenData/FromM/FarmTransData.aspx')
    fruits = json.loads(r.text)
    rows = []
    for row in fruits:
        if '百香果' in row['作物名稱']:
            rows.append(row)
    return render(request, "market.html", locals())

market.html樣版程式
<html>
<head>
<TITLE>
南投百香果資源永續之煉銀網平台
</TITLE>
</head>
<body>
<center>
<h1>
南投百香果資源永續之煉銀網平台
</h1>
<h2>大學社會責任實踐計畫:<a href="http://www.nkut.edu.tw">南開科技大學</a></h2>
</center>
{% for row in rows %}
{% if forloop.first %}
<table style='width:100%' border='1'>
<caption><h2>百香果市場交易情形</h2></caption>
<tr><th>交易日期</th><th>作物代號</th><th>作物名稱</th><th>市場代碼</th><th>市場名稱</th><th>上價</th><th>中價</th><th>下價</th><th>平均價</th><th>交易量</th></tr>
{% endif %}
<tr>
<td><center>{{ row.交易日期 }}</center></td>
<td><center>{{ row.作物代號 }}</center></td>
<td><center>{{ row.作物名稱 }}</center></td>
<td><center>{{ row.市場代號 }}</center></td>
<td><center>{{ row.市場名稱 }}</center></td>
<td><center>{{ row.上價 }}</center></td>
<td><center>{{ row.中價 }}</center></td>
<td><center>{{ row.下價 }}</center></td>
<td><center>{{ row.平均價 }}</center></td>
<td><center>{{ row.交易量 }}</center></td>
</tr>
{% if forloop.last %}
</table>
{% endif %}
{% endfor %}
</body>

</html>

沒有留言:

張貼留言