Django - 使用CSS美化页面

页面设计

在这里插入图片描述

导航栏设计

在这里插入图片描述

  • 在导航栏添加首页和博客
    • 添加访问博客链接设置
      uls.py
from django.urls import path
from . import views

urlpatterns = [
    # http://localhost:8000/blog
    # 博客列表, 目录什么也不写, 代表访问博客列表目录
    path('', views.blog_list, name='blog_list'),
    path('<int:blog_pk>', views.blog_detail, name='blog_detail'),
    path('type/<int:blog_type_pk>', views.blog_with_type, name='blog_with_type'),
]

修改首页和博客的前端显示

base.html

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>{% block title %}{% endblock %}</title>
</head>
<body>
    <div>
        <a href="{% url 'home' %}">
            <h2>个人博客网站</h2>
        </a>
        <a href="/"><h2>首页</h2></a>
        <a href="{% url 'blog_list' %}">博客</a>
    </div>
    <hr>
    {% block content %}{% endblock %}
</body>
</html>
  • 添加跳转到首页的方法, 因为首页不是一个单独的app应用, 所以在mysite文件夹里面创建一个views.py文件, 用来处理跳转到首页的方法
    views.py
from django.shortcuts import render_to_response

def home(request):
    content = {}
    # 跳转到home.html首页, 因为只用来显示, 不需要数据, 所以传一个空的字典
    render_to_response('home.html', content)

添加首页页面

  • 首页也是基于模板文件的, 引入base.html, 首页只显示一句话就可以
    home.html
{% extends 'base.html' %}

{% block title %}
    我的网站 | 首页
{% endblock %}

{% block content %}
    <h3>欢迎访问我的博客</h3>
{% endblock %}

使用CSS(层叠样式表)

  • 用于修饰html的语言
  • 使用style标签, 一般加在body标签尾部

让个人博客网站设置成一个块

* 使用display: inline-block
* 对a标签进行设置, 有多个a标签, 怎么区分 ? 在a标签里面添加一个class属性.
* 给div标签页添加一个class属性

base.html

<!DOCTYPE html>
......
<body>
    <div class='nav'>
        <a class='logo' href="{% url 'home' %}">
            <h2>个人博客网站</h2>
        </a>
        <a href="/">首页</a>
        <a href="{% url 'blog_list' %}">博客</a>
    </div>
    <hr>
    {% block content %}{% endblock %}

    <style type="text/css">
        a.logo {
            display: inline-block;
        }
    </style>
</body>
</html>

设置导航栏里面的样式, 下划线全都不要

<style type="text/css">
    div.nav a{
    	
        text-decoration: none;
    }
    div.nav a.logo {
        display: inline-block;
    }
</style>

设置背景颜色 , 内边距外边距, 和字体颜色

<style type="text/css">
        {# 设置内边距和外边距 #}
        body {
            margin: 0;
            padding: 0;
        }
        div.nav {
            background-color: #eee;
        }
        div.nav a{
            {# 设置导航栏里面的样式, 下划线全都不要 #}
            text-decoration: none;
            {# 添加字体颜色 #}
            color: black;
        }
        div.nav a.logo {
            {# 让个人博客网站设置成一个块, 使首页和博客在同一行 #}
            display: inline-block;
        }
    </style>

设置边框线

  • 只设置底部的线, 所以使用border-bottom, 宽度设置为1px, 设置为实线solid
<style type="text/css">
        div.nav {
            {# 设置背景颜色 #}
            background-color: #eee;
            {# 设置边框 #}
            border-bottom: 1px solid #ccc
        }
</style>

设置标签和标签的间距

<style type="text/css">
        div.nav a{
            {# 设置导航栏里面的样式, 下划线全都不要 #}
            text-decoration: none;
            {# 添加字体颜色 #}
            color: black;
            {# 设置标签和标签的间距 #}
            padding: 5px 10px;
        }
        div.nav a.logo {
            {# 让个人博客网站设置成一个块, 使首页和博客在同一行 #}
            display: inline-block;
            {# 设置字体大小 #}
            font-size: 120%;
        }
</style>

调整内容部分的显示

  • home页面添加class属性
{% extends 'base.html' %}

{% block title %}
    我的网站 | 首页
{% endblock %}

{% block content %}
    <h3 class='home-content'>欢迎访问我的博客</h3>
    <style type="text/css">
        h3.home-content {
            {# 设置字体大小 #}
            font-size: 222%;
            {# 把相对位置改成绝对位置 #}
            position: absolute;
            left: 50%;
            top: 50%;
            {# 相对位置进行偏移 #}
            transform: translate(-50%,-50%);
        }
    </style>
{% endblock %}

使用静态文件

  • 创建一个静态文件夹
    在这里插入图片描述

创建base页面对应的CSS文件

base.css

* {
    margin: 0;
    padding: 0;
}

div.nav {
    {# 设置背景颜色 #}
    background-color: #eee;
    {# 设置边框 #}
    border-bottom: 1px solid #ccc;
    padding: 10px 5px;
}
div.nav a{
    {# 设置导航栏里面的样式, 下划线全都不要 #}
    text-decoration: none;
    {# 添加字体颜色 #}
    color: black;
    {# 设置标签和标签的间距 #}
    padding: 5px 10px;
}
div.nav a.logo {
    {# 让个人博客网站设置成一个块, 使首页和博客在同一行 #}
    display: inline-block;
    {# 设置字体大小 #}
    font-size: 120%;
}
  • 配置settings文件, 使能找到static文件
  • 使用os.path.join 拼接根目录和静态文件夹
STATICFILES_DIRS = [
	os.path.join(BASE_DIR, 'static'),
]

引入静态文件

  • 第一种方法
<link rel="stylesheet" href="/static/base.css">
  • 第二种方法: 使用Django自带库 {% load staticfiles %}
{% load staticfiles %}
<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>{% block title %}{% endblock %}</title>
    <link rel="stylesheet" href="{% static 'base.css' %}">
</head>

注意 : 不要在css文件里面加中文注释, 否则会产生乱码, 导致css文件不生效 !!!

迁移home页面的css

  • 把css封装到一个文件里面, home.css
  • 因为home.html是基于base.html , 所以在base.html中拓展一个写css的块
<head>
    .....
    {% block header_extends %}{% endblock %}
</head>
  • 加载static 并引入css
{% extends 'base.html' %}
{% load staticfiles %}

{% block title %}
    我的网站 | 首页
{% endblock %}

{% block header_extends %}
    <link rel="stylesheet" href="{% static 'home.css' %}">
{% endblock %}

{% block content %}
    <h3 class='home-content'>欢迎访问我的博客</h3>
{% endblock %}
  • 3
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
使用Django构建联系人列表,并美化它们的页面,您可以遵循以下步骤: 1. 创建Django项目和应用程序:运行以下命令来创建一个新的Django项目和应用程序: ``` django-admin startproject myproject cd myproject python manage.py startapp contacts ``` 2. 创建联系人模型:在contacts/models.py文件中定义联系人模型,如下所示: ```python from django.db import models class Contact(models.Model): first_name = models.CharField(max_length=50) last_name = models.CharField(max_length=50) email = models.EmailField(max_length=254) phone = models.CharField(max_length=20) ``` 3. 运行迁移:运行以下命令来创建并应用数据库迁移: ``` python manage.py makemigrations python manage.py migrate ``` 4. 创建视图:在contacts/views.py文件中创建一个视图,用于显示联系人列表: ```python from django.shortcuts import render from .models import Contact def contact_list(request): contacts = Contact.objects.all() return render(request, 'contacts/contact_list.html', {'contacts': contacts}) ``` 5. 创建模板:创建一个模板来显示联系人列表,例如contacts/templates/contacts/contact_list.html: ```html {% extends 'base.html' %} {% block content %} <h1>Contact List</h1> <ul> {% for contact in contacts %} <li>{{ contact.first_name }} {{ contact.last_name }} - {{ contact.email }} - {{ contact.phone }}</li> {% empty %} <li>No contacts yet.</li> {% endfor %} </ul> {% endblock %} ``` 6. 创建URL:在contacts/urls.py文件中定义一个URL模式,以便访问联系人列表视图: ```python from django.urls import path from .views import contact_list urlpatterns = [ path('', contact_list, name='contact_list'), ] ``` 7. 更新项目URL配置:将应用程序的URL配置包含在项目级别的URL配置中,例如myproject/urls.py: ```python from django.contrib import admin from django.urls import path, include urlpatterns = [ path('admin/', admin.site.urls), path('contacts/', include('contacts.urls')), ] ``` 8. 添加样式:如果您想要美化联系人列表页面,可以将CSS样式添加到base.html或contact_list.html模板中。 这些步骤应该能够让您构建一个简单的联系人列表,并美化它们的页面

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值