模板结构优化

引入模板

有时候一些代码是在许多模板中都用到的。可以把重复代码抽取出来,以后想要使用这些代码时,就通过include包含进来。

# header.html
<p>header</p>

# footer.html
<p>footer</p>

# main.html
{% include 'header.html' %}
<p>main</p>
{% include 'footer.html' %}

include标签寻找路径的方式,与render渲染模板的函数相同。

Django模板过滤器

在模板中,有时需要对一些数据进行处理后才能使用。可以通过过滤器|来操作,最多只能传递两个参数。如add过滤器

{{ value|add:"2" }} # add(value, "2")

常用过滤器

add

将传入的参数添加到原来的值上面。它会尝试将参数转换成整形进行相加。如果转换失败,那么会将参数拼接。如果是字符串,拼接成字符串;如果是列表,拼接成列表。

Django模板

模板查找路径配置

settings.py文件中。TEMPLATES配置包含模板引擎配置,模板查找路径配置,模板上下文配置。

模板路径配置

  1. DIRS:可以存放所有的模板路径,使用renderrender_to_string渲染模板时会从此列表路径中查找模板
  2. APP_DIRS:默认为True,设置为True后,会在INSTALLED_APPS已安装APP下的templates目录下查找模板
  3. 查找顺序:如render('index.html'),先从DIRS列表中依次查找路径下是否存在此模板,有就返回。没有再从所有已安装的APP下的templates目录中查找模板(优先从当前使用render渲染模板的视图所属的APP中查找),如果所有路径下都没找到,则抛出TemplateDoesNotExist异常。

URL视图

视图

一般写在appviews.py中。视图的第一个参数必须是request(一个HttpResponse)对象。此对象存储了请求的所有信息,包括携带的参数以及一些头部信息。在视图中,一般完成逻辑相关的操作。视图返回的结果必须是HttpResponseBase对象或者其子类对象。
【例】

from django.http import HttpResponse
def index(request):
return HttpResponse("首页")

创建Django项目

运行Django项目

命令行方式

1.创建项目:终端下,django-admin startproject [项目名称]

2.创建应用(app):一个项目好比一个架子,真正起作用的是app。终端进入所在项目目录,python manage.py startapp [app名称]

3.运行项目:终端下进入项目目录,python manage.py runserver,访问http://127.0.0.1:8000查看,通过`python manage.py runserver 9000来确定访问的端口。同一个局域网下其他PC进行访问,python manage.py runserver 0.0.0.0:8000,在settings.py文件中的ALLOWED_HOSTS`添加本机ip地址