这一节我们来了解模板和视图、URL的使用。

  一.使用模板

  在blog目录中新建templates文件夹,在templates文件夹下新建base.html文件。目录结构如下

templates/
base.html

  编写base.html文件

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>
{% block title %}
{% endblock %}
</title>
</head>
<body>
<h1>a simple blog</h1>
{% block content %}
{% endblock %}
{% block footer %}
<p>Thanks for visiting my site!</p>
{% endblock %}
</body>
</html>

  base.html定义了一个简单的html框架,接下来将在所有的页面中使用。

  在templates目录下新建blog_list.html

{% extends "base.html" %}

{% block title %} blog list {% endblock %}

{% block content %}
<div class="content">
{% for blog in blogs %}
<h3>{{ blog.caption }}</h3>
<div>{{ blog.content}} </div>
{% endfor %}
</div>
{% endblock %}
  二.配置视图文件

  在blog目录中编辑views.py

from django.shortcuts import render_to_response
from blog.models import Blog def blog_list(request):
blogs = Blog.objects.all()
return render_to_response("blog_list.html", {"blogs": blogs})
  三.配置url

  在web目录中编辑urls.py

urlpatterns = patterns('',
# Examples:
# url(r'^$', 'web.views.home', name='home'),
# url(r'^blog/', include('blog.urls')), url(r'^admin/', include(admin.site.urls)),
url(r'^web/',include('blog.urls')),
)

  在blog目录中添加urls.py 文件

from django.conf.urls import *

urlpatterns = patterns(('blog.views'),
url(r'^bloglist/$', 'blog_list', name='bloglist'),
)

  使用admin添加几个tag、blog、和author,最后运行服务器,打开127.0.0.1:8000/web/bloglist,显示如下界面

  四、添加博客展示页面

  在templates目录中添加blog_show.html。

{% extends "base.html" %}

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

{% block content %}
<div class="content">
  <h2>blog show</h2>
<h4>{{ blog.caption }}</h4>
<div>{{ blog.content }} </div>
</div>
{% endblock %}

  在views.py文件中添加blog_show视图函数

from django.http import Http404

def blog_show(request, id=''):
try:
blog = Blog.objects.get(id=id)
except Blog.DoesNotExist:
raise Http404
return render_to_response("blog_show.html", {"blog": blog})

  修改blog目录下面的urls.py ,添加如下内容

url(r'^blog/(?P<id>\d+)/$','blog_show',name='detailblog'),

  修改blog_list.html

 <h3>{{ blog.caption }}</h3>

  将其改为

 <h3>
<a href="{% url 'detailblog' blog.id %}">
{{ blog.caption }}
</a>
</h3>

  特别注意的是detailblog一定要带上单引号,再次刷新下blog_list页面,博客标题就便成了链接。

  

 

  

  

  

django 开发简易博客(二)的更多相关文章

  1. django开发简易博客(一)

    这几篇博客是根据GoodSpeed的博客该写的,看了他的博客收获很大,但是他的博客从第三篇开始,条理很不清晰,加之又是几年之前写的,编写环境发生很大改变,所以对他的博客进行了一个整理,加入了一些自己的 ...

  2. django开发简易博客(四)

    上一节,我们讲述了怎么使用静态文件,并使用bootstrap对页面进行了美化,这一节我们将增强我们blog的功能,添加发表博客,删除博客的功能. 一.表单的使用 要实现添加blog的功能,就得使用表单 ...

  3. django开发简易博客(五)

    这一节将讲述如何添加comments库与ajax的支持. 一.添加comments库 comments库是是django框架内置的一个评论库,可以快速的搭建岀一个评论系统,不过再自定义方面有些麻烦,不 ...

  4. django开发简易博客(三)

    一.静态文件的使用 首先,新建static目录,目录下分别建立css.js.img三个子目录 修改settings.py文件 STATICFILES_DIRS = ( 'F:/web/static', ...

  5. Django搭建简易博客

    Django简易博客,主要实现了以下功能 连接数据库 创建超级用户与后台管理 利用django-admin-bootstrap美化界面 template,view与动态URL 多说评论功能 Markd ...

  6. Django开发个人博客入门学习经验贴

    [写在前面] 入门学习搭建个人博客系统首先还是参考大佬们的经验,记得刚入手Django的时候,一篇博客大佬说过一句话,做技术的不要一开始就扎头于细节中,先把握整体框架,了解这个对象之后再去了解细节,进 ...

  7. Django 搭建简易博客

    新增一个 APP 博客算是一个功能集,因此我们应将其体现为一个模块.这表现在 Django 应用里则是为其创建一个 APP Package.现在让 manage.py 中的 startapp 闪亮登场 ...

  8. 实战Django:简易博客Part1

    舍得学习新技能的时候,通常不喜欢傻读书--捧着一本阐述该项技能的书籍,然后傻看,一路看下来,脑子里塞满了新的概念.知识点,头是越来越大,但技能却几乎没掌握半分. 多年来,舍得养成了用做实例来学习新技能 ...

  9. Django开发简单博客流程

    什么是Django? Django是一个基于python的高级web开发框架 它能够让开发人员进行高效且快速的开发 高度集成(不用自己造轮子), 免费并且开源 当前路径创建工程 django-admi ...

随机推荐

  1. 批量添加target属性

    <script> addTarget(); function addTarget(){ var oa=document.getElementsByTagName('a'); for(var ...

  2. Google AdSense的CPC点击单价超百度联盟(2014)

    很久没有关注AdSense了,一是访问不太方便,二是网站投放AdSense广告相当少,估计每天收入都不到1美元,所以就懒得去看了,一般都是几个月才去看一看. AdSense还行吗? AdSense点击 ...

  3. Ubuntu下lamp(PHP+Mysql+Apache)搭建+完全卸载卸载方法

    安装apache2 sudo apt-get install apache2 安装完成,运行如下命令重启下: sudo /etc/init.d/apache2 restart 在浏览器里输入http: ...

  4. Echoprint系列--Android编译与调用

    在Echoprint系列--编译中编译了源代码,这次将Echoprint移植到Android平台并測试识别歌曲功能. 一.编译库 1.环境准备 Android NDK,我的是android-ndk-r ...

  5. [翻译]Go语言调度器

    Go语言调度器 译序 本文翻译 Daniel Morsing 的博文 The Go scheduler.个人认为这篇文章把Go Routine和调度器的知识讲的浅显易懂.作为一篇介绍性的文章.非常不错 ...

  6. zoj 2165

    很简单的DFS搜索水题,递归理解深了很easy的!打了一遍就ac了 #include<stdio.h> ][]; ,n,m; void DFS(int x,int y) { ; ;i< ...

  7. MATLAB - 为什么imshow(g,[])可以正常显示,而imshow(g)却显示空白图像?

    Q:为什么imshow(g,[])可以正常显示,而imshow(g)却显示空白图像? A:数据类型如果是double,imshow的处理范围是0-1数据类型如果是uint8,imshow的处理范围是0 ...

  8. 条款16:成对使用new和delete时,采取相同的形式

    问题聚焦:     我们都知道,new和delete要成对使用,但是有时候,事情往往不是按我们预期的那样发展.     对于单一对象和对象数组,我们要分开考虑.     遇到typedef时,也需要搞 ...

  9. SqlHelp

    using System.Configuration;using System.Data; public class SqlHelp { private static string connectio ...

  10. php 图片等比缩放

    /** * @method 图片等比缩放 * @param string $srcImage 源图片路径 * @param string $toFile 目标图片路径 * @param integer ...