溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Django URL和View的關系是什么

發(fā)布時間:2021-03-15 10:50:51 來源:億速云 閱讀:331 作者:TREX 欄目:開發(fā)技術

這篇文章主要介紹“Django URL和View的關系是什么”,在日常操作中,相信很多人在Django URL和View的關系是什么問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”Django URL和View的關系是什么”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!

URL和View的關系

1、每次用戶發(fā)來一個HttpRequest請求,Django會用URL_pattern與請求進行匹配,匹配到第一個URL_pattern就會把請求轉向對應的view

2、view用來響應request,并返回response,response里可以包含網頁文件呀,圖片等等。所以項目中絕大部分代碼均在此編寫。

view 可以引入通用模板來減少代碼量,具體查看文檔

Use generic views

3、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()將函數里設計的變量自動轉換為字典

4、在對于app下創(chuàng)建一個urls.py ,寫入如下內容

from django.urls import path
from . import views
urlpatterns = [ 
 path('', views.index, name='index'),
]

5、在項目文件夾里找到 urls.py 加入如下內容

from django.urls import include, path

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

對于<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配置方法

django中url與view配置方法(一)

url.py

from django.conf.urls import url
from . import views
urlpatterns = [
 url(r'^$', views.showAssets, name='show_assets'),
]

views.py

# -*- coding: utf-8 -*-
from django.shortcuts import render_to_response
# Create your views here.
def showAssets(request):
 return render_to_response('assets_index.html', {})

django中url與view配置方法(二)

url.py

# -*- coding: utf-8 -*-
from django.conf.urls import url
from app001.views import IndexView
urlpatterns = [
 url(r'^admin/', admin.site.urls),
 url(r'^$', IndexView.as_view(), name="index"), ]

views.py

# -*- coding: utf-8 -*-
from django.views.generic.base import View
from django.shortcuts import render
# Create your views here.
class IndexView(View):
 def get(self, request):
  return render(request, 'index.html', {})

到此,關于“Django URL和View的關系是什么”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續(xù)學習更多相關知識,請繼續(xù)關注億速云網站,小編會繼續(xù)努力為大家?guī)砀鄬嵱玫奈恼拢?/p>

向AI問一下細節(jié)
推薦閱讀:
  1. 102django_cbv
  2. 部署Django

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI