跳到主要內容

發表文章

目前顯示的是 4月, 2020的文章

[Django教學14]解析5個常用的Django Class-based Views使用方式

Photo by Austin Distel on Unsplash 在一般的 Django 專案開發,可以看到 Django 應用程式 (APP) 下的 views.py 檔案中,依照功能的需求撰寫了許多的檢視函式 (View Function) ,這種寫法就稱為函式導向的檢視 (Function-based Views) ,雖然較為直覺,但是隨著 Django 專案的規模越來越大,這樣的寫法就像是在 Python 專案中寫了許多的函式 (Function) 一樣,對於未來的維護及擴充性,較不理想。 所以,這時候就會使用 Python 物件導向 (OOP) 的概念,將許多的函式 (Function) 模組化為類別 (Class) 及方法 (Method) ,來提高程式碼的重用性及維護性。 Django 也是相同的道理,它提供了許多內建的檢視類別,讓開發人員能夠藉由覆寫 (Overriding) 的方式 ,將函式導向的檢視 (Function-based Views) ,封裝成類別導向的檢視 ( Class-based Views ) ,不但具有物件導向 (OOP) 的優點外, Django 在背後也幫我們做了許多的事情,讓程式碼的寫法能夠更加簡潔。 因此,本文將利用 5 個常用的Django檢視類別 ,來實作待辦清單 (To Do List) 網站,藉此 與函式導向的檢視 (Function-based Views) 寫法作 比較 ,重點包含: 前置作業 Django ListView ( 清單檢視類別 ) Django CreateView ( 新增檢視類別 ) Django UpdateView ( 修改檢視類別 ) Django DeleteView ( 刪除檢視類別 ) Django DetailView ( 內容檢視類別 ) 一、前置作業 在進行今天的實作前,先來說明一下本文所使用的待辦清單 (To Do List ) 資料模型,如下範例: from django.db import models from django.utils import timezone class Todo(models.Model): title = models.CharField(max_length=100)

[Django教學13]Django Allauth套件整合Google登入驗證實作教學

Photo by NordWood Themes on Unsplash 現在有些網站或平台,登入時會提供額外的第三方登入驗證方式, 像是 Facebook、Google 及 Twitter 等, 讓使用者能夠省去註冊新帳號的動作,以提升使用體驗及效率。 而利用 Python 的 Django 框架來建置網站,想要提供使用者這樣的服務,除了可以透過第三方應用程式所提供的 API ,自行實作所有的串接外, Django allauth 套件是一個非常受歡迎且 整合了許多知名的第三方登入驗證功能,只要進行基本的設定,就能夠讓開發人員 快速與社群帳號的登入驗證進行 整合。 所以本文將以 [ Django 教學 8 ] Django UserCreationForm 實作網站登入驗證及註冊功能分享 文章中所實作的 Django 登入為基礎,示範如何利用 Django allauth 套件,加入 Google 的登入方式。其中的重點包含: 安裝 Django allauth套件 建立 Google 應用程式 Django 整合實作 一、安裝 Django allauth套件 Django allauth 套件支援 Python 3.5+ 及 Django 2.0+ ,詳細的參考文件 (Document) 可以前往 Django Package 官網的 django-allauth 。 首先,利用以下的指令來進行安裝: $ pip install django-allauth 安裝完成後,開啟 Django 專案的 settings.py ,在 INSTALL_APPS 中,加入 allauth 套件及所需的第三方登入驗證提供者 (provider) ,如下範例: INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.s

[Django教學12]利用輕量的Django tastypie來打造屬於自己的API

Photo by Jan Piatkowski on Unsplash 現在,有許多的開發人員會使用許多的方式收集所需的資料,像是網頁爬蟲或網站平台,而擁有了這些有價值的資料後,有些時候會想要提供給大眾使用,進而創造出多元的應用,而最普遍就是透過 API(Application Programming Interface) 來提供服務。那該如何開發屬於自己的 API 服務呢? Django tastypie 套件,就是能夠讓開發人員使用 Python ,快速的建立 RESTful API ,非常簡潔且容易使用,所以本文將分享利用 Django tastypie 套件,來開發一個簡單的音樂歌曲清單 API ,藉此瞭解 Python 在 Django 框架中,建置 API 的實作過程,其中的重點包含: 簡介 RESTful API 什麼是 Django tastypie 安裝 Django tastypie 建立 API 資源 測試 API 建立 API 版本 設定 API 顯示欄位 限制 API 請求方法 一、簡介 RESTful API REST(Resource Representational State Transfer ) 是一個「軟體架構風格」,其中的核心概念是,將提供服務的一方稱為資源 (Resource) ,並且利用 HTTP 傳輸協定的動詞 (GET/POST/PUT/DELETE) 來進行操作,而符合這種軟體架構風格的 API ,就稱為 RESTful API ,也因此 RESTful API 可以透過 HTTP 動詞及 API 網址,可以很直覺的知道會進行什麼樣的操作,簡單舉例如下: 查詢電影資料 GET /movies 查詢電影資料 GET /movies/1 新增電影資料 POST /movies 修改電影資料 PUT /movies 刪除電影資料 DELETE /movies 二、什麼是 Django tastypie tastypie 是 Django 框架的套件,支援 Python3.4+ 及 Django3.0 ,讓開發人員可以快速的在 Django 框架中,利用 Python 來開發 RESTful API 。 前往 Django Packages ,這邊類似