大家好,我們是 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 早在最一開始就幫我們建立好的 Django Admin。其介面簡潔,而且如果要對 models 做增刪改查,還有直接提供對應的GUI操作介面,可以讓我們使用。
首先,想先請大家看看在 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/ 這個網址看看吧。
大家應該都會看到以下的畫面:
在這個畫面當中我們看到了一個登入的介面。
在 Django 最初的設計當中,原本就是希望我們可以透過帳號密碼才能進入 Django Admin,原因上面稍稍提到過,是因為我們進入 Django Admin 之後將具有對 models 資料做到增刪改查的權力,所以當然不希望任何一個誰都能這樣做,只有具備帳號密碼的人才能進入。
我們先取消 run server,在Command Line上面,按下 Crtl+C
中止 server 運作。
先前我們利用過 manage.py 做過下面4件事情
而我們在今天若想要建立一個可以登入剛剛看到的介面的話,一樣也會使用到 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/ ,並且輸入剛剛自己設定的帳號密碼。
接著進入之後,大家就可以看到下面的這個畫面了。
到了這邊,我們發現,诶?剛剛不是說具有帳號密碼的使用者就可以有權限對 model 做增刪改查的操作了嗎?是沒錯的,但是其實要做到這件事情之前,還需要做一點設定喔。
這裡的 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 呈現出來了。
這邊的查相當於我們之前在開發API的時候使用到的GET。要做到將model內所有的資料都列出來,就只需要點選 Demo_app 的 Ancient_People 或是 School 就可以達到像是 school_list (詳情見demo_app/views.py)的效果。下圖為點選學派(School)之後的呈現結果:
這邊的改,也就對應到我們利用 POST 做到 Update 的動作。假設我們想要讓孟子(Mencius)的歲數從65歲變成66歲,可以依序點擊 Demo_app的 Ancient_People > Mencius,就可以看到以下畫面:
然後再將歲數(age)的 65 改成 66,按下 Save 就 okay了。剩下的增加和刪除相信大家自己摸索一下就可以順利使用了。之後大家如果有建立 models 的需求,除了我們最一開始介紹的 django shell command 之外,也可以創建一個superuser,然後進到 Django Admin 用圖形化的方式建立資料。
我們這8天從最一開始的建立專案、APP,然後使用 django shell command, 也有看到urls和views 的交互並接續加入了models的呈現,到自己建立API。最後,我們介紹了 Django Admin。相信大家對於 Django 已經相當熟悉了,不過這些都還算是 Django 的基礎,我們在未來幾天,會把一個語言模型作為 app 跑在 Django Project 裡面,屆時我們就會學習到 Django 的另一層應用了!
自由團隊 官方網站: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知識?敬請鎖定自由團隊的頻道!)