トップ 差分 一覧 ping ソース 検索 ヘルプ PDF RSS ログイン

Django 簡単スタート



目次



記事一覧

キーワード

Django 簡単スタート

[Django][Python]

  • { } は特定の値に置き換える

 プロジェクト

作成

django-admin.py
# django-admin.py startproject {project_name}

 開発サーバー

起動

manage.py runserver
# cd {project_name}
# python manage.py runserver

 データベース

設定

setting.pyを編集
設定項目 内容
DATABASE_ENGINE 'sqlite3'
DATABASE_NAME 絶対パス名。存在しない場合、初回自動的に作成される。

syncdbの実行

# python manage.py syncdb

 アプリケーション

作成

# python manage.py startapp {app_name}

モデル

作成
from django.db import models
class Hoge(models.Model):
       foo = models.CharField(max_length=10)
パスを通す
  • settings.py
INSTALLED_APPS = (
            :
    '{project_name}.{app_name}'
)
テーブルの生成
# python manage.py syncdb

Admin サイト

パスを通す
  • settings.py
INSTALLED_APPS = (
            :
    'django.contrib.admin',
)
  • urls.py

# Uncomment the next two lines to enable the admin:

from django.contrib import admin   # <- コメントはずす
admin.autodiscover()               # <- コメントはずす

モデルを追加
  • admin.py ファイルを{project_name}/{app_name}ディレクトリに追加
from mysite.{app_name}.models import {model_class_name}
from django.contrib import admin
 
admin.site.register({model_class_name})

 View

URL

URLパターン(タプル)
(正規表現, Python コールバック関数 [, オプションのディクショナリ])
urls.py
urlpatterns = patterns('',
    (r'^{app_name}/$', '{project_name}.{app_name}.views.{function_name}'),
)

シンプルビュー

ビュー
from django.template import Context, loader
from django.http import HttpResponse
from {project_name}.{app_name}.models import {model_class_name}

def index(request):
        obj_list = {model_class_name}.objects.all()
        template = loader.get_template('{app_name}/{page_na,e}.html')
        c = Context({
             'items': obj_list
        })        
        return HttpResponse(t.render(c))
        
テンプレート {page_na,e}.html
{% if items %}
  <ul>
  {% for item in items %}
    <li>{{ items.name }}</li>
  {% endfor %}
  </ul>
{% else %}
  <p>No polls are available.</p>
{% endif %}



YAGI Hiroto (piroto@a-net.email.ne.jp)
twitter http://twitter.com/pppiroto

Copyright© 矢木 浩人 All Rights Reserved.