使用django開發最簡單部落格程式

來源:互聯網
上載者:User
1).下載django,我是在mandriva平台上實驗的,可以通過urpmi python-django來>進行下載安裝,不過版本有些老,本例使用tar.gz包進行安裝。
        2).實驗平台: mandriva 2008 + sqlite3 + django1.0
        3).安裝:下載後,運行python setup.py install進行安裝,不過,說是/usr/lib/python2.5/site-package/config檔案未找到,最後我用了變通的辦法,將解壓的Django1.0下面的django目錄複寫至/usr/lib/python2.5/site-package/下面,然後,建立django-admin.py至/usr/local/bin的連結,然後使該程式可執行。
        4).建立project:django-admin.py startproject demo
        5).修改demo/settings.py檔案中的資料庫連結項:
        DATABASE_ENGINE = 'sqlite3'
        DATABASE_NAME = 'demo.db'

        ...
    
        INSTALLED_APPS = {
        'django.contrib.admin',
        ...
        'demo.blog',
        }
        6).編輯demo/blog/models.py:
 fromm django.db import models

# Create your models here.
class Category(models.Model):
        name = models.CharField(max_length=32)
        def __unicode__(self):
                return self.name
        class Admin:
                pass

class Article(models.Model):
        title         = models.CharField(max_length=64)
        published_at  = models.DateTimeField('date published')
        content       = models.TextField()
        category      = models.ForeignKey(Category)
        def __unicode__(self):
                return self.title
        class Admin:
                pass
        7).根據models模組,建立資料庫及表格:
        python manage.py sql blog
        8).同步資料庫:
        python manage.py syncdb
        9).修改demo/urls.py

from django.conf.urls.defaults import *

# Uncomment the next two lines to enable the admin:
from django.contrib import admin
admin.autodiscover()

urlpatterns = patterns('',
    # Example:
    # (r'^demo/', include('demo.foo.urls')),

    # Uncomment the admin/doc line below and add 'django.contrib.admindocs'
    # to INSTALLED_APPS to enable admin documentation:
    # (r'^admin/doc/', include('django.contrib.admindocs.urls')),

    # Uncomment the next line to enable the admin:
    (r'^admin/(.*)', admin.site.root),
    (r'^blog/', include('demo.blog.urls')),
)
        10).在demo/blog下建立urls.py,加入:
from django.conf.urls.defaults import *
from demo.blog.models import Article

info_dict = {'queryset': Article.objects.all(),}

urlpatterns = patterns('',
    (r'^$', 'django.views.generic.list_detail.object_list', info_dict),
    (r'^(?P<object_id>/d+)/$', 'django.views.generic.list_detail.object_detail', info_dict),
)
        11).在demo/blog/下建立admin.py,加入:
from demo.blog.models import Article
from demo.blog.models import Category
from django.contrib import admin

admin.site.register(Category)
admin.site.register(Article)
        12).啟動伺服器進入後台:
        >>python manage.py runserver
        >>登入地址: http://localhost:8000/admin
        >>在裡面可以看到article和category,進入article可以寫新文章了。
        13).在/usr/lib/python2.5/site-packages/django/contrib/admin/templates/blog建立article_list.html
{% if object_list %}
        {% for article in object_list %}
                <div class="article">
                        <div class="title"><a href="/blog/{{ article.id }}">{{ article.title }}</a></div>
                </div>
        {% endfor %}
{% else %}
        <p>sorry!</p>
{% endif %}

        14).在同上目錄下建立article_detail.html檔案:
<div class="article">
        <div class="title">title: {{ object.title }}</div>
        <div class="pub_date">{{ object.published_at }}</div>
        <div class="content">{{ object.content }}</div>
        <div class="category">published: {{ object.category.name }}</div>
</div>
<p><a href="/admin/blog/article/{{ object.id }}">Modify</a></p>
<p><a href="/blog">BACK</a></p>

        15)瀏覽blog: http://localhost:8000/blog/

        16).在測試中途中出現的問題:
        >>demo/urls.py檔案中提示出錯;
        >>demo/blog/admin.py檔案需要建立,不然的話顯示不出來article;
        >>article_list.html及article_detail.html要加入至上面提到的目錄,否則的話
如果放至demo/blog目錄下面會提示找不到,不過應該有辦法配 置的,只是尚未找到。
        17).簡單說到這些吧,現在最簡單的blog系統就搞定了,參考了http://blog.ericsk.org/archives/815
        18).django之前老早看過,不過今天才有一種頓悟的感覺。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.