Contenu connexe
Similaire à Djangoフレームワークの紹介 (20)
Plus de Shinya Okano (13)
Djangoフレームワークの紹介
- 10. 管理画面
ユーザー認証
開発用サーバー
ORM
キャッシュシステム
テンプレートエンジン
GIS
セッション
管理コマンド
データベースマイグレーション
ユニットテストフレームワーク
プロジェクトテンプレート
フォームウィジェット
URLディスパッチャー
再利用可能なアプリケーション
ストレージシステム
セキュリティミドルウェア
フラッシュメッセージ配信
サイトマップフレームワーク
静的ファイル配信
国際化
メール送信フレームワーク
プロジェクト設定
Djangoの機能
- 11. 管理画面
ユーザー認証
開発用サーバー
ORM
キャッシュシステム
テンプレートエンジン
GIS
セッション
管理コマンド
データベースマイグレーション
ユニットテストフレームワーク
プロジェクトテンプレート
フォームウィジェット
URLディスパッチャー
再利用可能なアプリケーション
ストレージシステム
セキュリティミドルウェア
フラッシュメッセージ配信
サイトマップフレームワーク
静的ファイル配信
国際化
メール送信フレームワーク
プロジェクト設定
Djangoの機能(デモで使用)
- 31. データベース設定
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
}
}
# sqlite3 以外に、postgres, mysql, oracle を指定可能
# サードパーティでSQLServerやFirebirdなども使える
myproject/settings.py
- 32. データベース設定
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
}
}
# sqlite3 以外に、postgres, mysql, oracle を指定可能
# サードパーティでSQLServerやFirebirdなども使える
myproject/settings.py
- 36. モデルの作成
from django.db import models
class Todo(models.Model):
name = models.CharField("名称", max_length=50)
done = models.BooleanField("完了")
created_at = models.DateTimeField(
"作成日時",
auto_now_add=True)
def __str__(self):
return self.name
todo/models.py
- 38. views.py
from django.shortcuts import render, redirect, get_object_or_404
from .models import Todo
from .forms import TodoForm
def index(request):
# GETパラメータに ?all=1 と指定された場合は全件を表示
if request.GET.get('all') == '1':
queryset = Todo.objects.all()
else:
# 特に指定がない場合は未完了のレコードのみ
queryset = Todo.objects.filter(done=False)
# 作成日時で降順にソート
todo_list = queryset.order_by('-created_at')
return render(request, 'index.html', {'todo_list': todo_list})
todo/views.py
- 39. urls.py
from django.conf.urls import url
from . import views
urlpatterns = [
url(r'^$', views.index, name='index'), # 一覧表示
url(r'^add$', views.add, name='add'), # 追加
url(r'^(?P<pk>¥d+)/edit$', views.edit, name='edit'),
# 編集
url(r'^(?P<pk>¥d+)/done$', views.done, name='done'),
# 完了
]
todo/urls.py
- 42. Djangoの安定性
安定してます
Djangoはフルスタックフレームワーク
サードパーティのライブラリへの依存が無い
依存ライブラリによって不安定になることはない
十分にテストされている
フレームワークの自動テスト
http://djangoci.com/
APIの互換性ポリシー
DeprecationWarningが出るようになってから1つ次のバー
ジョンまでは維持される
https://docs.djangoproject.com/ja/1.9/misc/api-
stability/
- 44. こんな使い方も…
manage.py inspectdb
データベースからモデルクラスのコードを生成
django.contrib.admin
モデルクラスを登録して管理画面作成
→→簡易データベース編集アプリを作れる!
データベース
Pythonコード
(Djangoモデルクラス) Django管理画面
inspectdb 管理画面へ登録