建立子路由 (urls)
這裡就是應用 app 的子路由設定檔,所以必須在應用 /myapp
資料夾內則建立 urls.py
檔案。建議可以參照主路由 (urls.py) 檔的設定。
坦白講操作過 FastAPI
後,反而會不太習慣 Django
路由的操作。
這裡有一個規範 path('route', view, name, kwargs)
:
route
子路由,一般寫法"mypath/"
,或自定義路由"mypath/<int:any_id>/"
。 官方 Django URL dispatcherview
這是views.py
與urls.py
連接的方法,所以是取用views.py
內的def定義函式。name
幫 url 命名,方便辨識,可省略。kwargs
傳遞引數,如果沒有引數,也可省略。
舉例 : path ('mypath/int:any_id', views.def_path, name="mypath", kwargs={"msg":"hi! it's me!"})
DANGER
route 後面一定要加 "/" 斜線,否則 Django 會讀錯誤的風險。
py
from django.urls import path
from . import views
urlpatterns = [
path("world/", views.hello, name="hello") ]
到這裡設定路由後會變成 http://127.0.0.1:8000/hello/world/
,可以看出urls.py
與myapp/urls.py
參數的顯示順序。
傳送引數 kwargs
如果路由上想要丟給 view
資料,可以用 kwargs
。
py
urlpatterns = [
path("world/", views.hello, name="hello",kwargs={"msg":"good!",'x':123}) ]
接收前端丟過來的資料 ( urls.py )
在html
裡面要指定函式,例如下方就使用method='POST'
及{% url 'add_item' %}
來餵給後端表單資料。
html
<form method='POST' action="{% url 'add_item' %}">
....
</form
在 urls
這裡其實只要指定 views
內的方法即可接收或處理前端丟過來的資料,
py
from django.urls import path
from . import views
urlpatterns = [
#...
path('', views.index, name='index'),
path('keyin/', views.ontable, name='record'),
# 餵我資料
path('get_me_data/', views.add_item, name='add_item')
]
DANGER
這裡必須配合 views.py
所 def 定義的函式