美文网首页Python学习
django 模板及静态资源

django 模板及静态资源

作者: 智勇双全的小六 | 来源:发表于2018-10-23 15:42 被阅读93次

模板

1 模板位置

project_name/templates下创建与你的app_name 同名文件夹。
检查project_name/settings.py 文件,如果没有DIRS这项,添加之:

TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [os.path.join(BASE_DIR, 'templates')],
        'APP_DIRS': True,
        ....
              },
    },
]

在 html 文件中涉及到引用其他模板就可以这么写了:

app_name/xxx.html

2 返回 html 页面

编写视图函数。

def form1(request):
  return render(request, "app_name/xxx.html")

创建一个命名空间。在 app_name/urls.py 中添加:

app_name = "write_your_app_name_here!"
# 举例:
app_name = "blog"
# 添加 url 。示例如下:
from . import views
url('^form1/$', views.form1, name="form1")

在模板中写超链接如下所示。模板标签 url 的语法就是 url '命名空间:name'。这个 name 是url('^form1/$', views.form1, name="form1") 中的 name。这样写的好处在于以后修改了视图函数form1,只要 name 对应的值没有变,就不用修改模板中的相关链接了。

href="{% url 'kingland:form1' %}"

3 模板渲染

渲染范围到 {% endblock %} 位置。如下图的 index.html 文件,如果在{% endblock %} 后面加html 或 js,可能是不会被 Django 的模板读取的。

{% extends 'blog/lib/base.html' %}
{% block content %}
<div class="content-body">
</div>
{% endblock %}

静态资源

  • 静态资源的位置。app_name/static/app_name/, 在这个目录下存放 css / js / image 等资源。如果 Django 2.0 以上,需要在 settings.py 中添加设置:
STATICFILES_DIRS = [os.path.join(BASE_DIR, 'static')]
  • 模板中引用静态资源。
    调试时打开浏览器控制台,观察输出,如果没有加载资源的404 错误,应该就是调试成功了。如果还是有问题,ctrl + F5 强制刷新试试。
# 1. 模板文件的顶端载入模板标签
{% load staticfiles %}
# 2. 使用 static 标签引用静态资源
    <link href="{% static 'app_name/css/main.css' %}" rel="stylesheet">
# 3. 继承模板
{% include 'app_name/xxx.html' %}

相关文章

网友评论

    本文标题:django 模板及静态资源

    本文链接:https://www.haomeiwen.com/subject/pwsvzftx.html