iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 11
0
自我挑戰組

零基礎成為 AI 解夢大師秘笈系列 第 11

【零基礎成為 AI 解夢大師秘笈】Day11 - Django VIII

  • 分享至 

  • xImage
  •  

斜槓學習 – 零基礎成為 AI 解夢大師秘笈

前言

系列文章簡介

大家好,我們是 AI . FREE Team - 人工智慧自由團隊,這一次的鐵人賽,自由團隊將從0到1 手把手教各位讀者學會 (1)Python基礎語法 (2)Python Web 網頁開發框架 – Django (3)Python網頁爬蟲 – 周易解夢網 (4)Tensorflow AI語言模型基礎與訓練 – LSTM (5)實際部屬AI解夢模型到Web框架上。

為什麼技術要從零開始寫起

自由團隊的成立宗旨為開發AI/新科技的學習資源,提供各領域的學習者能夠跨域學習資料科學,並透過自主學習發展協槓職涯,結合智能應用到各式領域,無論是文、法、商、管、醫領域的朋友,都可以自由的學習AI技術。

資源

AI . FREE Team 讀者專屬福利 → Python Basics 免費學習資源

今日目標

  • 使用 Django Admin

教學開始

今天的內容主要是放在 Django 早在最一開始就幫我們建立好的 Django Admin。其介面簡潔,而且如果要對 models 做增刪改查,還有直接提供對應的GUI操作介面,可以讓我們使用。

1 Run Server

首先,想先請大家看看在 DI_project 裡面的 urls.py,在這邊我們曾經有加入過對應到 demo_app 的 path object (見下方code)

urlpatterns = [
    path('admin/', admin.site.urls),
    path("demo_app/", include("demo_app.urls"))
]

但不知道大家有沒有想過,上面還有一個 path('admin/', admin.site.urls) 這個是用來做什麼的呢?
其實它就是用來串起 Django Admin 的一個 path objecy。舉例而言,若是我們要使用到 demo_app/ 裡面的任何一個服務(ex: school_list),那我們就會開瀏覽器到 http://127.0.0.1:8000/demo_app/school_list ;同理,如果是要用到 Django Admin 的話,那就會需要到 http://127.0.0.1:8000/admin/

我們實際 run server 來看看目前的顯示內容。
$ python manage.py runserver
並且到 http://127.0.0.1:8000/admin/ 這個網址看看吧。
大家應該都會看到以下的畫面:
https://ithelp.ithome.com.tw/upload/images/20200926/201307128Y1DhA3T3Q.png
在這個畫面當中我們看到了一個登入的介面。
在 Django 最初的設計當中,原本就是希望我們可以透過帳號密碼才能進入 Django Admin,原因上面稍稍提到過,是因為我們進入 Django Admin 之後將具有對 models 資料做到增刪改查的權力,所以當然不希望任何一個誰都能這樣做,只有具備帳號密碼的人才能進入。

2 建立使用者

我們先取消 run server,在Command Line上面,按下 Crtl+C 中止 server 運作。
先前我們利用過 manage.py 做過下面4件事情

  1. make migrations
  2. migrate
  3. startapp
  4. runserver

而我們在今天若想要建立一個可以登入剛剛看到的介面的話,一樣也會使用到 manage.py,我們在 Command Line上面輸入

python manage.py createsuperuser

接著會提示我們分別設定 Username, Email Address, Password,在這邊大家就輸入自己熟悉的那些帳號密碼吧。

Username: ai.free.team
Email: AI.Free.Team@gmail.com
Password: It's_Secret
Password(again): It's_Secret

建立好之後,我們就可以再一次回到剛剛的登入頁面了。

python manage.py runserver

然後開啟瀏覽器,並至 http://127.0.0.1:8000/admin/ ,並且輸入剛剛自己設定的帳號密碼。
接著進入之後,大家就可以看到下面的這個畫面了。
https://ithelp.ithome.com.tw/upload/images/20200926/20130712BDWlEMxDFz.png
到了這邊,我們發現,诶?剛剛不是說具有帳號密碼的使用者就可以有權限對 model 做增刪改查的操作了嗎?是沒錯的,但是其實要做到這件事情之前,還需要做一點設定喔。

3. 設定 Admin

這裡的 admin 指的是 demo_app/admin.py 這個檔案,我們從開始到現在都沒有動過它,它是在我們最一開始的時候利用 python manage.py startapp demo_app 產生一個 APP 資料夾時自動產出的一個檔案。

我們現在希望剛剛看到的 Django Admin 可以同步重現 model(學派和古人) 的資訊,所以在 demo_app/ admin.py 當中,我們就會需要註冊(register)我們的這兩個 model。所以打開 demo_app/ admin.py 並將以下內容加入

from django.contrib import admin
from demo_app.models import Ancient_People, School

# Register your models here.
admin.site.register(Ancient_People)
admin.site.register(School)

在這邊我們想要註冊的對象是 Ancient_People 和 School,所以會需要從 demo_app.models 做 import 的動作。

回到 http://127.0.0.1:8000/admin/ ,這一次就會看到兩個 model 呈現出來了。
https://ithelp.ithome.com.tw/upload/images/20200926/20130712A5M5tIst9p.png

4. 查(GET)

這邊的相當於我們之前在開發API的時候使用到的GET。要做到將model內所有的資料都列出來,就只需要點選 Demo_app 的 Ancient_People 或是 School 就可以達到像是 school_list (詳情見demo_app/views.py)的效果。下圖為點選學派(School)之後的呈現結果:https://ithelp.ithome.com.tw/upload/images/20200926/20130712dWsOUgN80F.png

5. 改(POST)

這邊的,也就對應到我們利用 POST 做到 Update 的動作。假設我們想要讓孟子(Mencius)的歲數從65歲變成66歲,可以依序點擊 Demo_app的 Ancient_People > Mencius,就可以看到以下畫面:
https://ithelp.ithome.com.tw/upload/images/20200926/20130712rzYwW89eZg.png

然後再將歲數(age)的 65 改成 66,按下 Save 就 okay了。剩下的增加刪除相信大家自己摸索一下就可以順利使用了。之後大家如果有建立 models 的需求,除了我們最一開始介紹的 django shell command 之外,也可以創建一個superuser,然後進到 Django Admin 用圖形化的方式建立資料。

6 邁向 AI 解夢大師 - 第十ㄧ天

我們這8天從最一開始的建立專案、APP,然後使用 django shell command, 也有看到urls和views 的交互並接續加入了models的呈現,到自己建立API。最後,我們介紹了 Django Admin。相信大家對於 Django 已經相當熟悉了,不過這些都還算是 Django 的基礎,我們在未來幾天,會把一個語言模型作為 app 跑在 Django Project 裡面,屆時我們就會學習到 Django 的另一層應用了!

7 參考連結

想更深入認識 AI . FREE Team ?

自由團隊 官方網站:https://aifreeblog.herokuapp.com/
自由團隊 Github:https://github.com/AI-FREE-Team/
自由團隊 粉絲專頁:https://www.facebook.com/AI.Free.Team/
自由團隊 IG:https://www.instagram.com/aifreeteam/
自由團隊 Youtube:https://www.youtube.com/channel/UCjw6Kuw3kwM_il39NTBJVTg/

文章同步發布於:自由團隊部落格
(想看更多文章?學習更多AI知識?敬請鎖定自由團隊的頻道!)


上一篇
【零基礎成為 AI 解夢大師秘笈】Day10 - Django VII
下一篇
【零基礎成為 AI 解夢大師秘笈】Day12 - 前端 I
系列文
零基礎成為 AI 解夢大師秘笈30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言