• 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>
    View Code

      重写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>
    View Code

      创建新文件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 %}
    View Code

      在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})
    View Code

      添加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 %}
    View Code

      重新编辑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 %}
    View Code

      重新编辑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 %}
    View Code

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

      

  • 相关阅读:
    BF算法和KMP算法
    Python课程笔记 (五)
    0268. Missing Number (E)
    0009. Palindrome Number (E)
    0008. String to Integer (atoi) (M)
    0213. House Robber II (M)
    0198. House Robber (E)
    0187. Repeated DNA Sequences (M)
    0007. Reverse Integer (E)
    0006. ZigZag Conversion (M)
  • 原文地址:https://www.cnblogs.com/fireflow/p/4714751.html
Copyright © 2020-2023  润新知