django开发简易博客(三)

  一.静态文件的使用

  首先,新建static目录,目录下分别建立css、js、img三个子目录

  修改settings.py文件

STATICFILES_DIRS = (
    ‘F:/web/static‘,   #替换成自己的static 目录
)

  修改web下的urls.py,添加以下内容

urlpatterns += patterns((‘‘),
    (r‘^static/(?P<path>.*)$‘, ‘django.views.static.serve‘,
            {‘document_root‘: ‘F:/web/static‘}
    ),
)
  二.使用bootstrap美化界面

  下载boostrap组件,将相应文件放到static目录中。然后修改base.html。在head中添加

<link rel="stylesheet" href="/static/css/bootstrap.min.css">
<script src="/static/js/jquery-2.0.0.min.js"></script>
<script src="/static/js/bootstrap.min.js"></script>

  重写base.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <link rel="stylesheet" href="/static/css/bootstrap.min.css">
    <script src="/static/js/jquery-2.0.0.min.js"></script>
    <script src="/static/js/bootstrap.min.js"></script>
    <title>
        {% block title %}
        {% endblock %}
    </title>
    {% block extra_head %}
    {% endblock %}
</head>
<body>
     {% block body %}
        {% block header %}
            {% block menu %}
            {% endblock %}
        {% endblock %}
        <div class="container main">
        {% block content %}
            <div class="container">
                <div class="row">
                    <div class="col-md-9">
                        {% block article %}
                            {% block article_title %}{% endblock %}
                            {% block article_content %}{% endblock %}
                        {% endblock %}

                        {% block article_menu %} {% endblock %}
                        {% block comments %} {% endblock %}
                        </div>
                        <div class="col-md-3">
                            {% block aside %}
                                {% block tags %}{% endblock %}
                            {% endblock %}
                        </div>
                    </div>
                </div>
            {% endblock %}
            {% block footer %}
                <p>Thanks for visiting my site! </p>
            {% endblock %}
        {% endblock %}
    </div>
</body>
</html>

  创建新文件blog_base.html,在其中添加导航栏

{% extends "base.html" %}  

{% block header %}
    {% block menu %}
    <div class="container">
        <nav class="navbar navbar-default navbar-inverse">
            <div class="navbar-header">
                <a  href="{% url ‘bloglist‘ %}" class="navbar-brand active">首页</a>
            </div>
            <div>
                <ul class="nav  navbar-nav">
                    <li><a href="#">Pyhton</a></li>
                    <li><a href="#">Django</a></li>
                    <li><a href="#">Html</a></li>
                    <li><a href="#">CSS</a></li>
                    <li><a href="#">Bootstrap</a></li>
                    <li><a href="#">JavaScript</a></li>
                    <li><a href="#">jQuery</a></li>
                    <li><a href="#">Linux</a></li>
                    <li><a href="#">关于</a></li>
                    <li><a href="#">联系</a></li>
                </ul>
            </div>
        </nav>
    </div>
    {% endblock %}
{% endblock %}

  在blog的urls.py文件中添加

url(r‘^blog/tag/(?P<id>\d+)/$‘,‘blog_filter‘,name=‘filterblog‘),

  在views.py中添加

def blog_filter(request,id=‘‘):
    tags = Tag.objects.all()
    tag = Tag.objects.get(id=id)
    blogs = tag.blog_set.all()
    return render_to_response("blog_filter.html",{"blogs":blogs,"tag":tag,"tags":tags})

  添加blog_filter.html文件

{% extends "base.html" %}

{% block title %} 标签: {{ tag.tag_name }} {% endblock %}

{% block article %}
<article class=‘content-main‘>
    {% for blog in blogs %}
        <h3><a href="{% url ‘detailblog‘ blog.id %}">{{ blog.caption }}</a></h3>
        <div class="row">
            <div class="col-md-3">
                <p class="muted">
                    <span  class="glyphicon glyphicon-tag"></span>
                    <small> {{ blog.publish_time }}</small>
                </p>
            </div>
            <div class="col-md-2 col-md-offset-7">
            </div>
        </div>
        <hr class="soften">
    {% empty %}
        <p class="text-info">no result!!</p>
    {% endfor %}
</article>
{% endblock %}

{% block aside %}
    {% block tags %}
        <div class="well">
            {% for tag in tags %}
            <span class="label"><a href="{% url ‘filterblog‘ tag.id %}">{{ tag }}</a></span>
            {% endfor %}
        </div>
    {% endblock %}
{% endblock %}

  重新编辑blog_list.html

{% extends "blog_base.html" %}

{% block title %} 博文列表 {% endblock %}

{% block article %}
<article class=‘content‘>
    {% for blog in blogs %}
        <h4><a href="{% url ‘detailblog‘ blog.id %}">{{blog.caption}}</a></h4>
        <p class="muted">
            {% for tag in blog.tags.all %}
                <span  class="glyphicon glyphicon-tag"></span><small>{{tag}}</small>
            {% endfor %}
        </p>
        <div class="row">
            <div class="col-md-3">
               <span  class="glyphicon glyphicon-time"></span><small> {{ blog.publish_time }}</small>
            </div>
            <div class="col-md-2 col-md-offset-7">
            </div>
        </div>
        <hr>
    {% endfor %}
</article>
{% endblock %}
{% block aside %}
    {% block tags %}
         <div class="well">
            {% for tag in tags %}
                <span class="label"><a href="{% url ‘filterblog‘ tag.id %}">{{tag}}</a></span>
            {% endfor %}
    </div>
    {% endblock %}
{% endblock %}

  重新编辑blog_show.html

{% extends "blog_base.html" %}

{% block title %} {{ blog.caption }} {% endblock %}

{% block article %} 

<div class="content">
    <article class="content-main">
    {% block article_title %}
        <h2>{{ blog.caption }}</h2>
    {% endblock %}
    <p class="muted">
           <span  class="glyphicon glyphicon-user"></span><small> {{ blog.author }}</small>
        <span  class="glyphicon glyphicon-time"></span><small> {{ blog.publish_time }}</small>
    </p>
        <section>
            <div class="blog-content">
                    {% block article_content %}
                    {{ blog.content }}
                {% endblock %}
            </div>
        </section>
        <section>
            <div class="row">
                <div class="col-md-3">
                         <p>
                             <span  class="glyphicon glyphicon-tag"></span>
                        {% for tag in blog.tags.all %}
                             <small class="muted"> {{ tag }} </small>
                        {% endfor %}
                    </p>
                </div>
                <div class="col-md-2 col-md-offset-7">

                   </div>
            </div>
        </section>
    </article>
    <hr>
</div>
{% endblock %}

  这样,一个简单的经过bootstrap美化的blog页面就出现了,但是现在还只能展示,不能自己提交blog。

  

时间: 2024-12-29 07:58:55

django开发简易博客(三)的相关文章

django 开发简易博客(二)

这一节我们来了解模板和视图.URL的使用. 一.使用模板 在blog目录中新建templates文件夹,在templates文件夹下新建base.html文件.目录结构如下 templates/ base.html 编写base.html文件 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title> {% block tit

django开发简易博客(五)

这一节将讲述如何添加comments库与ajax的支持. 一.添加comments库 comments库是是django框架内置的一个评论库,可以快速的搭建岀一个评论系统,不过再自定义方面有些麻烦,不想用的话也可以自己动手编写.激活comments的方法. 1.在setting.py INSTALLED_APP 添加 'django.contrib.sites', django.contrib.comments', 2.更新数据库,执行 python manage.py syncdb 3.在we

实战Django:简易博客Part2

在Part1中,我们完成了本项目的基本框架搭建,并完善了一下管理后台,现在我们来看如何设计面向公共的页面部分. 8.创建模板 首先,请在blog文件夹下建立templates文件夹,然后,在templates文件夹中建立一个叫bog的文件夹,在这个bog文件夹下新建一个archive.html文件,这个文件的路径应该是: bog/templates/bog/archive.html 把下面这些代码添加到archive.html中: bog/templates/bog/archive.html:

实战Django:简易博客Part1

舍得学习新技能的时候,通常不喜欢傻读书--捧着一本阐述该项技能的书籍,然后傻看,一路看下来,脑子里塞满了新的概念.知识点,头是越来越大,但技能却几乎没掌握半分. 多年来,舍得养成了用做实例来学习新技能的习惯.这可不是舍得的独创,在象棋.围棋界中,历来有"打谱"一说,就是根据棋谱,把一步步棋摆出来,在打谱的过程中,去感悟.去吸收,此时感悟到的.吸收进的,才是属于你自己的东西.新的技能就这样一步步发展起来,逐渐壮大. 就象Django官方文档那样,一个实例看起来很简单,但作为初学者,用&q

Django搭建简易博客教程(01)-Django简介

a-terminal: 写作目的 喜欢一个学习观点以教促学, 一直以来, 学习的时候经常会发现, 某个方法某个问题自己已经明白了, 但是在教给别人的时候确说不清楚, 所以慢慢的学会了以教促学这种方法, 在教给别人知识的同时也能够提升自己对语言, 对框架的理解. 希望达到的目标: 希望能写出一个系列文章, 我也不知道到底能写多少 能够让认真阅读这个系列的文章的人, 能在读完之后做出一个简单的博客 希望能够加深自己对Django的理解 Django简介 Django是Python中目前风靡的Web

Django搭建简易博客教程(四)-Models

原文链接: http://www.jianshu.com/p/dbc4193b4f95 Django Model 每一个Django Model都继承自django.db.models.Model 在Model当中每一个属性attribute都代表一个database field 通过Django Model API可以执行数据库的增删改查, 而不需要写一些数据库的查询语句 设置数据库 Django项目建成后, 默认设置了使用SQLite数据库, 在my_blog/my_blog/setting

Django+SAE个人博客 三

在第二节中,生成http://jackerb.sinaapp.com/admin,显示如下: 但是在本地效果不是这样的,如下: 这是怎么回事呢,这是因为SAE上没有本地的一些js了,css之类的东西,虽然我也不知道这些东西是干什么用的.但是在官方文档中有告诉怎么解决http://www.sinacloud.com/doc/sae/python/tutorial.html#web 下面我们就一步一步操作: 在jackerb目录下面创建static目录,现在jackerb里面应该是这样的: 2. 修

Python一日一练102----创建简易博客(下)

继续改博客 接着上一篇继续改咱的博客. 母语不是英语肿么办,博客上面英语好多啊! 更改很简单. 你可以做一个快速更改来观察Django管理工具是否被翻译成你想要的语言. 仅需在settings.py添加'django.middleware.locale.LocaleMiddleware' 到MIDDLEWARE_CLASSES设置中,并确保它在'django.contrib.sessions.middleware.SessionMiddleware'之后就可以了. 建立博客的前台部分 创建模版

WordPress---PHP语言开发的博客平台

WordPress是一种使用PHP语言开发的博客平台,用户可以在支持PHP和MySQL数据库的服务器上架设属于自己的网站.也可以把 WordPress当作一个内容管理系统(CMS)来使用.WordPress是一个免费的开源项目,在GNU通用公共许可证下授权发布.目前最新版本为2014 年4月25日WordPress 3.9 版.WordPress被认为是Michel Valdrighi所开发的网志平台b2/cafelog的正式继承者."WordPress"这个名字出自Christine