跳到主要內容

文章

目前顯示的是 四月, 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) #標題 finish = models.BooleanField(default=False) #是否完成 created = models.DateField(default=timez…

[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.staticfiles', # 自己的應用程式 'accounts.apps.AccountsConfig', # allauth…

[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 APIREST(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 tastypietastypie是Django框架的套件,支援Python3.4+及Django3.0,讓開發人員可以快速的在Django框架中,利用Python來開發RESTful API。

前往Django Packages,這邊類似Python的PyPI,擁有許多非常實用的Django套件,在右上角的地方輸入django-tastypie來進行查詢,如下圖: 可以看到Django tastypie在2010年建立,並且擁有3636顆GitHub Stars,點擊套件名稱後,即可在右側…

[Django教學11]Django部署到Heroku雲端平台教學指南

Photo by Christin Hume on Unsplash 在網站開發完成後,不論是網路服務、作品集或網站,為了要讓全世界的使用者可以進行存取使用,就需要部署至雲端平台上,而本文所要分享的Heroku,就是一個非常受歡迎的免費雲端平台,可以用來運行網站或服務。

Heroku支援多種程式語言,使用Git來進行部署,並且提供Heroku CLI(Command Line Interface),來提升部署的效率。本文將示範在Windows作業系統上,部署Django網站到Heroku的過程,分為Django部署準備及部署步驟兩個部份來進行說明,如下: 一、Django部署準備  1.註冊Heroku帳號
  2.安裝Heroku CLI
  3.安裝Git
  4.安裝gunicorn套件
  5.Django靜態檔案設定
  6.安裝whitenoise套件
二、Django部署步驟  1.登入Heroku
  2.建立Heroku應用程式
  3.設定Django ALLOWED_HOSTS
  4.建立Git Repository
  5.儲存(commit)程式碼至本地端硬碟(Local Repository)
  6.推送至Heroku Git Repository
  7.設定Heroku主機數量
  8.開啟網站
一、Django部署準備1.註冊Heroku帳號
首先,前往Heroku官網,點擊「SIGN UP FOR FREE」按鈕,依照指示來註冊使用者帳號,如下圖: 2.安裝Heroku CLI
有了Heroku的帳號後,接著前往Heroku Dev Center,來安裝Heroku CLI(Command Line Interface),讓開發人員能夠利用指令的方式,進行Heroku的各種操作,例如登入、建立應用程式及設定等,提升部署Django應用程式的效率。安裝的畫面如下: 選擇相應的作業系統,進行安裝即可。
3.安裝Git
Git是一個分散式的版本控制系統,除了可以協助開發人員進行程式碼的版本控制外,也能夠將程式碼,推送至Heroku雲端平台的Git Repository,來進行部署。

前往Git官網的下載頁面,依照作業系統進行安裝,如下圖: 安裝完成後,開啟命令提示字元視窗,輸入以下指令: $ git --version 如果有顯示版本號,即代表Git安裝成功。
4.安裝gunico…