トップ 一覧 ping 検索 ヘルプ 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を編集
*sqliteの場合
,設定項目,内容
,DATABASE_ENGINE,'sqlite3'
,DATABASE_NAME,絶対パス名。存在しない場合、初回自動的に作成される。

!syncdbの実行
 # python manage.py syncdb

!!アプリケーション
!作成
# python manage.py startapp {app_name}
 # 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 %}