| ページ一覧 | ブログ | twitter |  書式 | 書式(表) |

MyMemoWiki

「Django 簡単スタート」の版間の差分

提供: MyMemoWiki
ナビゲーションに移動 検索に移動
(ページの作成:「==Django 簡単スタート== [Django][Python] *{ } は特定の値に置き換える ===プロジェクト=== ====作成==== =====django-admin.py===== # django-ad…」)
 
 
(同じ利用者による、間の3版が非表示)
1行目: 1行目:
==Django 簡単スタート==
+
==[[Django 簡単スタート]]==
[Django][Python]
+
[[Django]] | [[Python]] |
 
*{ } は特定の値に置き換える
 
*{ } は特定の値に置き換える
 
===プロジェクト===
 
===プロジェクト===
16行目: 16行目:
 
====設定====
 
====設定====
 
=====setting.pyを編集=====
 
=====setting.pyを編集=====
*sqliteの場合
+
*[[sqlite]]の場合
 
{|class="wikitable"
 
{|class="wikitable"
 
!設定項目
 
!設定項目
22行目: 22行目:
 
|-
 
|-
 
|DATABASE_ENGINE
 
|DATABASE_ENGINE
|'sqlite3'
+
|'[[sqlite]]3'
 
|-
 
|-
 
|DATABASE_NAME
 
|DATABASE_NAME
58行目: 58行目:
 
*urls.py
 
*urls.py
 
# Uncomment the next two lines to enable the admin:
 
# Uncomment the next two lines to enable the admin:
  from django.contrib import admin  # <- コメントはずす
+
  from django.contrib import admin  # &lt;- コメントはずす
  admin.autodiscover()              # <- コメントはずす
+
  admin.autodiscover()              # &lt;- コメントはずす
 
   
 
   
 
=====モデルを追加=====
 
=====モデルを追加=====
69行目: 69行目:
  
 
===View===
 
===View===
====URL====
+
====U[[R]]L====
=====URLパターン(タプル)=====
+
=====U[[R]]Lパターン(タプル)=====
 
  (正規表現, Python コールバック関数 [, オプションのディクショナリ])
 
  (正規表現, Python コールバック関数 [, オプションのディクショナリ])
 
=====urls.py=====
 
=====urls.py=====
 
  urlpatterns = patterns('',
 
  urlpatterns = patterns('',
     (r'^{app_name}/$', '{project_name}.{app_name}.views.{function_name}'),
+
     (r'^{app_name}/$', '{project_name}.{app_name}.[[vi]]ews.{function_name}'),
 
  )
 
  )
  
80行目: 80行目:
 
=====ビュー=====
 
=====ビュー=====
 
  from django.template import Context, loader
 
  from django.template import Context, loader
  from django.http import HttpResponse
+
  from django.http import Http[[R]]esponse
 
  from {project_name}.{app_name}.models import {model_class_name}
 
  from {project_name}.{app_name}.models import {model_class_name}
 
   
 
   
89行目: 89行目:
 
               'items': obj_list
 
               'items': obj_list
 
         })         
 
         })         
         return HttpResponse(t.render(c))
+
         return Http[[R]]esponse(t.render(c))
 
          
 
          
 
=====テンプレート {page_na,e}.html=====
 
=====テンプレート {page_na,e}.html=====
 
  {% if items %}
 
  {% if items %}
   <ul>
+
   &lt;ul&gt;
 
   {% for item in items %}
 
   {% for item in items %}
     <li>{{ items.name }}</li>
+
     &lt;li&gt;{{ items.name }}&lt;/li&gt;
 
   {% endfor %}
 
   {% endfor %}
   </ul>
+
   &lt;/ul&gt;
 
  {% else %}
 
  {% else %}
   <p>No polls are available.</p>
+
   &lt;p&gt;No polls are available.&lt;/p&gt;
 
  {% endif %}
 
  {% endif %}

2020年2月16日 (日) 04:24時点における最新版

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
  1. 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 %}