django 设置应用程序样式
教程来自 Python Crash Course 2nd.
主要内容:接上一篇后,使用Bootstrap设置应用样式
目录- 1. 安装django-bootstrap4
- 2. 使用Bootstrap
- 3. 修改base.html
- 3.1 定义HTML头部
- 3.2 定义导航栏
- 3.3 定义页面的主要部分
- 4. 使用Jumbotron设置主页样式
- 5. 设置主题页面样式
- 6. 设置主题页面的条目样式
- 7. 设置条目页面样式
- 8. 页面效果
1. 安装django-bootstrap4
pip install django-bootstrap4
添加到settings.py中
INSTALLED_APPS = [
# My apps.
'polls.apps.PollsConfig',
'learning_logs',
'users',
# Third party apps.
'bootstrap4',
# Default django apps.
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
]
2. 使用Bootstrap
如Navbar static模板
3. 修改base.html
3.1 定义HTML头部
语言设置:zh-CN
修改前:
学习笔记 -
主题 -
{% if user.is_authenticated %}
你好,{{ user.username }}.
注销
{% else %}
注册 -
登录
{% endif %}
{% block content %}{% endblock content %}
删除上述代码,写入:
{% load bootstrap4 %}
学习笔记
{% bootstrap_css %}
{% bootstrap_javascript jquery='full' %}
其中,声明这是HTML文件,将语言设置为中文。
head 包含有关文档且未显示在屏幕上的信息元素。title表示标签页标题。
3.2 定义导航栏
body包含 web 页中所有显示的元素,部分常用标签:
最重要的标题A heading
下一层级的标题!A sub-heading
... 同样,直到A sub-sub-heading
text强调文本text强烈强调文本跳转到下一行(不能放任何东西在br里面)link创建一个链接产生一个列表- first item
- second item
定义页面上的一个段
接上部分:
元素表示页面的导航连接部分,其中的所有内容都根据选择器navbar,navbar-expand-md等定义的Bootstrap样式规则来设置样式。选择器决定了特定样式规则将应用于页面上的哪些元素。
按钮在浏览器窗口太窄、无法水平显示整个导航栏时显示,点击按钮导航元素将以下拉列表形式出现。
接下来打开导航栏新的部分并定义了一个新的链接集合(这里只有一个链接到主题页面的项):
3.3 定义页面的主要部分
{% block page_header %}{% endblock page_header %}
{% block content %}{% endblock content %}
4. 使用Jumbotron设置主页样式
login.html
{% extends "learning_logs/base.html" %}
{% load bootstrap4 %}
{% block page_header %}
登入你的账号
{% endblock page_header %}
{% block content %}
{% endblock content %}
5. 设置主题页面样式
topics.html
{% extends "learning_logs/base.html" %}
{% block page_header %}
主题
{% endblock page_header %}
{% block content %}
{% for topic in topics %}
{{ topic }}
{% empty %}
当前还没有添加过主题。
{% endfor %}
添加一个新主题
{% endblock content %}
6. 设置主题页面的条目样式
topic.html
{% extends "learning_logs/base.html" %}
{% block page_header %}
{{ topic }}
{% endblock page_header %}
{% block content %}
{% for entry in entries %}
{{ entry.date_added|date:'Y-m-d H:m:s' }}
编辑条目
{{ entry.text|linebreaks }}
{% empty %}
当前主题还没有添加过条目。
{% endfor %}
{% endblock content %}
7. 设置条目页面样式
new_entry.html
{% extends "learning_logs/base.html" %}
{% block page_header %}
{{ topic }}
{% endblock page_header %}
{% block content %}
添加新条目:
{% endblock content %}
edit_entry.html
{% extends "learning_logs/base.html" %}
{% block page_header %}
{{ topic }}
{% endblock page_header %}
{% block content %}
编辑条目:
{% endblock content %}
8. 页面效果
主页:
主题页:
条目页:
条目编辑页面: