django——入门2
开发第一个Templates
一、第二种URL配置(优化URL配置)
1> 在根urls.py 中引入include;
2> 在APP目录下创建urls.py文件,格式与根urls.py相同;
3> 根urls.py中url函数第二个参数改为 include(‘blog.urls’);
注意事项:
根urls.py针对APP配置的URL名称,是该APP所有URL的总路径;
配置URL时注意正则表达式结尾符号$和/;
错误:
1> 忘记在根的urls.py中设置的地址
应该有两个index 总路径(1)和子路径(2):
解决方法:修改blog下面的url
2> 在url后面输入其他字符串,网页依然会被显示出来;
解决方法:正则表达式
不管后面加什么字符串都是404错误;
只有后面是空字符串时才正常显示;
3> 正则表达式忘记加 “/”;
解决方法:格式为 “^字符串/$”
二、Templatesjies介绍
什么是Templates
HTML文件;
使用了django模板语言(django Template Language, DTL)
可以使用第三方模板(如Jinjaa2)
步骤:
1> 在APP(blog应用)的根目录下创建名叫 Templates的目录;
2> 在该目录(templates)下创建HTML文件;
3> 在views.py中返回render()(翻译成中文叫渲染)
通过render()把HTML文件响应给浏览器;
刷新页面,成功时:
错误:
解决方法:templates或者HTML建错了,改好之后再运行一下python manage.py runserver
其他错误情况与解决办法(尚未验证):
DTL初步使用:
rander()函数中支持一个dict类型参数;
该字典是后台传递到模板的参数,键为参数名;
在模板中使用{{参数名}}来直接使用;
刷新页面后:
注意点
1> 首先需要在建一个应用(APP)blog2;
2> 把blog2添加到INSTALLED_APPS 里:
3> 把blog里的templates连同index.html复制到blog2中;
4> 把blog里的urls.py也复制过去;
5> 把blog里的index里改为"Hello Blog!",blog2里面的index改为"hello blog2!"便于区分;
6> 把blog里views里的render()里的第三个参数去掉,并复制到blog2里的views里面;
7> 在根目录(myblog)urls.py里的添加blog2的url;
错误:PEP 8: blank line at end of file
解决方案:在后面添加机构空白行即可
8> 启动服务器
发现blog和blog2显示的搜索blog的页面,django把这两个页面的index搞混了;
9> 原因:
django查找Templates
django安照INSTALLED_APPS中的添加顺序查找Templates;(如果不同应用下的Templates(目标html文件)名字相同时就会照成冲突)
不同APP下的Templates目录中的同名.html文件会照成冲突;
10> 解决Templates冲突的方案
在APP的Templates目录下创建以APP为名称的目录;
将html文件放入新创建的目录下;
11> 注意还要改一下两个应用里面的views
12> 最终的效果: