「Django 簡単スタート」の版間の差分
ナビゲーションに移動
検索に移動
| 1行目: | 1行目: | ||
| − | ==Django 簡単スタート== | + | ==[[Django 簡単スタート]]== |
[[Django]] | [[Python]] | | [[Django]] | [[Python]] | | ||
*{ } は特定の値に置き換える | *{ } は特定の値に置き換える | ||
| 16行目: | 16行目: | ||
====設定==== | ====設定==== | ||
=====setting.pyを編集===== | =====setting.pyを編集===== | ||
| − | * | + | *[[sqlite]]の場合 |
{|class="wikitable" | {|class="wikitable" | ||
!設定項目 | !設定項目 | ||
| 22行目: | 22行目: | ||
|- | |- | ||
|DATABASE_ENGINE | |DATABASE_ENGINE | ||
| − | |' | + | |'[[sqlite]]3' |
|- | |- | ||
|DATABASE_NAME | |DATABASE_NAME | ||
| 69行目: | 69行目: | ||
===View=== | ===View=== | ||
| − | ==== | + | ====U[[R]]L==== |
| − | ===== | + | =====U[[R]]Lパターン(タプル)===== |
(正規表現, Python コールバック関数 [, オプションのディクショナリ]) | (正規表現, Python コールバック関数 [, オプションのディクショナリ]) | ||
=====urls.py===== | =====urls.py===== | ||
urlpatterns = patterns('', | urlpatterns = patterns('', | ||
| − | (r'^{app_name}/$', '{project_name}.{app_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 | + | 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 | + | return Http[[R]]esponse(t.render(c)) |
=====テンプレート {page_na,e}.html===== | =====テンプレート {page_na,e}.html===== | ||
2020年2月16日 (日) 04:24時点における最新版
Django 簡単スタート
- { } は特定の値に置き換える
プロジェクト
作成
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}
モデル
作成
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 %}
© 2006 矢木浩人