django templates 与 静态文件

1、设计模式 & 框架模式
框架模式:MVC,MTV
2、创建Django
1、指令
django-admin startproject 项目名称
项目结构:
1、manage.py 
runserver
startapp
migrate
createsuperuser
2、主文件夹 - 与项目同名
1、__init__.py
2、settings.py
1、BASE_DIR
2、DEBUG
开发环境中 :True
运行环境中 :False
3、ALLOWED_HOSTS
'*'
4、INSTALLED_APPS
5、TEMPLATES :模板
6、DATABASES :数据库配置
3、urls.py
项目基础路由配置文件
3、sqlite3
2、启动项目
1、python manage.py runserver
只能在本机访问 localhost 或 127.0.0.1
默认开启的端口是 8000
2、./manage.py runserver 0.0.0.0:8888
允许用过 localhost 或 127.0.0.1 或 IP访问
手动指定端口为:8888
3、settings的加载流程
1、先加载 global_settings.py
虚拟环境/lib/python3.5/dist-packages/django-1.11.8/conf
2、再加载本项目中的 settings.py
如果两个文件内容冲突的话,则优先使用settings.py的
3、URL的使用
1、作用
将请求地址 与 视图 进行对应
urls.py 
urlpatterns = [
url()
url()
]
2、url()语法
语法:url(regex,views,kwargs=None,name=None)
1、regex :匹配请求地址的正则表达式
2、views :待处理的视图函数(views.py定义)
3、kwargs :字典,传递给视图的参数
4、name :定义名称,在模板中使用
3、URL 向 Views 传参
1、使用正则表达式子组传参
在 regex 中使用子组 () 表示一个参数
urlpatterns = [
url(r'^(\w{2,})/(\d+)/$',text_views)
]


http://localhost:8000/a/185 无法匹配
http://localhost:8000/sanfeng.zhang/12 无法匹配
http://localhost:8000/zsf/87 可以匹配

views.py
def text_views(request,name,age):
name : (\w{2,})
age : (\d+)
2、使用 kwargs 传参
urlpatterns = [
url(r'^show/$',show_views,{'name':'zsf','age':'35'})
]


在视图中
def show_views(request,name,age):
name : zsf
age:35
4、django中的应用
1、应用
就是项目(网站)中的独立的模块
2、创建应用
./manage.py startapp 应用名称
在 settings.py中进行注册
INSTALLED_APPS = [
.... ....
'应用名称',
]
3、应用中的 urls.py
已存在应用 index,music,sports,news
主路由配置文件中
urls.py
urlpatterns = [
url(r'^admin/$',admin.site.url),
#如果请求路径以index开始的,交给index应用
url(r'^index/',include('index.urls')),
#如果请求路径以music开始的,交给music应用
url(r'^music/',include('music.urls')),
]

======================================
官方文档:https://docs.djangoproject.com/en/1.11/
DjangoBook:http://docs.30c.org/djangobook2/
======================================
1、Django 模板(Template)
1、什么是模板
就是一个网页,可以被view响应给用户
目的是为了解决复杂的显示问题
2、模板的设置
1、BACKEND:指定模板的搜索引擎,不用改动
2、DIRS:指定模板所存放的目录
DIRS=['index.temp','music.temp']
但是,如果DIRS中为空的话,那么django会自动所有每个应用中的 templates 的文件夹作为模板管理目录
推荐:
1、DIRS 保持为空
2、在每个应用中,创建一个 templates 的文件夹
3、APP_DIRS
True:首先从DIRS中指定的文件夹中查找模板,如果没找到指定模板的话,则再搜索templates目录
3、模板的加载方式
1、使用 loader 获取模板,通过HttpResponse进行响应
from django.template import loader


def xxx(request):
t=loader.get_template('show.html')
html=t.render({})
return HttpResponse(html)
练习:
使用loader方式完成下列操作
在 music 应用中,访问
localhost:8000/music/music_info
在模板中显示如下效果:
歌名 :<<小苹果>>
作词 :筷子兄弟
演唱 :筷子兄弟
2、使用 render 直接加载
return render(request,'模板名称',{})


4、url() 的name参数
urlpatterns = [
url(regex,views,kwargs=None,name=None)
]


name : 定义当前url的别名,允许在Template中使用该别名来找到对应的 url


url(regex,views,name=None,name='别名')


在Django模板中使用 name 实现连接
{% url 'name值'%}


练习:
1、通过 localhost:8000/news/first
去往 first.html
在 first.html 中增加一个超链接,连接到 result.html.在超链接中,增加两个参数,分别都是1位以上的数字,在result.html中,将两个数字相加的结果打印输出
5、模板的语法
1、变量
作用:允许将后端的数据传递给模板(html),在模板中,会根据变量的实际值进行显示


在Django中允许传递给模板作为变量的数据类型
数字,字符串,列表,元组,字典,函数,对象
如何传递变量到模板中
1、render
dic = {
'变量1':'值1',
'变量2':'值2',
}
return render(request,'xx.html',dic)
2、loader
dic = {
'变量1':'值1',
'变量2':'值2',
}
t = loader.get_template('xx.html')
html=t.render(dic)
return HttpResponse(html)


在模板中,获取变量的值:
{{变量名}}
2、标签
1、什么是标签
允许嵌套一些服务器端的逻辑运算到模板中。
2、语法
{% ... %}
3、常用标签
1、{%if 条件%} ... {%endif%}
接受 :not , and ,or
但是 :and 和 or 不能同时出现
以下内容当成False处理:
空[]
空()
空{}
数字:0
空字符串
特殊对象:None
2、{%if 条件%} ... {%else%} ... {%endif%}
3、
{%ifequal 值1 值2%} ...{%endifequal%}


{%ifequal 值1 值2%} . {%else%} . {%endifequal%}
4、
{%for 变量 in 列表|元组|字典%}
{%endfor%}
允许使用的内置变量(免声明):
forloop
1、forloop.counter : 记录循环的次数
2、forloop.counter0: 同上,但从0开始
3、forloop.revcounter:记录未被遍历的数量
4、forloop.revcounter0:同上,从0开始
5、forloop.first : 布尔值,标记是否为第一个项目
6、forloop.last : 布尔值,标记是否为最后一个项目
3、过滤器
1、作用
在显示变量之前,允许对数据进行筛选或改变
2、过滤器的语法
{{var|过滤器}}
3、常用过滤器
1、{{var|upper}}
将var的数据变为大写
2、{{var|lower}}
将var的数据变为小写
3、{{var|add:num}}
4、{{var|floatformat:n}}
将var四舍五入到 n 位小数
4、静态文件的处理
1、什么是静态文件
模板中所用到的css,js,image,等一些资源文件都是静态文件
2、Django中静态文件的处理
需要在 settings.py中设置静态文件的访问路径 和 存储路径
1、STATIC_URL
指定静态资源的访问路径
STATIC_URL='/static/'
2、STATICFILES_DIRS
指定在开发阶段所有静态文件所在的根目录
STATICFILES_DIRS=(BASE_DIR,'static')
3、访问静态资源
1、<img src="/static/images/huiyuan.jpg">
2、使用 {%static %}访问静态资源
1、模板的最顶层增加
{%load static%}
2、使用静态资源文件时
<img src="{%static 'images/huiyuan.jpg' %}">
















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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值