django 快速搭建blog
http://www.cnblogs.com/fnng/p/3737964.html
django 快速搭建blog
輸入博客標題,正文、日期時間、點擊save 創建博客。
設置admin 的BlogsPost界面
打開mysite/blog/models.py 文件,做如下修改:
from django.db import models from django.contrib import admin # Create your models here. class BlogsPost(models.Model): title = models.CharField(max_length = 150) body = models.TextField() timestamp = models.DateTimeField() class BlogPostAdmin(admin.ModelAdmin): list_display = (‘title‘,‘timestamp‘) admin.site.register(BlogsPost,BlogPostAdmin)
創建BlogPostAdmin類,繼承admin.ModelAdmin父類,以列表的形式顯示BlogPost的標題和時間。
創建blog的公共部分
從Django的角度看,一個頁面具有三個典型的組件:
一個模板(template):模板負責把傳遞進來的信息顯示出來。
一個視圖(view):視圖負責從數據庫獲取需要顯示的信息。
一個URL模式:它負責把收到的請求和你的試圖函數匹配,有時候也會向視圖傳遞一些參數。
創建模板
在blog項目下創建templates目錄(mysite/blog/templates/),在目錄下創建模板文件index.html,內容如下:
{% for post in posts %} <h2>{{ post.title }}</h2> <p>{{ post.timestamp }}</p> <p>{{ post.body }}</p> {% endfor%}
創建視圖函數
打開mysite/blog/views.py文件:
#coding=utf-8 from django.shortcuts import render from blog.models import BlogsPost from django.shortcuts import render_to_response # Create your views here. def index(request): blog_list = BlogsPost.objects.all() return render_to_response(‘index.html‘,{‘blog_list‘:blog_list})
blog_list = BlogPost.objects.all() :獲取數據庫裏面所擁有BlogPost對象
render_to_response()返回一個頁面(index.html),順帶把數據庫中查詢出來的所有博客內容(blog_list)也一並返回。
創建blog的URL模式
在mysite/urls.py文件裏添加blog的url:
#coding=utf-8 from django.conf.urls import patterns, include, url from django.contrib import admin urlpatterns = patterns(‘‘, url(r‘^admin/‘, include(admin.site.urls)), url(r‘^index/$‘, ‘blog.views.index‘), )
再次啟動服務($ python manage.py runserver),訪問blog應用(http://127.0.0.1:8000/index/)下圖有錯,僅供參考。
頁面如下:
當然,讀者可以繼續到admin後臺添加blog,從而刷新這個頁是否顯示新添加的blog。
添加樣式
創建基礎模板
在mysite/blog/templates目錄裏創建base.html的模板:
<html> <style type="text/css"> body{color:#efd;background:#453;padding:0 5em;margin:0} h1{padding:2em 1em;background:#675} h2{color:#bf8;border-top:1px dotted #fff;margin-top:2em} p{margin:1em 0} </style> <body> <h1>蟲師blog</h1> <h3>大人不華,君子務實</h3> {% block content %} {% endblock %} </body> </html>
修改index.html模板,讓它引用base.html模板和它的“content”塊。
{% extends "base.html" %} {% block content %} {% for post in posts %} <h2>{{ post.title }}</h2> <p>{{ post.timestamp | date:"1,F jS"}}</p> <p>{{ post.body }}</p> {% endfor %} {% endblock %}
再次刷新博客頁面:
http://127.0.0.1/index/ 下圖有錯,僅供參考。
請系統的學習django web框架,然後在此基礎上做更多的擴展,開發自己真正的blog
django 快速搭建blog