blog (後續更新)

 

 

設計Model(設計數據庫)

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)也一併返回。

  

建立blog的URL模式    

urls.py   

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>

  

 

相關文章
相關標籤/搜索