iT邦幫忙

2022 iThome 鐵人賽

DAY 12
0

Create app

django 的架構是這樣的,在專案底下有 app,你的 api 會寫在 app 底下,這樣好處就是可以分門別類,不同功能寫在不同 app 內

建立 app 的指令如下

python manage.py startapp [app-name]

比方說我建立了一個 app 叫 app,那專案內就會多了個 app 路徑

https://ithelp.ithome.com.tw/upload/images/20220912/20132990SFFYoZAYQG.png

settings.py

把這個 app 加入這個專案,要在 back_end/back_end/settings.py 內的 INSTALLED_APPS 內加入 app

https://ithelp.ithome.com.tw/upload/images/20220912/20132990K1EU69rPjX.png

urls.py

然後要建立 app 的 url,我們來到 back_end/back_end/urls.py,在 urlpatterns 內加入 app 的 url

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

API

app 架構如下

https://ithelp.ithome.com.tw/upload/images/20220912/20132990XNPOBoGiRX.png

主要都是寫 views.pyurls.py 兩個檔案,功能是寫在 views.py,api 的 url 是寫在 urls.py,預設沒有幫你建立 urls.py 這個檔案,你要自己建立

views

views.py 內空空如也,連示範都沒有

https://ithelp.ithome.com.tw/upload/images/20220912/20132990u4D8mJLnJA.png

那來簡單寫一個 function 吧,先多引入一些要用到的東西

from django.shortcuts import render
from django.http import JsonResponse, response
from django.conf import settings

from django.http import JsonResponse, response 是在引入一些 api 的回傳方法,像 JsonResponse 可以以 json 格式回傳資料,FileResponse 可以回傳檔案等等

function 部分

def function1(request):
    # do something
    return JsonResponse({})

最基本就是這樣,之後還會講前後端溝通,這邊先知道這樣就好,這裡就只是定義了一個 function1 函數,裡面有一個參數叫 request,用來接收前台請求,最後回傳一個空的 json

urls.py

建立一個 urls.py 在 app 之下

from django.urls import path
from . import views

urlpatterns = [
    path('function1', views.function1),    
]

這樣前台呼叫 [back-end host]/app/function1 這支 api 就可以使用 function1 了


上一篇
Create Django project
下一篇
Compare axios, ajax, fetch
系列文
Vue+Django+MongoDB+Nginx 全端開發30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言