Django开发博客- 页面美化

css是一种用来描述某种标记语言写的web站点的样式语言。这里我们并不想展开讨论,关于CSS我在这里推荐一个很不错的资源: Codeacademy HTML & CSS course

不想从头开始写,因为我们有现成的css框架,没必要重复造轮子。

使用Bootstrap

目前最流行的css框架非bootstrap莫属了,官网地址:http://getbootstrap.com/

只需要在你的html模板页面的开始部分添加下面几句就行了

123
<link rel="stylesheet" href="//maxcdn.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap.min.css"><link rel="stylesheet" href="//maxcdn.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap-theme.min.css"><script src="//maxcdn.bootstrapcdn.com/bootstrap/3.2.0/js/bootstrap.min.js"></script>

你的工程里面不需要引入任何的文件,因为这里直接引用了bootstrap公共的css和js文件。

再次打开模板文件,效果如下:

是不是感觉变美观了。^_^

django静态文件

这里我还将讲解下django中的静态文件。静态文件就是css、js、图片、视频等等那些内容不会改变的文件,不管任何时候,对于任何用户都是一样的。

css就是一种静态文件,为了自定义css,我们必须先再django中配置,你只需要配置一次就可以了。那让我们马上开始吧!

django中配置静态文件

首先我们需要创建一个目录来存储静态文件,在manage.py的同级目录中创建一个static文件夹

mysite├─── static└─── manage.py

打开配置文件mysite/settings.py,在最后面添加如下配置:

123
STATICFILES_DIRS = (    os.path.join(BASE_DIR, "static"),)

它告知django应该在哪个位置去查找静态文件。

第一个CSS文件

现在我们开始创建自己的css文件了,首先在static目录中新建一个css目录,然后在里面创建一个blog.css文件。目录结构如下

static└─── css     └───blog.css

打开文件static/css/blog.css后,添加如下内容

123
h1 a {    color: #FCA205;}

h1 a是CSS选择器,上面的意思是在h1标签下的链接a的文字颜色会是#FCA205,其实就是橘黄色,颜色都是用十六进制表示的。

接下来我们要让模板加载静态css文件,打开blog/templates/blog/post_list.html,在最开始部分加入:

{% load staticfiles %}

然后在bootstrap引用的后面添加下面这句

<link rel="stylesheet" href="{% static ‘css/blog.css‘ %}">

最后,整个模板文件类似这样:

1234567891011121314151617181920212223
{% load staticfiles %}<html>    <head>        <title>Django Girls blog</title>        <link rel="stylesheet" href="//maxcdn.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap.min.css">        <link rel="stylesheet" href="//maxcdn.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap-theme.min.css">        <script src="//maxcdn.bootstrapcdn.com/bootstrap/3.2.0/js/bootstrap.min.js"></script>        <link rel="stylesheet" href="{% static ‘css/blog.css‘ %}">    </head>    <body>        <div>            <h1><a href="/">Django Girls Blog</a></h1>        </div>

        {% for post in posts %}            <div>                <p>published: {{ post.published_date }}</p>                <h1><a href="">{{ post.title }}</a></h1>                <p>{{ post.text|linebreaks }}</p>            </div>        {% endfor %}    </body></html>

OK,保存并刷新后看看效果

我想要文字左边的边距大一点,这样会好看些。那么在blog.css中添加如下内容:

123
body {    padding-left: 15px;}

刷新页面后效果:

我还想自定义文字标题的字体,在post_list.html模板的中添加如下一句

1
<link href="http://fonts.googleapis.com/css?family=Lobster&subset=latin,latin-ext" rel="stylesheet" type="text/css">

这句会引入Google的一个字体Lobster,然后修改blog.css中的h1 a的样式如下:

1234
h1 a {    color: #FCA205;    font-family: ‘Lobster‘;}

刷新后的效果:

CSS中的class

在CSS中有一个class的概念,它可以让你只改变HTML中某一部分的样式而不会影响到其他部分。

这里我们将区别标题头和文章本身的样式。

在post_list.html中添加如下的标题段:

123
<div class="page-header">    <h1><a href="/">Django Girls Blog</a></h1></div>

文章列表段修改如下:

12345678910111213
<div class="content">    <div class="row">        <div class="col-md-8">            {% for post in posts %}                <div class="post">                    <h1><a href="">{{ post.title }}</a></h1>                    <p>published: {{ post.published_date }}</p>                    <p>{{ post.text|linebreaks }}</p>                </div>            {% endfor %}        </div>    </div></div>

blog.css样式修改如下:

1234567891011121314151617181920212223242526272829303132333435363738
.page-header {    background-color: #ff9400;    margin-top: 0;    padding: 20px 20px 20px 40px;}.page-header h1, .page-header h1 a, .page-header h1 a:visited, .page-header h1 a:active {    color: #ffffff;    font-size: 36pt;    text-decoration: none;}.content {    margin-left: 40px;}h1, h2, h3, h4 {    font-family: ‘Lobster‘, cursive;}.date {    float: right;    color: #828282;}.save {    float: right;}.post-form textarea, .post-form input {    width: 100%;}.top-menu, .top-menu:hover, .top-menu:visited {    color: #ffffff;    float: right;    font-size: 26pt;    margin-right: 20px;}.post {    margin-bottom: 70px;}.post h1 a, .post h1 a:visited {    color: #000000;}

保存这些文件后,刷新页面,看看,是不是很酷了:

已经比较美观了。上面的css应该看起来不会那么难,可以自己试着去修改它,没关系的,反正出错了可以撤销。

时间: 2024-12-18 16:32:44

Django开发博客- 页面美化的相关文章

Django开发博客(基础篇)

Django开发博客(基础篇)http://www.itmin.cn/archives/918

记一次博客页面美化过程,分享代码.

目录 一. 感谢热心博主分享的攻略 二. 进行了哪些美化? 1. Markdown美化 2. 给博客页面加上鼠标停留响应 Ⅱ. 字体大小font-size发生变化 Ⅲ. 给容器添加阴影效果 3. 处理一些细节 三. 源码分享 点击此处跳转到Github 注册博客园账号有一个多月了, 一直想优化一下自己的博客页面. 在首页浏览时候发现一位博主的页面挺干净整洁的, 而且他分享了制作的思路, 于是下定决心美化一番. 本文将介绍美化的思路, 并贴上所有代码, 俗话说授之以鱼也要授之以渔. 一. 感谢热心

Django开发博客 入门篇

Django是神马? Django是一个开源免费的Web框架,使用Python编写.能够让你快速写出一个Web应用, 因为它包含了绝大部分的组件,比如认证,表单,ORM,Session,安全,文件上传,页面模板等,避免了重复造轮子. 官方网站:https://www.djangoproject.com/ 笔者写这篇教程的时候,最新版本是1.9 安装Django1.9 安装python虚拟环境 为了开发应用的时候使用单独的环境,最好是安装virtual environment, 这样有很好的独立性

Django开发博客- 三部曲

其实在django中实现一个功能只需要三个步骤即可,这里我姑且叫它三部曲. 这三部曲就是: 定义urls映射 定义views 定义templates 什么是URL? URL就算一个WEB地址,你在浏览器输入这个地址,然后浏览器返回相应的网页给你. 比如http://djangogirls.com是一个URL,而127.0.0.1:8000同样也是个URL,默认就是http协议的. Django中的URL工作原理 我们打开mysite/urls.py文件,会发现类似下面这样: 1234567891

Django开发博客系统(01-前言与需求分析)

原本是跟着视频学,无奈发现视频中用到的资源找不到,于是自己买了本书来进行学习,贴上JD链接.<Django企业开发实战> 我的开发环境是win10+python3.8+django3.0.4,而书上是在linux环境下进行开发的,= =(汗),先这样学下去吧,毕竟面向百度编程.写博客也是为了督促一下自己,毕竟在家里宅着容易学着学着就玩手机去了.. 书前面还有一些入门知识,这里我就直接跳到做项目的部分了. 目标是开发一个博客系统, 需求分析: 简单来说,博客分为两个部分:读者访问部分(用户端)和

Django开发博客系统(04-常用字段与属性)

Django models中常用的字段类型 数值型 这些类型都是数值相关的. l  AutoField int(11). 自增主键,Django Model默认提供,可以被重写.完整定义是 id = models.AutoField(primary_key=True) l  BooleanFueld tinyint(1). 布尔类型字段,一般用于记录状态标记. l  DecimalField decimal. 开发对数据精度要求高的业务时考虑使用,比如做支付相关,金融相关.定义时需要指定精确到多

Django开发博客- 部署

安装Git Git是一个被大量程序员使用的”版本控制系统”.此软件可以跟踪任何时间文件的改变,这样你以后可以随时召回某个特定版本. windows系统下面可以下载git-scm安装.除了第5步”Adjusting your PATH environment”, 需要选择”Run Git and associated Unix tools from the Windows command-line”(底部的选项).除此之外,默认值都没有问题. Linux系统的安装使用包管理器安装 123 sudo

Django开发博客系统(08-路由配置与views编写)

我们需要的页面: l  博客首页 l  博文详情页 l  分类列表页 l  标签列表页 l  友链展示页 但实际上,博客首页,分类列表页和标签列表页,本质上都是文章列表页,只有一些信息有差别.那么View大概就有三类: l  列表页: 根据不同的查询条件分别展示博客首页,分类列表页和标签列表页 l  博文详情页: 展示博文详情页 l  友链展示页: 展示所有友情链接 书上使用的环境是django1.11.1,而我使用的是3.0.4,所以路由我使用path来写,并且把路由分散开来写,让代码分工能明

使用django开发博客过程记录5——日期归档和视图重写

针对每条博客的观看次数我么是使用django的Mixin实现的: def get(self, request, *args, **kwargs): last_visit = request.session.get('last_visit') reset_last_visit_time = False if last_visit: last_visit_time = datetime.datetime.strptime(last_visit[:-7], "%Y-%m-%d %H:%M:%S&quo