參考自:django 快速搭建blog http://www.cnblogs.com/fnng/p/3737964.htmlcss
1.建立工程: html
django-admin.py startproject MySite
manage.py ----- Django項目裏面的工具,經過它能夠調用django shell和數據庫等。python
settings.py ---- 包含了項目的默認設置,包括數據庫信息,調試標誌以及其餘一些工做的變量。shell
urls.py ----- 負責把URL模式映射到應用程序。數據庫
2.運行服務:django
python manage.py mysite
3.建立blog應用: 服務器
python manage.py startapp blog
4.設計你的Model:app
class BlogPost(models.Model): #建立博客類,包含博客標題,博客正文,博客建立時間 title=models.CharField(max_length=150) body=models.TextField() timestamp=models.DateTimeField()
建立號Model後,要設置數據庫,python自帶SQLite函數
5.同步數據庫工具
python manage.py syncdb
6.在Setting添加一個Blog應用
7.將Model添加到admin後臺:
from django.contrib import admin from models import BlogPost # Register your models here. admin.site.register(BlogPost)
8.再次初始化數據庫
9.啓動服務
------------------------------------------
10 設置 admin的管理界面(決定每一個表裏面顯示的內容,以列表形式展現)
#設置admin的BlogsPost界面 class BlogPostAdmin(admin.ModelAdmin): list_display = ('title','timestamp') admin.site.register(BlogPost,BlogPostAdmin)
11.建立模板
在blog的templates目錄(mysite/blog/templates)下面建立html文件
{% for post in posts %} <h2>{{ post.title }}</h2> <p>{{ post.timestamp }}</p> <p>{{ post.body }}</p> {% endfor %}
12.設置模版路徑,在setting文件底部添加模版路徑
這裏一直出錯由於我TEMPLATE_DIRS沒有大寫,以前出錯由於沒有在setting底部添加模版路徑
#template
TEMPLATE_DIRS=( '/home/pxxxy/PycharmProjects/DDjango/MySite/templates' )
13.建立視圖函數
把模板添加到視圖
# Create your views here. def archive(request): posts=BlogPost.objects.all() #獲取數據庫裏面全部用於普BlogPost對象 t=loader.get_template("archive.html") #加載模版 c=Context({'post':posts})#模版的渲染的數據是一個有字典類,這裏是一對鍵值對 return HttpResponse(t.render(c))
14.建立Blog的URL模式
urlpatterns = patterns('', # Examples: # url(r'^$', 'MySite.views.home', name='home'), # url(r'^blog/', include('blog.urls')), url(r'^admin/', include(admin.site.urls)), url(r'^mysite/', archive) )
15.再次啓動服務器訪問應用就能夠
16. 添加樣式
建立基礎模板,在templates目錄下建立base.html模版
<!DOCTYPE html> <html> <style type="text/css"> body{color:#efd; background:#435; padding:0 5em; margin:0} h1{padding:2em lem; background:#675} h2{color:#bf8; border-top:lpx dotted #fff; margin-top:2em} p{margin: lem 0} </style> <body> <h1>梓聽</h1> <h3>Yoooohooo!</h3> {% block content %} {% endblock %} </body> </html>
修改archive.html模版,讓它引用base.html 模版和它的content塊
{% extends "base.html" %} {% block content %} {% for post in posts %} <h2>{{ post.title }}</h2> <p>{{ post.timestamp }}</p> <p>{{ post.body }}</p> {% endfor %} {% endblock %}
再次刷新頁面