その1インストール
はじめての Django アプリ作成、その 1 | Django ドキュメント | Django
プロジェクト
django-admin startproject mysite
アプリ作成
python manage.py startapp polls
ルートの調整
プロジェクトフォルダのurls.pyにアプリのベースurlを追加。
アプリフォルダにurls.pyを新規作成作成。各アクションを追加し、それに応じてviews.pyにも画面を追加。
// 試しにルートにindexアクションを作成 from django.http import HttpResponse def index(request): return HttpResponse("Hello, world. You're at the polls index.")
settings.pyの調整
LANGUAGE_CODE = 'ja'
TIME_ZONE = 'Asia/Tokyo'
INSTALLED_APPSに余計な機能があるのならmigrateする前に消すのが良い。
動作確認
python manage.py runserver
その2 データベース等
DB接続
データベースの準備をする。settings.pyにデータベース情報を記載する。
管理テーブル
python manage.py migrateで管理テーブルを作る。
モデルの作成
モデルはmodels.Modelを継承する。
アプリの追加
settings.pyのINSTALLED_APPSに作成したアプリを追加する。
設定する名前はapps.pyのConfigを参照。
django-admin と manage.pyについて
APIでデータベース操作をする
python manage.py shell
シェルでdjangoのデータベースAPIを試すことができる。
from polls.models import Choice, Question Question.objects.all() q = Question(text="aaaa") q.save() Question.objects.get(id=1) Question.objects.filter(id=1) Question.objects.filter(text__startswith="aaa") Question.objects.get(pub_date__year=current_year)
アンダースコア2つでフィールドとメソッドなど結合する。
Question.objects.get(pk=1)
リレーションされてるモデルの取得(1:nのn)
q.choice_set.all() q.choice_set.create() q.choice_set.count()
逆もできる
c.question c.delete()
DjangoAdmin
最低限の管理サイトをモデルを元に自動で作ってくれる。
サイト管理者向けの機能。
管理者ユーザを作成する。
python manage.py createsuperuser admin.site.register(Question)
まとめ
urls.pyが自動で作成されないのが不親切。
railsに比べてフォルダ構成のかっちり感は無いが、複数のアプリをプラッガブルで作成できること、管理サイトが簡単に用意できることが便利。