from django.db import models # Create your models here. class BlogsPost(models.Model): title =models.CharField(max_length=150) #標題 body =models.TextField() ##內容 timestamp = models.DateTimeField() ##時間
python manage.py makemigrations python manage.py migrate
建立blog的公共部分css
從Django的角度看,一個頁面具備三個典型的組件:html
一個模板(template):模板負責把傳遞進來的信息顯示出來。python
一個視圖(view):視圖負責從數據庫獲取須要顯示的信息。數據庫
一個URL模式:它負責把收到的請求和你的試圖函數匹配,有時候也會向視圖傳遞一些參數。django
index.htmlapp
{% extends 'base.html' %} {# 導入母板 #} <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> {% block content %} {# content 內容,blog_list傳過來的數據 #} {% for post in blog_list %} <h2>{{ post.title }}</h2> <p>{{ post.timestamp }}</p> <p>{{ post.body }}</p> {% endfor %} {% endblock %} </body> </html>
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() #獲取數據庫裏面所擁有BlogPost對象 return render_to_response('index.html',{'blog_list':blog_list}) #ender_to_response()返回一個頁面(index.html),順帶把數據庫中查詢出來的全部博客內容(blog_list)也一併返回。
from app1 import views urlpatterns = [ url(r'^admin/', admin.site.urls), url(r'^blog/',views.blog), ]
templates目錄裏建立base.html的模板:post
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <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> </head> <body> <h1>孫其虎blog</h1> <h3>人生苦短,我學python</h3> {% block content %} {% endblock %} </body> </html>
修改index.html模板,讓它引用base.html模板和它的「content」塊。url
{% extends 'base.html' %} {# 導入母板 #} <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> {% block content %} {# content 內容,blog_list傳過來的數據 #} {% for post in blog_list %} <h2>{{ post.title }}</h2> <p>{{ post.timestamp }}</p> <p>{{ post.body }}</p> {% endfor %} {% endblock %} </body> </html>