Django中URL和View的关系
每次用戶發來一個HttpRequest請求,Django會用URL_pattern與請求進行匹配,匹配到第一個URL_pattern就會把請求轉向對應的view
view用來響應request,并返回response,response里可以包含網頁文件呀,圖片等等。所以項目中絕大部分代碼均在此編寫。
view 可以引入通用模板來減少代碼量,具體查看文檔
Use generic views
view引入HTML文件的方法:
在一個app下建立一個templates文件夾,將html文件放進去該文件夾
這里其實不一定要把HTML文件放在這個templates里,可以隨意定義
不過,需要在setting.py里,找到templates,
修改DIRS:[ os.path.join (BASE_DIR,'你定義的html存放的文件夾')]
在app下 view.py 文件,在里面寫好view函數
def 函數名(request): return render(request,'index.html')
render(渲染)需要三個變量, 第一個變量是request請求,第二個是模版所在目錄,第三個是一個字典(可選),字典用于對應模板里設計的變量,可以用locals()將函數里設計的變量自動轉換為字典
在對于app下創建一個urls.py ,寫入如下內容
from django.urls import path ? from . import views ? urlpatterns = [ ? ? path('', views.index, name='index'), ? ] ?在項目文件夾里找到 urls.py 加入如下內容
對于<a>標簽里的 href 可以用 {% url 'url名' %}來代替,url名指的是 urls.py 里的path('login.html/', views.my_login, name='url名'),
Django 中通常使用 get_object_or_404()來捕捉 404 錯誤,而不用自己寫 try...except
def detail(request, question_id): ? ?question = get_object_or_404(Question, pk=question_id) ? ?return render(request, 'polls/detail.html', {'question': question})總結
以上是生活随笔為你收集整理的Django中URL和View的关系的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: IE下载附件,文件大小超过10M后 无法
- 下一篇: 最简短的加入收藏代码