网页头和尾都是差不多的,所以可以用到模板的继承,头尾都用父模板的
感觉模板和vue的组件差不多
好像标签是django的功能,而不是html的功能,那么看来和vue确实差不多
写好模板还是挺重要的,p17到p21得好好学

配置

使用模板templates需要在setting里先配置一下,
如果模板不放在应用的文件夹里,在DIRS里填文件的位置,

1
2
3
4
5
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': ['templates'],
'APP_DIRS': True,

如果模板放在创建的应用里,DIRS里不要填,APP_DIRS要填True,在上面的INSTALLED_APPS中加入这个应用(这里是account),如果DIRS里填了,优先用此处的模板

1
2
3
4
5
6
7
8
9
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'account',
]

render函数参数注意空格

return render(request, 'list.html') 第二个参数前面一定要加个空格,不然就报错,加了个空格能运行后,去掉空格又能运行了,好奇怪

1
2
def list(request):
return render(request, 'list.html')

报错变量没有defined

报错哪个变量没有defined时,重新打一下,或者从引入的地方复制粘贴一下,就解决了