跳到主要內容

文章

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

[Django教學7]善用Django ModelForm快速開發CRUD應用程式教學

Photo by Daniel Fazio on Unsplash 在現今許多網站中,多數都會有使用到表單的時候,舉例來說,在註冊會員時,就是使用表單的方式來填寫基本資料,進而儲存會員資料至資料庫中。

Django網站框架,提供了許多表單的開發方式,其中最常使用的為ModelForm(資料模型表單),顧名思義,就是利用規劃資料庫時,所建立的資料模型類別(Model),來開發表單,能夠快速建置基本的CRUD(Create-Read-Update-Delete)表單應用程式。
本文將實際開發基本的記帳網站,來說明Django ModelForm的開發方式,其中的重點包含: Django ModelForm建置Django ModelForm初始化Django ModelForm新增資料操作Django Url Reference網址參考Django ModelForm修改資料操作Django ModelForm刪除資料操作一、Django ModelForm建置在開發Django網站的ModelForm(資料模型表單)前,需事先建立網站的資料模型(Model),其中的建立方式可以參考Django Migration(資料遷移)的重要觀念文章。

而本文所要建置的記帳網站資料模型(models.py),如下範例: from django.db import models class Expense(models.Model): name = models.CharField(max_length=255) #花費項目 price = models.IntegerField() #金額Django ModelForm(資料模型表單)就是依據models.py中的資料模型類別,來建立網站表單。首先,在Django的應用程式(APP)下新增一個forms.py檔案,如下圖: 接著,在forms.py檔案中自定類別,繼承自ModelForm類別,並且在其中設定表單所要綁定的資料模型名稱,如下範例: from django import forms from .models import Expense class ExpenseModelForm(forms.ModelForm): class Meta: model = Expense而要指定在…

[Django教學6]Django Template(樣板)整合Bootstrap實戰教學

Photo by Hal Gatewood on UnsplashDjango Template(樣板)開發快速上手文章中,介紹了基本的Django Template(樣板)開發,接下來,本文將教大家如何整合Bootstrap框架至Django專案中,讓Template(樣板)畫面看起來更加精緻。
另外,本文在Django Template(樣板)中,所要展示的資料內容,使用PIXNET痞客幫的Open Data API,來顯示國內旅遊的部落格文章。主要的重點包含: PIXNET Open Data APIDjango Base Template(共用樣板)Bootstrap 一、PIXNET Open Data API PIXNET痞客幫為一個部落格類型的網站,其中包含了許多知名部落客所撰寫的經典文章,像是美食、旅遊、親子及美妝等,所以本文將以PIXNET痞客幫所提供的Open Data API,存取文章相關資訊至Django專案的Template(樣板)中。
而PIXNET痞客幫的官方API文件首頁,如下圖所示: 如果想要存取PIXNET痞客幫的API,需進行應用程式的申請,而本文所要使用的資料為Open Data(開放資料),所以無需進行申請的動作,位於上方導覽列,如下圖: 進入Open Data(開放資料)的說明頁面後,可以看到使用的方式及相關規定,而其中有本文所要使用的「文章分類」開放資料API文件連結,如下圖: 點擊後,即可看到「文章分類開放資料API」的使用方式及範例,擷取部分畫面如下圖: 由於Python呼叫API需使用requests套件(Package),所以,需事先利用以下指令進行安裝: pip install requests 完成後,開啟Django專案應用程式(APP)下的views.py檔案,引用requests套件(Package),利用get方法(Method)呼叫「文章分類開放資料API」,並且指定類別ID,最後將取得的文章物件傳送至應用程式(APP)下的index.html樣板,如下範例: from django.shortcuts import render import requests def index(request): response = requests.get( "https://emm…

[Django教學5]Django Template(樣板)開發快速上手

Photo by Nick Adams on Unsplash 在學會Django Administration操作及客製化技巧後,各位可以透過管理介面,新增幾筆「景點位置」及「景點貼文」資料,本文將介紹透過Django所提供的資料庫抽像介面(Database Abstraction API),查詢資料庫中的景點貼文資料,並且利用Django Template(樣板)來進行顯示,主要的重點包含: Django資料庫抽象API-查詢Django Template(樣板)Django Template(樣板)語法一、Django資料庫抽象API-查詢在Django Migration(資料遷移)的重要觀念文章中,建立了Django專案的應用程式(APP)資料模型,如下: from django.db import models from django.utils import timezone # 景點位置 class Location(models.Model): name = models.CharField(max_length=255) #位置名稱 #景點貼文 class Post(models.Model): subject = models.CharField(max_length=255) #標題 content = models.CharField(max_length=255) #內容 author = models.CharField(max_length=20) #貼文者 create_date = models.DateField(default=timezone.now) #貼文時間 location = models.ForeignKey(Location, on_delete=models.CASCADE) #景點位置範例中的資料模型皆繼承自Model類別,這也意味著,可以透過其中所提供的資料庫抽象API,來進行資料的新增、修改、刪除及查詢,本文將介紹查詢API的基本用法,而其餘的操作待後續依網站的功能來進行介紹。

開啟應用程式(APP)下的views.py,引用models中的Post(景點貼文)類別,接下來,即可在檢視函式(View Function)中,使用Model類別的資料庫…

[Django教學4]實用的Django Administration操作及客製化技巧

Photo by Tim Arterbury on Unsplash Django Administration(管理員後台)是在建立Django專案時,預設提供的功能,在上面除了能夠進行基本的使用者集群組管理外,也可以在上面彈性的加入自己Django專案的資料模型(Model),來擁有屬於這個專案的後台,就算不使用Django預設的SQLite資料庫,而使用其它的資料庫,同樣可以使用,無須自己從頭開發,相當的強大。
本文將分享Django Administration(管理員後台)的操作介面,以及說明如何透過Django專案中的admin.py檔案,來進行介面的客製化,重點包含: Django Administration操作Django admin.py檔案Django Administration客製化資料表顯示欄位Django Administration客製化資料表單欄位 一、Django Administration操作 要使用Django專案的Administration(管理員後台),首先,需註冊一個超級使用者(SuperUser)的帳號密碼,開啟Visual Studio Code的Terminal視窗,輸入以下指令: python manage.py createsuperuser 執行結果 從執行結果可以看到,執行指令後,會逐步的設定管理者帳號、電子郵件及密碼,完成後,利用以下指令啟動本地端伺服器: python manage.py runserver 執行結果
接著開啟瀏覽器,輸入執行結果的網址,並且加上/admin,即可看到Django Administration(管理員後台)的登入畫面,如下圖:
輸入剛剛所建立的超級使用者(SuperUser)帳號密碼後,可以看到Django專案中的使用者(Users)及群組(Groups)資料模型,如下圖:
以使用者(Users)資料模型為例,點擊Users後,可以看到其資料表,並且提供了查詢、新增、篩選及排序等操作,來管理Django專案的使用者,如下圖:
二、Django admin.py檔案admin.py檔案主要就是用來註冊資料模型(Model)及客製化Django Administration(管理員後台)的顯示方式。現在,如果想要把Django專案中的應用程式(APP)資料模型(Model),加入到Djan…