1.配置URL的另一种方法。引入include方法,然后在blog下也新建一个urls.py文件。如果都按上一节笔记的方法来做,根目录下的urls文件中代码会变得不易维护。
ccblog\urls.py
from django.urls import path, include from django.contrib import admin urlpatterns = [ path('admin/', admin.site.urls), path('blog/', include('blog.urls')), ]
blog\urls.py
from django.contrib import admin from django.urls import path, include from . import views urlpatterns = [ path('index/',views.index), ]
2.开发一个Template
1.Templates是什么
其实就是一个一个的HTML文件,和传统html文件的区别就是Templates使用了Django模板语言(django templates language, DTL)#同时django也允许我们使用第三方模板(如Jinja2),如果想改自己要用的模板引擎,只要改settings里的TEMPLATES下backend中的内容即可。
2.创建步骤
在app的根目录下创建名字叫template的目录,并在该目录下创建html文件,然后在views.py中返回render()
from django.shortcuts import render#把html页面响应给浏览器 from django.http import HttpResponse # Create your views here. def index(request): #注意,这里因为要处理请求,所以这里要先接收到请求。 return render(request,'blogindex.html')
DLT初步使用:render()函数支持一个dict类型参数(字典类型,即键值对,键是从前端获取的参数名,值就是我们想要传递的数据)。
在模板中使用{{参数名}}来直接使用。
from django.shortcuts import render#把html页面响应给浏览器 from django.http import HttpResponse # Create your views here. def index(request): #注意,这里因为要处理请求,所以这里要先接收到请求。 return render(request,'blogindex.html',{'inner':'hello cc,hello bolg'})
在html页面中的inner部分为
<body> <h1>{{inner}}</h1> </body>
3.templates的注意点
django查找templates
django按照settings中installed_apps中的添加顺序查找templates
不同app下的templates目录中的同名.html文件会造成冲突。
解决方法:在APP的templates目录下创建以APP名为名称的目录。
views中的代码改成
def index(request): #注意,这里因为要处理请求,所以这里要先接收到请求。 return render(request,'blog/blogindex.html')
def index(request): #注意,这里因为要处理请求,所以这里要先接收到请求。 return render(request,'blog2/blogindex.html')
然后就可以通过访问以下两个不同的url来访问这两个同名的html页面
http://localhost:8000/blog/index/
http://localhost:8000/blog2/index/