Django learning

  • 1,357 views
Uploaded on

 

More in: Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
1,357
On Slideshare
0
From Embeds
0
Number of Embeds
2

Actions

Shares
Downloads
17
Comments
0
Likes
8

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. Django基礎 IT寺子屋 紗音寺 ハンズオン #django_learning
  • 2. おまえだれよ @jbking django-ja, pylons-ja Djangoは0.96の頃くらいから
  • 3. アンケート • WEB系の人 • PHPでコードを書いたことのある人 • Railsでコードを書いたことのある人 • Pythonでコードを書いたことのある人 • Pythonを仕事で使っている人 • Djangoを知ってる人 • Djangoを使ったことのある人 • Djangoを仕事で使っている人 今回の対象
  • 4. タイムスケジュール • 13:00 〜 イントロダクション • 13:30 〜 ハンズオン Part 1 • 14:30 〜 ハンズオン Part 2 • 15:00 〜 ハッカソン
  • 5. Djangoの基礎 Welcome to the learning Django the hard way.
  • 6. • WEBアプリケーションフレームワーク • メガフレームワーク • だいたい何でも揃ってる • フレームワークから外れると... • Railsのようなもの • admin • MTVパターン Djangoの基礎
  • 7. MTV? Controller Model View Template Model View !=
  • 8. そうなの?
  • 9. MTV? Template Model View Controller
  • 10. MTV? Template Model View Controller Model Form Filter Tag Admin Model Admin
  • 11. ?????
  • 12. Controller • URLディスパッチ • Railsとかと同じ • データを表現 • ドメインロジックもここ Model • モデルを操作 • 表示向けデータ作成 View • 表示向けデータの埋め込み • だいたいの場合HTML Template
  • 13. MTV? Template Model View Controller
  • 14. • フォームを出力 • 入力値の検査 MTV? Template Model View Model Form
  • 15. MTV? Template Model View Controller Model Form
  • 16. Template Filter Tag • 表示用データの調整 MTV?
  • 17. MTV? Template Model View Controller Model Form Filter Tag
  • 18. Model Admin Model Admin • モデルの管理用アプリケーション • キラーアプリ MTV?
  • 19. MTV? Template Model View Controller Model Form Filter Tag Admin Model Admin
  • 20. Question?
  • 21. ハンズオン Part 1 つくってみよう
  • 22.  インストールしてますか?  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 下準備
  • 23. プロジェクト django-admin.py startproject ${project_name} cd ${project_name} chmod +x manage.py ./manage.py help
  • 24. 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’,
  • 25. Adminサイト ./manage.py syncdb ./manage.py runserver
  • 26. 蛇足  IPython or bpython  django_extensions  django-debug-toolbar
  • 27. アプリ  ./manage.py startapp ${app_name}  open ${project_name}/settings.py  INSTALLED_APPS
  • 28. モデル  open ${app_name}/models.py  Postモデルの作成  ./manage.py syncdb
  • 29. Adminサイトへ登録  open ${app_name}/admin.py  PostAdminの作成  adminサイトへ登録 admin.site.register(Post, PostAdmin)
  • 30. シェルで操作  ./manage.py shell  課題1 Postオブジェクトを取り出す  課題2 題名(subject)を変えて保存(save)する
  • 31. 表示する  ルーティング作成  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)),
  • 32. 表示する  ビューの作成  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 }}
  • 33. モデルを作成する  発展1 Postを登録できるようにする  request.method == ‘POST’  csrf  発展2 Formを使って入力値をチェックする  発展3 ModelFormを使ってみる  発展4 CreateViewを使ってビューを書き換える
  • 34. ハンズオン Part 2 リレーション
  • 35. リレーション  Commentモデルの作成  open ${app_name}/models.py  models.ForeignKey(...)  ./manage.py syncdb  adminサイトでオブジェクト追加  シェルで確認  comment1.post  post1.comment_set.all()  ビューとテンプレートで表示
  • 36. フィルタとタグ  発展1 フィルタとタグを使ってデータの表示を調整 する  発展2 {% url ... %}でオブジェクトを表示するビュー へのリンクを埋め込む  発展3 many-2-manyリレーションなモデルを作って 表示をする
  • 37. まとめ 1. startproject 2. startapp 3. モデル作って確認 4. ビューとかで表示 5. 以下3と4の繰り返し
  • 38. Appendix 仕事で使えるようになるには
  • 39. テスト  django.test.TestCase  django.test.client.Client  django.test.LiveServerTestCase  settings.pyの継承
  • 40. 運用する  WSGIランナー  mod_wsgi  pywsgi  gunicorn  tornado  マイグレーション  South  非同期処理  Celery
  • 41. 高機能なアプリケーション  全文検索  Haystack  GEO  GeoDjango  Admin改造  Grappelli  CMS  django-cms  mezzanine  APIサーバ  request.is_ajax()  認証/認可  Authentication backends  マスター/スレーブ  DB Router  Multi databases
  • 42. コミュニティなど  Django-ja http://djangoproject.jp/  Python mini Hack-a-thon http://connpass.com/series/14/  PyCon APAC http://apac-2013.pycon.jp/ja/
  • 43. できること、やりたいことが見えてきましたか?
  • 44. Hack-a-thon Let’s hack!