Django實例----簡單的博客

這個文檔是參考一個網絡上的實例,裏面添加了自己的一些分析和補充。


建立工程,項目

$ django-admin startproject my_project
$ python manage.py startapp eblog

創建 應用的 models

修改 eblog/models.py, 

1 在數據庫裏建立一個2維表格。

2 修改admin頁面的顯示列表。

from django.db import models

# Create your models here.
from django.contrib import admin

class BlogPost(models.Model):
    title = models.CharField(max_length = 150)
    content = models.TextField()

class BlogPostAdmin(admin.ModelAdmin):
    list_display = ('title' , 'content' )

admin.site.register(BlogPost, BlogPostAdmin)

創建一個視圖文件

修改eblog/views.py。
1 使用render()方式進行http的反饋。
2 render()動態填寫archive.html模版

from django.template import loader,Context
from django.http import HttpResponse
from eblog.models import BlogPost

def archive (request):
    posts = BlogPost.objects.all()
    t = loader.get_template('archive.html')
    c = Context ({'posts':posts})
    return HttpResponse(t.render(c))

配置工程

my_project/settings.py

1 在工程裏註冊APP

2  配置網頁模版的路徑

INSTALLED_APPS = [
    'eblog',

TEMPLATES = [
    {
        'DIRS': [os.path.join(BASE_DIR,'templates'),],

配置鏈接反饋

my_project/urls.py
from django.conf.urls import url
from django.contrib import admin

admin.autodiscover()
from eblog.views import archive

urlpatterns = [
    url(r'^admin/', admin.site.urls),
    url(r'^eblog/', archive),
]

網頁模版代碼:

archive.html

{% extends "base.html" %}
{% block content %}
{% for post in posts %}
<h1> {{post.title}}</h1>
<p> {{ post.content }} </p>
{% endfor %}
{% endblock %}

base.html

<html>
    <style type="text/css">
        body {color:#edf; 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><center> Hong 's Blog </center> </h1>
        {% block content %}
        {% endblock %}
    </body>
</html>

測試





.
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章