Python+djangoで10分以内にblogを作成


詳細
Ruby on Railsの公式サイトで15分でweblogのscreencastを作成し、確かにdemoがRoR開発を迅速にした.でも、あまり迷信してはいけません.ローリーだけがこんなに速くて、最近少し时间を割いてdjangoのものを见てから、私もまず「10分でblogに挑戦したい」と思っています.(screen castを作るソフトはまだあまり使えないので、文字でしか紹介できません.)この文章は構築過程を説明するだけなので、django環境のインストール設定は紹介しませんので、ご了承ください.
Python言語ベースのWeb開発フレームワーク(framework)であるdjangoについて少し紹介します.
プロジェクトおよびappの作成
djangoの環境では、1つのプロジェクトに複数のアプリケーションがあり、同じプロジェクトの下のアプリケーションで同じ環境設定を共有することができます.まずコマンド列の下でdjango-adminを実行します.pyを使用してプロジェクトを作成します.
まずdemo/settingsを変更します.pyの設定は、sqlite 3をリポジトリのエンジンとして使用し、demoを生成するように設定されています.dbのファイルはリポジトリとして、タイムゾーンやtemplateディレクトリなどを設定します.
DATABASE_ENGINE = 'sqlite3'
DATABASE_NAME = 'demo.db'
...
TIME_ZONE='Asia/Taipei'
LANGUAGE_CODE='zh-tw'
...
TEMPLATE_DIRS = (
...
'.',
)

INSTALLED_APPS = (
'django.contrib.admin',
..
'demo.blog', #
)

次にdemoディレクトリの下にblogのappを作成します.
そしてdemo/blog/models.pyに必要なモデル(DB Table):
from django.db import models

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

djangoが生成したSQL DDLを見て、確定したらsyncdbでリポジトリテーブルを作成します.
管理者アカウントを作成するように要求されます.これは、後で管理インタフェースに文章を発表するために使用されるアカウントです.これらの動作を完了したら、demo/urlsを変更します.pyの内容:
from django.conf.urls.defaults import *

urlpatterns = patterns('',
(r'^blog/', include('demo.blog.urls')),
(r'^admin/', include('django.contrib.admin.urls')),
)

まずdemo/blog/の下でurlsを確立する.pyのファイルをコマンド列の下にpython manageと入力します.py runserver、ブラウザ入力URLを開きますhttp://localhost:8000/admin/もうすぐバックグラウンドのインターフェースが使えますよ!
文章を発表するときのインタフェースはとても使いやすいですね.
登録するとCategoryやArticalの内容を直接作成することができますが、これは既成の文章発表のインターフェースではないでしょうか.最初の操作は今まで5分を超えないでしょう.
記事リスト
文章を発表してから、もちろん閲覧できるので、すぐにdemo/blog/urlsを開きます.pyこのファイルに、次のcodeを貼ります.
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\d+)/$', 'django.views.generic.list_detail.object_detail', info_dict),
)

そしてdemo/blog/articleをそれぞれ確立しますlist.htmlおよびdemo/blog/article_detail.htmlこの2つのファイルは、それぞれ文章のリストと文章の内容を表しています.
article_list.html:
{% if object_list %}
{% for article in object_list %}



{% endfor %}
{% else %}


{% endif %}

article_detail.html:

: {{ object.title }}

{{ object.published_at }}

{{ object.content }}

: {{ object.category.name }}



BACK


このようにすぐに1つのとても似ているblogを作り出して(ただ伝言XDを残すことができません)、ウェブサイトはhttp://localhost:8000/blog/.
速いでしょう.もちろん私は美工を無視して、客制化の楽屋もありませんが、Web開発はますます恐ろしくなりました....このような開発フレームワークがますます多くなるのを恐れて、ボスはすべてホームページを書くのが何もないと思っています!
特筆すべきは、djangoはrunserverの後、プログラムコードcompileをpycファイルにして、効率がいいように見えますが、私がもっとよく游んでから実験をするかもしれません.
from http://blog.ericsk.org/archives/815