iT邦幫忙

第 12 屆 iT 邦幫忙鐵人賽

DAY 27
0
自我挑戰組

Cloud/SDN/SFC...菜鳥的學習筆記系列 第 27

DAY 27 Django 簡易入門教學(四)-建立 Django 視圖

Django 視圖(View)

今天讓我們來新增自己的第一個視圖(View)吧!
前往 myapp/views.py 並且新增

from django.http import HttpResponse

def hello_world(request):
    return HttpResponse("Hello World!")

如圖:

先是從 django.http 模組中引用 HttpResponse 類別,再宣告 hello_world 。
當 hello_world 被呼叫時則回傳包含字串 Hello World! 的 HttpResponse 物件。

接著,前往 myproject/urls.py 中,引入剛剛再views中定義的 hello_world :

from myapp.views import hello_world

以及在 urlpatterns 中新增這一行:

path('hello/', hello_world),

如下圖:

完成後,當我們前往 http://127.0.0.1:8000/hello/
變會看到以下畫面:

如果你有看到這個畫面那麼恭喜你成功了!
而上述的步驟就是建立一個view最基本的步驟。接下來,讓我們多一點變化:

在 urls.py 中新增一個 add:

from django.contrib import admin
from django.urls import path
from myapp.views import hello_world,add  #新增

urlpatterns = [
    path('admin/', admin.site.urls),
    path('hello/', hello_world),
    path('add/<int:a>/<int:b>', add),  #新增
]

我們在 myapp/views.py 定義 add :

def add(request, a, b):  #新增add
    s = a + b
    return HttpResponse(s)

如圖:

儲存之後當我們進入 127.0.0.1:8000/add/5/10 這個網址
我們便能夠顯示 5+10 結果,如圖:

然而這功能其實你也能夠用正規表示法來做,但是正規表示法就比較麻煩了:

from django.contrib import admin
from django.urls import path, re_path #引進re_path
from myapp.views import hello_world,add

urlpatterns = [
    path('admin/', admin.site.urls),
    path('hello/', hello_world),
    re_path(r'add/(\d{1,2})/(\d{1,2})', add),  #正規表示法
]

這下你知道為什麼我不想用正規表示法了吧

接著修改 views.py 的 add :

def add(request, a, b): #修改
    s = int(a) + int(b)
    return HttpResponse(s)

一樣也能做到相同的功能。
今天就先寫到這,明天將講解模版(Template)的應用。


上一篇
DAY 26 Django 簡易入門教學(三)-建立 Django 專案與 APP
下一篇
DAY 28 Django 簡易入門教學(五)-建立模版
系列文
Cloud/SDN/SFC...菜鳥的學習筆記30

尚未有邦友留言

立即登入留言