手把手程式實作分享系列:Django初體驗
簡介
在開始手把手教大家動手做前,先來認識一下 Django 的設計模式,也就是 MTV:
Model : 定義一些資料庫的東西 ( ORM ),這層通常是直接和資料有關。
Template : 使用者基本上就是看到這層,也就是最後所呈現的 Template ( html )。
View : 可以將這層看做是中間層,它主要負責 Model 和 Template 之間的業務邏輯。
介紹了 Django 的設計模式,接下來你一定會問,那這有什麼好處 ❓
最直接的好處就是,我們可以很明確且很快速的知道問題在哪裡,例如,今天可能頁面出了問題,
這樣我們就會知道要先去 template 中找問題,而如果是關於資料庫的問題,則可能就要先去 Model中找,總之,就是不會像一隻無頭蒼蠅一樣不知道要去哪裡找問題。
教學
請先確認電腦有安裝 Python
接著我們安裝 Django
請在你的命令提示字元 (cmd ) 底下輸入
pip install django==1.11.9
( 會指定版本的原因是因為 django 2.0 開始有些東西不太一樣 )
基本上安裝應該沒什麼問題,可以再使用 cmd 確認,如下圖
建立 Django Project
使用指令的方式來建立,指令如下
django-admin startproject django_tutorial
後面django_tutorial是可變的參數,可改成自己喜歡的名字。
p.s 不要自己沒進入桌面或搞不清楚現在的指定位置,結果說找不到資料夾耶…..在執行時,記得看一下自己位置在哪裡。或者就先打cd desktop
執行 Django
進入剛剛創立的資料夾
cd django_tutorial
在命令提示字元 (cmd ) 底下輸入
python manage.py runserver
然後去Chrome或其任何瀏覽器進入: http://127.0.0.1:8000/
會發現下面頁面。
恭喜你~ 成功第一步了 😄
建立 Django App
先建立一個觀念,在 Django 中,通常我們會依照「功能」去細分每一個 App , 例如打成 crawler ,代表他是管理「爬蟲」 的部份。
有了這個觀念之後,我們動手開始做吧~
請在你的命令提示字元 (cmd ) 底下輸入
python manage.py startapp crawler
那後面crawler的部分,也是大家可以自己修改的喔!
如果順利執行,你會發現你的專案內多出一個 crawler 資料夾
建立完請記得要將 App 加入設定檔
請在 settings.py 裡面的 INSTALLED_APPS 加入 crawler (也就是你自己建立的 App 名稱)
Views
請再你的APP下方新增一個 templates 資料夾,裡面在新增一個 hello_django.html,並在裡面輸入下方程式碼 (下圖)
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
{{data}}
</body>
</html>
hello_django.html 裡面的第 8 行,會透過 views.py 傳值過來。
關於第 8 行 的用法,更多可以參考 Django Templates。
接著我們將 views.py 裡面新增下方程式碼 (下圖)
from django.shortcuts import render
# Create your views here.
def hello_view(request):
return render(request, 'hello_django.html', {
'data': "Hello Django ",
})
views.py 裡面的第 7 行,就是回傳給 hello_django.html 的資料。
注意,最後還必須設定 URLconf。
URLconf
請再將 urls.py 裡面增加一些程式碼,如下圖
from django.conf.urls import url
from django.contrib import admin
from crawler.views import hello_viewurlpatterns = [
url(r'^admin/', admin.site.urls),
url(r'^hello/', hello_view),
]
簡單講,就是將 views.py import 進來 (第 18 行),
並且設定他的 URL (第 22 行)
最後執行 Django , 然後瀏覽 http://127.0.0.1:8000/hello/
進入網頁後,你應該會看到如下圖
那初步的教學就這樣可以完成了! 下次真的來套用一些爬蟲的應用!