Django learning
Upcoming SlideShare
Loading in...5
×
 

Django learning

on

  • 1,791 views

 

Statistics

Views

Total Views
1,791
Views on SlideShare
1,781
Embed Views
10

Actions

Likes
7
Downloads
16
Comments
0

1 Embed 10

https://twitter.com 10

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Django learning Django learning Presentation Transcript

  • Django基礎 IT寺子屋 紗音寺 ハンズオン #django_learning
  • おまえだれよ @jbking django-ja, pylons-ja Djangoは0.96の頃くらいから
  • アンケート • WEB系の人 • PHPでコードを書いたことのある人 • Railsでコードを書いたことのある人 • Pythonでコードを書いたことのある人 • Pythonを仕事で使っている人 • Djangoを知ってる人 • Djangoを使ったことのある人 • Djangoを仕事で使っている人 今回の対象
  • タイムスケジュール • 13:00 〜 イントロダクション • 13:30 〜 ハンズオン Part 1 • 14:30 〜 ハンズオン Part 2 • 15:00 〜 ハッカソン
  • Djangoの基礎 Welcome to the learning Django the hard way.
  • • WEBアプリケーションフレームワーク • メガフレームワーク • だいたい何でも揃ってる • フレームワークから外れると... • Railsのようなもの • admin • MTVパターン Djangoの基礎
  • MTV? Controller Model View Template Model View !=
  • そうなの?
  • MTV? Template Model View Controller
  • MTV? Template Model View Controller Model Form Filter Tag Admin Model Admin
  • ?????
  • Controller • URLディスパッチ • Railsとかと同じ • データを表現 • ドメインロジックもここ Model • モデルを操作 • 表示向けデータ作成 View • 表示向けデータの埋め込み • だいたいの場合HTML Template
  • MTV? Template Model View Controller
  • • フォームを出力 • 入力値の検査 MTV? Template Model View Model Form
  • MTV? Template Model View Controller Model Form
  • Template Filter Tag • 表示用データの調整 MTV?
  • MTV? Template Model View Controller Model Form Filter Tag
  • Model Admin Model Admin • モデルの管理用アプリケーション • キラーアプリ MTV?
  • MTV? Template Model View Controller Model Form Filter Tag Admin Model Admin
  • Question?
  • ハンズオン Part 1 つくってみよう
  •  インストールしてますか?  Nitrous.io https://www.nitrous.io/join/hea6JcleeFc  ドキュメントを読みましょう  https://docs.djangoproject.com/en/1.5/  http://docs.djangoproject.jp/ja/latest/  コード  https://github.com/jbking/django_learning.git 下準備
  • プロジェクト django-admin.py startproject ${project_name} cd ${project_name} chmod +x manage.py ./manage.py help
  • Adminサイト open ${project_name}/urls.py  # from django.contrib import admin  # admin.autodiscover()  # url(r'^admin/', include(admin.site.urls)), open ${project_name}/settings.py  'ENGINE': 'django.db.backends.sqlite3’  'NAME': 'my.db',  # 'django.contrib.admin’,
  • Adminサイト ./manage.py syncdb ./manage.py runserver
  • 蛇足  IPython or bpython  django_extensions  django-debug-toolbar
  • アプリ  ./manage.py startapp ${app_name}  open ${project_name}/settings.py  INSTALLED_APPS
  • モデル  open ${app_name}/models.py  Postモデルの作成  ./manage.py syncdb
  • Adminサイトへ登録  open ${app_name}/admin.py  PostAdminの作成  adminサイトへ登録 admin.site.register(Post, PostAdmin)
  • シェルで操作  ./manage.py shell  課題1 Postオブジェクトを取り出す  課題2 題名(subject)を変えて保存(save)する
  • 表示する  ルーティング作成  open ${app_name}/urls.py  list_posts  url(正規表現パターン, ビュー, *args, **kwargs)  ルーティングの登録  open ${project_name}/urls.py  from ${app_name} import urls.py  url(r’’, include(urls)),
  • 表示する  ビューの作成  open ${app_name}/views.py  list_posts  {'posts': Post.objects.order_by('updated_at').reverse().all()}  テンプレートの作成  open ${app_name}/templates/${app_name}/list_posts.html  {% for post in posts %}  {{ post.subject }}
  • モデルを作成する  発展1 Postを登録できるようにする  request.method == ‘POST’  csrf  発展2 Formを使って入力値をチェックする  発展3 ModelFormを使ってみる  発展4 CreateViewを使ってビューを書き換える
  • ハンズオン Part 2 リレーション
  • リレーション  Commentモデルの作成  open ${app_name}/models.py  models.ForeignKey(...)  ./manage.py syncdb  adminサイトでオブジェクト追加  シェルで確認  comment1.post  post1.comment_set.all()  ビューとテンプレートで表示
  • フィルタとタグ  発展1 フィルタとタグを使ってデータの表示を調整 する  発展2 {% url ... %}でオブジェクトを表示するビュー へのリンクを埋め込む  発展3 many-2-manyリレーションなモデルを作って 表示をする
  • まとめ 1. startproject 2. startapp 3. モデル作って確認 4. ビューとかで表示 5. 以下3と4の繰り返し
  • Appendix 仕事で使えるようになるには
  • テスト  django.test.TestCase  django.test.client.Client  django.test.LiveServerTestCase  settings.pyの継承
  • 運用する  WSGIランナー  mod_wsgi  pywsgi  gunicorn  tornado  マイグレーション  South  非同期処理  Celery
  • 高機能なアプリケーション  全文検索  Haystack  GEO  GeoDjango  Admin改造  Grappelli  CMS  django-cms  mezzanine  APIサーバ  request.is_ajax()  認証/認可  Authentication backends  マスター/スレーブ  DB Router  Multi databases
  • コミュニティなど  Django-ja http://djangoproject.jp/  Python mini Hack-a-thon http://connpass.com/series/14/  PyCon APAC http://apac-2013.pycon.jp/ja/
  • できること、やりたいことが見えてきましたか?
  • Hack-a-thon Let’s hack!