[Python] 使用 isinstance() 來檢查資料型別吧!

前言

先前使用 Python 測試物件、變數是否為指定的『類別』或『資料型態』 時(e.g. intfloatboolstrlist ……),都是使用 type() 方法,但其實 Python 有提供 isinstance() 函式,此法是較好的作法,不僅執行速度較快,也適用於自己建立的 Class 物件繼承(type() 不考慮物件繼承,若為繼承類別的物件不會判斷與父類是相同類別)數,來看看他有哪些特性與用法吧!

Read more

[Django] 在 Ubuntu 中運用 Nginx、Gunicorn 架設 Django API Server

鼠年全馬鐵人挑戰 - WEEK 19

前言

目前正在進行一個Side Project,用朋友開給我的虛擬機(VM)架設一台API Server,趁還有記憶時趕快來筆記一下。

前置作業:

  • OS: Ubuntu 18.04
  • Web Framework: Django 3.0; djangorestframework 3.11
  • Server: Nginx 1.14
  • Database: MySQL
Read more

[AWS] 用AWS Elastic Beanstalk 部署你的第一個Django應用

鼠年全馬鐵人挑戰 - WEEK 05

前言

本篇著重在如何使用AWS Elastic Beanstalk佈建你的Django專案,相較於EC2,Elastic Beanstalk讓開發者更能專注在撰寫程式上,不需花費額外時間建置環境。

前置作業

  • AWS Free Tier(一年期的免費帳號)
  • Python 3.6
  • pip
  • virtualenv
  • awsebcli
Read more

[Python] 作用域與Closure(閉包)

鼠年全馬鐵人挑戰 - WEEK 03

前言

前幾篇提到Python中的Decorator,其實隱含許多作用域以及閉包的概念,故另外獨立寫成一篇來近一步討論這兩者。

Read more

[Python] Django筆記 - Django Template Language(1)

鼠年全馬鐵人挑戰 - WEEK 02

前言

Django提供獨特的模板語法,將HTML頁面做動態載入。因為在HTML檔,無法使用python來撰寫程式,Django的模板引擎讓撰寫好的python程式碼可以建構在網頁上面。簡單來說,透過模板語法,我們可以在HTML檔寫入python的程式碼,讓網頁變成動態載入的狀態。

Read more

[Python] 淺談 Python 中的Decorator (上)

前言

之前專題寫Linebot時用Flask串接Linebot的SDK,一開始只是照個官方給的 Sample Code 去架設Linebot,後來深入研究Sample Code後一直不太理解裡面@的意涵,利用空檔撰寫這篇文章,加深對 Decorator 的觀念。

Decorator 中文翻作 裝飾器,裝飾 Python 中的 class 和 function,它其實是 Python 的一種語法糖(簡化寫法),不僅能使程式碼重複利用,將程式碼化繁為簡,更易於擴充,故被廣泛實作在套件上,而辨識 Decorator 的方法就是 Decorator 名稱前面會以@做開頭。
如下圖的 @app:

Decorator背後牽涉到兩個很重要的觀念 - 閉包(Closure) 以及**頭等函式 (First-class Function)**, 相關討論記錄在這篇筆記

本文主要著重探討 Decorator 的概念。

Read more

[Python] 字串格式化

前言

進行資料處理時,很多時候都需要對數值進行格式化轉為字串做拼接,或是某段字串與變數做串連。Python的字串格式化用於簡化靜態字串和變數的串接,並格式化變數,當然也可以對數值進行格式化成字串,字串格式化的方式有四種:

  • 百分比(%)
  • str.format => 作法:'{}'.format()
  • f-string(又作formatted string literals)
  • 樣板字串(Template String)

f-string是Python3.6之後才有的,實際上對比的話f-string是三者中(百分比(%)與'{}'.format())效能最好的,同時也提高可讀性,建議實際開發時,直接用f-string方法取代前兩者哦!

Read more

[Python] Django 筆記

什麼是 Django?

一個基於python建立的Web框架(Framework),幫你把大部分的程式架構都建構好,開發者可基於這個骨幹結構做開發應用,加強程式開發速度、重用性和程式的可讀性。相較於傳統的MVC(Model-View-Contorller)架構,Django也有屬於它的MTV(Model-Template-Views)架構。

Read more