從 0 開始學 Django – 營養師開發營養師資訊系統之路!

django-營養師-main

我有一個夢想!

那就是做出一個給自己用的營養資訊系統,可以開菜單、組合食譜、還有,食材能對應食物資料庫取得所有的營養素含量,最後再針對個人資訊做出營養分析,系統的邏輯不難,但問題就出在我的能力太貧弱,不足以開發出這樣一套完整的系統。

市場上確實是有相關的服務,但跟我理想的樣子還是有些距離;由於自己也沒有什麼資金可以請人開發,然後也不覺得做出這樣的東西,可以幫我的工作大來多大的好處,於是就將這個夢想無限期擱置啦。

事情一開始是這樣子的…

去年,公司餐飲部希望我幫他們計算餐廳料理的熱量,由於食堂的餐有很多共用的食材,每算一道就複製貼上,這樣會顯得有點…辛苦,想要偷懶的我,就很土炮的用 Google 試算表自己做了一個 vlookup「食材編號」,引入食物資料庫營養素的資料表,這樣就可以做出一個食譜資料表;在這份表裡,需要手動輸入的欄位是「食材用量」與「食材編號」,其他資訊用 vlookup 查找即可。

有了這個表,就能利用樞紐,就能輸出某一道菜或是套餐的所有營養資訊了(下表)。產生出來的數據,可以再根據自己的需要,設定顏色變化通知,比如說某一個套餐蛋白質太多了,就讓它自己變成紅色、或是飽和脂肪含量太高,也讓它自己變色。

Django-食譜-樞紐分析
利用樞紐分析,列出某個食譜或套餐的營養成分

雖然這跟原本的計算方式相比,已經節省很多時間,而且之後有新的菜推出,也能很快用這個試算表產出;只是,我知道還有更好(偷懶)的方法,但,要開發專門的成系統就是了~

跟過去不同,這次這種「想要做出來」的心情,應該是超過了行動閾值,而現在的生活,應該還是可以擠出一些時間來試試看,於是…

重新學習吧!

但馬上遇到一個巨大的問題……要用什麼技術開發呢?

選擇 Django 的契機

前年,曾在「Hahow 好學校」和「Udemy」買過兩門 Python 相關的課程,分別是「用Python 理財:打造小資族選股策略」和「Python for Data Science and Machine Learning Bootcamp」,起因是對資料科學和理財有興趣,只是呢… 兩堂課我都沒上完,不過倒是有把 Python coding 的基礎給學起來。

也因為有這樣的皮毛,在煩惱用什麼技術開發營養資訊系統的時候,就想著…可以用 Python 做嗎?

稍微 google 了一下,真的有哩(是的就是這麼外行),有 django、flask …等用 Web 開發框架(framework),接著大致看各自的介紹,最後選了 Django;至於理由嗎… 我喜歡它的發音。

一開始是跟著 Django Girls Taipei 的教學,內容易懂,而且跟著做,很快就能做出跟範例一樣的網站;雖說離我想的東西還很遙遠,但卻是一個很好的開始(少挫折),想著,Django 對我來說,應該是容易入門的框架吧!

Udemy 的 Django 線上課程

為了開始正式學習,就再去 Udemy 找相關的課程,預覽過幾位講師的課之後,最後選了 Nick Water 的 Django 入門課程,只是一開始我沒注意到 Django 已經來到 3.0 版,而我買的課程卻是 2.0 版,直到 2.0 上完才發現,什麼!現在是 3.0 …

而 Nick 也有推出 3.0 版的課程,內容跟 2.0 有部分不同,有不一樣的範例,而且那時候正好有特價, 300 元。就買吧!

個人覺得買這門課很划算,除了能跟著做出可以用的網站,最重要的是,Nick 也會教你怎麼用 Git、如何把網站發表的主機。

從 3 月(2020 年)開始,就抓空閑的時候邊看影片,邊打 code;忘了,就再回看。

隨著課程的進行,也懂得去爬 Django 相關論壇,釐清課程沒提到的概念與作法,終於在 8 月底把這堂課得完結了,也利用所學的知識,試做了簡單的食物資料庫查詢功能,也就是 Meal Checker!

django-mealchecker
試做 Demo:Project Name — Meal Checker!

不過這個「Meal Checker!」還只是個練習題的等級,驗收至今學習的結果;接下來,才是難關的開始,很多答案必須自己去找說明文件、線上論壇或是靠自己去想通,但每解開一個疑問,就會覺得很開心,不知道有多久沒體驗到這麼單純的喜悅了,光就這點來說,就很值得。

至於未來,能走到什麼程度,我也不知道,但就慢慢往前進吧!

寫在後面,英文會上英文課程的罩門嗎?

每次我跟朋友分享在 Udemy 買線上課程的時候,總會先被問到一個問題「都英文沒有問題嗎?」

在我學過 Django 和資料科學的兩門,總共十多小時課程後,我覺得不是問題。

首先,我的英文能力如何呢?其實還好,平常主要用用它查找與閱讀文獻,或是看某個成分的原文資料,然後,偶爾上網買買東西;沒機會說、看劇或電影會聽到英文這樣。

而這樣的我,不僅順利的把課上完,也還真的做出可以運作的網站。雖説,一開始真的會擔心,很怕不知道講師說的單字是什麼意思,所以會開自動字幕,只是,有時候字幕會擋住程式碼;後來實在是受不了,就關了,然後…嗯,好像沒啥影響哩,就這麼一直關到底了。

其實呀,單字不懂也沒關係,隨著課程的進度,慢慢就會知道那是什麼意思;總之,聽久了,自然會知道 OOO 就是 OOO,別急著翻字典。

Django 學習過程

  1. 有 Python 的簡單基礎:知道 python coding 規則、變數、函數怎麼用
  2. 在 Django Girls Taipei 初體驗
  3. Udemy 購買 Django 課程,並且上完 8.5 小時的課程