Django URL和View的關(guān)系說明
URL和View的關(guān)系
1、每次用戶發(fā)來一個(gè)HttpRequest請求,Django會(huì)用URL_pattern與請求進(jìn)行匹配,匹配到第一個(gè)URL_pattern就會(huì)把請求轉(zhuǎn)向?qū)?yīng)的view
2、view用來響應(yīng)request,并返回response,response里可以包含網(wǎng)頁文件呀,圖片等等。所以項(xiàng)目中絕大部分代碼均在此編寫。
view 可以引入通用模板來減少代碼量,具體查看文檔
Use generic views
3、view引入HTML文件的方法:
在一個(gè)app下建立一個(gè)templates文件夾,將html文件放進(jìn)去該文件夾
這里其實(shí)不一定要把HTML文件放在這個(gè)templates里,可以隨意定義
不過,需要在setting.py里,找到templates,
修改DIRS:[ os.path.join (BASE_DIR,'你定義的html存放的文件夾')]
在app下 view.py 文件,在里面寫好view函數(shù)
def 函數(shù)名(request):
return render(request,'index.html')
render(渲染)需要三個(gè)變量, 第一個(gè)變量是request請求,第二個(gè)是模版所在目錄,第三個(gè)是一個(gè)字典(可選),字典用于對應(yīng)模板里設(shè)計(jì)的變量,可以用locals()將函數(shù)里設(shè)計(jì)的變量自動(dòng)轉(zhuǎn)換為字典
4、在對于app下創(chuàng)建一個(gè)urls.py ,寫入如下內(nèi)容
from django.urls import path
from . import views
urlpatterns = [
path('', views.index, name='index'),
]
5、在項(xiàng)目文件夾里找到 urls.py 加入如下內(nèi)容
from django.urls import include, path
urlpatterns = [
path('polls/', include('polls.urls')),
path('admin/', admin.site.urls),
]
對于<a>標(biāo)簽里的 href 可以用 {% url 'url名' %}來代替,url名指的是 urls.py 里的path('login.html/', views.my_login, name='url名'),
Django 中通常使用 get_object_or_404()來捕捉 404 錯(cuò)誤,而不用自己寫 try...except
def detail(request, question_id):
question = get_object_or_404(Question, pk=question_id)
return render(request, 'polls/detail.html', {'question': question})
補(bǔ)充: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', {})
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教。
相關(guān)文章
python利用PyQt5設(shè)計(jì)鼠標(biāo)顯示形狀
不知道大家有沒有發(fā)現(xiàn),我們在網(wǎng)頁移動(dòng)鼠標(biāo)時(shí),不同的網(wǎng)頁會(huì)有不同的鼠標(biāo)移動(dòng)特效,通過移動(dòng)鼠標(biāo),會(huì)形成類似蜘蛛網(wǎng)等等的特效,本文將用PyQt5實(shí)現(xiàn)這一特效,需要的可以參考一下2024-07-07
Python?中?Selenium?的?send_keys()?函數(shù)用法小結(jié)
send_keys() 是將數(shù)字、文本和符號(hào)等鍵盤輸入發(fā)送到應(yīng)用程序的文本框的過程, send_keys() 是 WebDriver 的一部分,每個(gè)鍵盤輸入都會(huì)發(fā)送到此元素,這篇文章主要介紹了Python?中?Selenium?的?send_keys()?函數(shù),需要的朋友可以參考下2023-11-11
Python cookbook(數(shù)據(jù)結(jié)構(gòu)與算法)篩選及提取序列中元素的方法
這篇文章主要介紹了Python cookbook(數(shù)據(jù)結(jié)構(gòu)與算法)篩選及提取序列中元素的方法,涉及Python列表推導(dǎo)式、生成器表達(dá)式及filter()函數(shù)相關(guān)使用技巧,需要的朋友可以參考下2018-03-03
Python實(shí)現(xiàn)將字典內(nèi)容保存到Excel文件的四種方法
Python 中的字典是一個(gè)數(shù)據(jù)集合,其中每個(gè)值對應(yīng)一個(gè)鍵,它們是無序的、可變的,并且對字典中存儲(chǔ)的值和鍵的數(shù)據(jù)類型沒有限制,本文給大家介紹了Python實(shí)現(xiàn)將字典內(nèi)容保存到Excel文件的四種方法,需要的朋友可以參考下2024-07-07
使用Python的Twisted框架實(shí)現(xiàn)一個(gè)簡單的服務(wù)器
這篇文章主要介紹了使用Python的Twisted框架實(shí)現(xiàn)一個(gè)簡單的服務(wù)器,翻譯自Twisted的文檔,需要的朋友可以參考下2015-04-04

