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。
django开发简易博客(三)的更多相关文章
- django开发简易博客(一)
这几篇博客是根据GoodSpeed的博客该写的,看了他的博客收获很大,但是他的博客从第三篇开始,条理很不清晰,加之又是几年之前写的,编写环境发生很大改变,所以对他的博客进行了一个整理,加入了一些自己的 ...
- django开发简易博客(四)
上一节,我们讲述了怎么使用静态文件,并使用bootstrap对页面进行了美化,这一节我们将增强我们blog的功能,添加发表博客,删除博客的功能. 一.表单的使用 要实现添加blog的功能,就得使用表单 ...
- django 开发简易博客(二)
这一节我们来了解模板和视图.URL的使用. 一.使用模板 在blog目录中新建templates文件夹,在templates文件夹下新建base.html文件.目录结构如下 templates/ ba ...
- django开发简易博客(五)
这一节将讲述如何添加comments库与ajax的支持. 一.添加comments库 comments库是是django框架内置的一个评论库,可以快速的搭建岀一个评论系统,不过再自定义方面有些麻烦,不 ...
- Django搭建简易博客
Django简易博客,主要实现了以下功能 连接数据库 创建超级用户与后台管理 利用django-admin-bootstrap美化界面 template,view与动态URL 多说评论功能 Markd ...
- Django开发个人博客入门学习经验贴
[写在前面] 入门学习搭建个人博客系统首先还是参考大佬们的经验,记得刚入手Django的时候,一篇博客大佬说过一句话,做技术的不要一开始就扎头于细节中,先把握整体框架,了解这个对象之后再去了解细节,进 ...
- Django 搭建简易博客
新增一个 APP 博客算是一个功能集,因此我们应将其体现为一个模块.这表现在 Django 应用里则是为其创建一个 APP Package.现在让 manage.py 中的 startapp 闪亮登场 ...
- 实战Django:简易博客Part1
舍得学习新技能的时候,通常不喜欢傻读书--捧着一本阐述该项技能的书籍,然后傻看,一路看下来,脑子里塞满了新的概念.知识点,头是越来越大,但技能却几乎没掌握半分. 多年来,舍得养成了用做实例来学习新技能 ...
- Django开发简单博客流程
什么是Django? Django是一个基于python的高级web开发框架 它能够让开发人员进行高效且快速的开发 高度集成(不用自己造轮子), 免费并且开源 当前路径创建工程 django-admi ...
随机推荐
- oracle 两表数据对比---minus
1 引言 在程序设计的过程中,往往会遇到两个记录集的比较.如华东电网PMS接口中实现传递一天中变更(新增.修改.删除)的数据.实现的方式有多种,如编程存储过程返回游标,在存储过程中对两批数据进 ...
- HDU 5765 Bonds(状压DP)
[题目链接] http://acm.hdu.edu.cn/showproblem.php?pid=5765 [题目大意] 给出一张图,求每条边在所有边割集中出现的次数. [题解] 利用状压DP,计算不 ...
- HTML5 RPG游戏示例
演示地址 点击打开链接
- 3. 表单输入框 在 IE 中 会有 “X” 和 类似wifi图标的图标出现
原因: IE 自动给 input加了伪类 ::ms-clear 和 ::ms-reveal 解决: input::ms-clear, input::ms-reveal { display: none; ...
- 枚举与define的区别
1.枚举enum的用途浅例 写程序时,我们常常需要为某个对象关联一组可选alternative属性.例如,学生的成绩分A,B,C,D等,天气分sunny, cloudy, rainy等等. ...
- PHP将Excel导入数据库以及数据库数据导出至Excel
一.导入 导入需要使用能读取Excel的组件,网上也有比较好的组件,这里分享我使用的:下载 提取码:vxyn.(注意两个文件有引用关系) <?php //传入要导入的Excel的文件名 fun ...
- mybatis日记配置Log4j
拷贝log4j-1.2.16.jar到项目lib下 方式一是在src下新建一个log4j.xml文件,其具体内容如下 <?xml version="1.0" encoding ...
- 从基因组可视化工具——circos说起,circos安装
这是博客改版的第一篇博文,选择最近使用的生物信息学软件——circos开始写起.circos是用perl写的生物软件,从发表的文章来看 学习circos主要是熟悉配置文件的编辑方法,搞清楚其中的标 ...
- 转:在控制台中调试AngularJS应用
在控制台中调试AngularJS应用 在创建AngularJS应用时,一个很棘手的问题是如何在Chrome,Firefox,以及IE的JavaScript控制台中访问深藏在应用中的数据和服务.本文将会 ...
- 基于Visual C++2013拆解世界五百强面试题--题13-找最大公共子字符串
编程实现:找出两个字符串中最大公共子字符串,如"abccade"和"dgcadde"的最大子字符串为"cad". 如果不考虑效率的话直接比较 ...