路由配置
1. 访问路径 http://localhost:8000/music/
想交给 music 应用中的 index_views() 去处理
练习:
1.访问路径 http://localhost:8000/sport/
交给 sport 应用中的 index_views() 去处理
2.访问路径 http://localhost:8000/news/
交给 news 应用中的 index_views() 去处理
3.访问路径 http://localhost:8000/
交给 index 应用中的 index_views() 去处理
4.访问路径 http://localhost:8000/login
交给 index 应用中的 login_views() 去处理
5.访问路径 http://localhost:8000/register
交给 index 应用中的 register_views() 去处理
现有路径访问模式:
urlpatterns = [
url(r'^admin/', admin.site.urls),
url(r'^music/',include('music.urls')),
url(r'^sport/',include('sport.urls')),
url(r'^news/',include('news.urls')),
url(r'^',include('index.urls')),
]
如果 http://localhost:8000/ 的后面不是 admin,music,sport,news 的时候一律交给 index 应用的 urls.py 去处理
http://localhost:8000/login
http://localhost:8000/register
http://localhost:8000/
Django中的模板 - Templates
1.什么是模板
模板就是要动态呈现给用户的网页
模板的本质就是网页 - 前后端,动静结合的网页
Django中的模板引擎是由Django自己提供的,而并非Jinja2,所以Django的模板的语法与Flask(Jinja2)的语法会稍有不同
2.模板的设置
在 settings.py 中 设置 TEMPLATES 变量
1.BACKEND:指定使用的模板的引擎
2.DIRS:指定模板的存放目录们
1.DIRS=[os.path.join(BASE_DIR,'templates')]
在项目的根目录的templates目录中存放所有的模板
2.DIRS=['index.temp','music.temp']
在项目的index应用中的temp目录中存放模板
以及
在项目的music应用中的temp目录中存放模板
3.APP_DIRS :表示是否要自动搜索应用中的目录
True:表示要自动搜索应用中的 templates 的目录
3.模板的加载方式
1.通过loader对象获取模板,再通过HttpResponse进行响应
1.先导入 loader
from django.template import loader
2.通过 loader 加载模板
t = loader.get_template('模板名称')
t:为在Django中得到的模板对象
3.将加载好的模板 t 渲染成字符串
html = t.render()
4.通过HttpResponse将字符串进行响应
return HttpResponse(html)
2.使用 render 直接加载并响应模板
return render(request,'模板名称')
4.模板的语法
1.变量
1.作用:将后端的数据传递到模板进行显示
2.允许作为变量的数据类型
字符串,整数,列表,元组,字典,函数,对象
3.变量的语法
变量们必须要封装到字典中才能传递给模板
dic = {
'name':'Eric',
'age':25,
}
1.使用 loader 加载模板
t = loader.get_template('xxx.html')
html = t.render(dic)
return HttpResponse(html)
2.使用 render 加载模板
return render(request,'xx.html',dic)
4.在模板中使用变量
{{变量名}}
2.标签
1.作用
将服务器端的功能嵌入到模板中
2.语法
{% 标签名 %} ... {% end标签名 %}
3.常用标签
1. {% if %}
1. {% if 条件 %}...{% endif %}
2.
{% if 条件 %}
满足条件要执行的内容
{% else %}
不满足条件要执行的内容
{% endif %}
3.
{% if 条件1 %}
{% elif 条件2 %}
{% elif 条件3 %}
{% else %}
{% endif %}
2. {% for %}
语法:
{% for 变量 in 列表|元组|字典 %}
..
{% endfor %}
内置变量:forloop
在循环中允许使用forloop内置变量来获取循环的信息
forloop.counter : 记录当前循环遍历的次数
forloop.counter0: 记录当前循环遍历的次数,从0开始
forloop.revcounter : 记录当前元素从后向前算的位置
forloop.revcounter0: 同上,从0开始记录
forloop.first : 判断是否是第一次循环
forloop.last : 判断是否是最后一次循环
3.过滤器
1.什么是过滤器
在变量输出显示之前,对变量的数据进行筛选和过滤
2.过滤器的语法
{{变量|过滤器:参数}}
3.常用过滤器
1.{{value|upper}}
将value变为大写
2.{{value|lower}}
将value变为小写
3.{{value|add:num}}
将num追加到value之后
value 和 num 也可以是列表
4.{{value|floatformat:n}}
将value四舍五入到n位小数
5.{{value|truncatechars:n}}
将value截取保留至n位字符,后面以...来表示未显示完成的内容
4.静态文件
1.什么是静态文件
无法与服务器进行动态交互的文件就是静态文件
2.在Django中的静态文件的处理
在 settings.py中设置有关静态文件的信息:
1.设置静态文件的访问路径
在浏览器中通过哪个地址能够找到静态文件
STATIC_URL='/static/'
如果访问路径是 http://localhost:8000/static/..一律都按照静态文件的方式去查找
2.设置静态文件的存储路径
指定静态文件要保存在服务器上哪个目录处
STATICFILES_DIRS=(os.path.join(BASE_DIR,'static'),)
静态文件目录的存放位置:
1.在项目的根目录处创建一个 static 目录,用于保存静态文件们
2.每个应用中也可以创建一个 static 目录,用于保存静态文件们
3.访问静态文件
1.直接使用静态文件访问路径进行访问
http://localhost:8000/static/...
ex:
<img src="http://localhost:8000/static/images/b04.jpg">
<img src="/static/images/b04.jpg">
2.使用 {% static %} 访问静态资源
1.在使用之前需要通过{% load static %} 加载 static
2.使用静态资源时
<img src="{% static 'images/b04.jpg' %}">
想要看更多的课程请微信关注SkrEric的编程课堂