• 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。

      

  • 相关阅读:
    [NOI Online 2021 提高组] 愤怒的小N
    [NOI Online 2021 提高组] 积木小赛
    「2020-2021 集训队作业」Yet Another Permutation Problem
    无标号有根树/无根树 计数
    无向图的 三元环
    有标号二分图计数
    有标号荒漠计数
    「雅礼集训 2018 Day8」B
    CF708E Student's Camp
    清华集训 2016 选做
  • 原文地址:https://www.cnblogs.com/fireflow/p/4714751.html
Copyright © 2020-2023  润新知