iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 18
0

今天來用頁面,把HttpResponse 改成用html
在app目錄底下新增templates 資料夾,一定要這個名稱,新增main 資料夾,新增main.html

路徑:
templates/main/main.html

專案結構

<projectName>/
----manage.py
----<projectName>/
--------__init__.py
--------settings.py
...
----main/
--------admin.py
--------apps.py
--------models.py
--------views.py
--------templates/main/main.html
----venv/
----lib/
--------pdfWeather.py

main/main.html 程式碼

<html>
<head>

</head>
<body>
Hello world
</body>
</html>

改成 render main/main.html

main/views.py 程式碼

def main(request):
    return render(request, 'main/main.html')

就會看到有更新了 Hello world

改個頁面,傳所有區的名稱到前端範本(templates),用範本變數,在前台跑迴圈,用checkbox,可以複選
context就是 傳到前端的範本變數 是dict的格式

main/views.py 程式碼

def main(request):
    districtList = [
        "北投區", "松山區", "士林區", "內湖區", "中山區", "中正區",
        "信義區", "大安區", "文山區", "南港區", "大同區", "萬華區",
    ]
    context = {"districtList": districtList}
    return render(request, 'main/main.html', context)

加上 checkbox:核取方塊 和label
main/main.html

...
<form>
    {% for district in districtList %}
        <div>
            <input type="checkbox" id="chk_{{ district }}" name="checkboxDistrict" value="{{ district }}">
            <label for="chk_{{ district }}">{{ district }}</label>
        </div>
    {% endfor %}
    <input type="submit" value="產生未來鄉鎮天氣預報PDF">
</form>
...

結果

今天先弄到這裡,之後要用樣式,可能會用ajax 呼叫api 的方式


參考資料:

如果有任何寫得不好的地方,請跟我說,謝謝。


上一篇
[Day 17] Django
下一篇
[Day 19] 重構 PDF 程式
系列文
用 Python 玩 PDF,結合Django 變成一個網頁系統30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言