django學習--templates模板
1 自定義urls
每次建立的view和對應的url對映總要配置在專案主目錄的urls.py中,如果配置的多了的話
會很麻煩而且不便於維護,所以django支援我們自定義的urls並使用
django.conf.urls.include([views.[方法]])方法匯入對應的對映方法
1.1 開始建立自定義的urls.py
在blog目錄下建立urls.py檔案,按照主目錄的urls.py格式建立
# -*- coding:utf-8 -*-
'''
Created on 2017年6月4日
@author: hp
自定義的urls配置檔案
'''
# 匯入django.conf.urls模組中的函式url,include
from django.conf.urls import url,include
from django.contrib import admin
# 匯入檢視模組blog.views
import blog.views as bv
# url()中第一個引數後面不要忘記'/'否則會找不到路徑
urlpatterns = [
url(r'^index/$',bv.index)
]
測試
2. 開發Template模板
在django中我們通過template模板返回我們指定的檢視介面
2.1 建立自定義的template
找到blog目錄下,建立template
資料夾並建立要返回的html頁面
目錄結構:
index.html
:
<html>
<head>
<title>Blog</title>
</head>
<body>
<h1>Hello,Blog</h1>
</body>
</html>
配置views.py
# -*- coding:utf-8 -*-
from __future__ import unicode_literals
from django.shortcuts import render
# 匯入HttpRequest模組
from django.http import HttpResponse
# Create your views here.
# 在此處建立自己的程式碼
# 定義一個函式,引數名一般為request
# 使用render()函式返回檢視,引數1是request,引數2是templates中的html檔名
def index(request):
return HttpResponse(render(request,'index.html'))
測試
2.2 存在的問題
上個測試的時候我們成功地訪問了頁面,但是如果出現連個同樣名字的index.html
,Django會尋找templates資料夾,結果發現有連個一模一樣的檔案,那麼django會按照在settings.py
中INSTALLED_APPS
中配置的順序訪問對應的html頁面
2.3 問題說明
我們之前已經建立過article
模組,所以我們在article
中建立templates
資料夾,在該資料夾中建立index.html
檔案,然後在views.py
中配置返回對應的檢視,在urls.py
中配置對映的url路徑
article模組目錄結構:
urls.py
# coding:utf-8
'''
Created on 2017年6月4日
@author: hp
'''
from django.conf.urls import url
from django.contrib import admin
import article.views as av
urlpatterns = [url('^index/$',av.index)]
views.py
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
from django.shortcuts import render
# 匯入HttpRequest模組
from django.http import HttpResponse
# Create your views here.
def index(request):
return HttpResponse(render(request,'index.html'))
最後別忘記在主目錄的urls.py
中新增article的urls檔案
# 配置URL對映
urlpatterns = [
url(r'^admin/', admin.site.urls),
url(r'^blog/', include('blog.urls')),
url(r'^article/', include('article.urls')),
]
測試
明明輸入的是http://127.0.0.1:8000/article/index/的時候響應的確實blog的index.html頁面,這就是上面我們所講的存在的問題。
解決方式
django為我們建議瞭解決方式,那就是在對應的templates資料夾中再建立一個對應模組的資料夾,然後把對應的html檔案放在裡面就好了
目錄結構:
修改views.py
檔案中的響應方法新增'article/index.html'
:
def index(request):
return HttpResponse(render(request,'article/index.html'))
修改views.py
檔案中的響應方法新增'blog/index.html'
:
def index(request):
return HttpResponse(render(request,'blog/index.html'))
再次測試
發現已經恢復正常了
相關文章
- Django學習(二) 之 模板的使用Django
- myeclipse_templates模板圖解Eclipse圖解
- Django(2) - Django模板Django
- Django模板Django
- 400多種Numbers模板 DesiGN for Numbers Templates for macMac
- Django 模板引擎以及模板Django
- Django學習Django
- 深入學習和理解Django模板層:構建動態頁面Django
- Django-模板Django
- Django 模板層Django
- Django模板層Django
- django學習(三)Django
- Pages模板Templates for Pages DesiGN讓您的工作更出色
- django的模板層Django
- Django——模板應用Django
- Django中的templates(你的HTML頁面放哪裡)DjangoHTML
- 【Python】Django學習1PythonDjango
- Spring Boot + Mybatis + Spring MVC環境配置(五):templates模板使用Spring BootMyBatisMVC
- Pages模板:Templates for Pages DesiGN for mac v7.4啟用版Mac
- Mac宣傳單設計模板套件——DesiGN Flyers Templates for MacMac套件
- 使用IntelliJ IDEA中的Live Templates自定義程式碼模板IntelliJIdea
- 深度學習工程模板深度學習
- Django之mako模板使用Django
- Django的學習資源Django
- 學習Django的推薦Django
- templates
- Django學習——Django settings 原始碼、模板語法之傳值、模板語法之獲取值、模板語法之過濾器、模板語法之標籤、自定義過濾器、標籤、inclusion_tag、模板的匯入、模板的繼承Django原始碼過濾器繼承
- 【Django】將Django模板引擎更改為Jinja2Django
- django(django學習) 兩張表建立 插入資料Django
- Django的檢視和模板Django
- django-模板之標籤Django
- Templates for Pages DesiGN for mac(Pages模板) v7.1中文版Mac
- c++11-17 模板核心知識(十四)—— 解析模板之依賴型模板名稱 Dependent Names of Templates(.template/->template/::template)C++
- Variadic Templates
- Veriadic templates
- Templates by HanggoashGo
- ES6學習-字串模板字串
- CTF-flask模板注入學習Flask
- Python全棧Web(Django框架、模板)Python全棧WebDjango框架