Skr-Eric的Django课堂(二)——Django的路由和模板

路由配置

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的编程课堂

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值