Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Djago_Fukuoka_2016

nwiizo
March 28, 2016
41

 Djago_Fukuoka_2016

nwiizo

March 28, 2016
Tweet

Transcript

  1. What Python ?? 数値演算 IPython:先進的なShell http://ipython.org/ Numpy: 強力な 数値配列 オブジェクトとそれらを操作する強力

    なルーチンを提供 http://www.numpy.org/ Scipy: 高レベルなデータ処理ルーチン, 最適化, 回帰, 補間等 http://www.scipy.org/ Matplotlib: 2次元可視化 http://matplotlib.sourceforge.net/ Mayavi: 3次元可視化 http://code.enthought.com/projects/mayavi/
  2. Python introduction エスケープシーケンス(オマケ) ¥改行 : バックスラッシュと改行が無視される ¥¥ : バックスラッシュ(¥) ¥'

    : シングルクォート(') ¥" : ダブルクォート(") ¥a : ベル(BEL) ¥b : バックスペース(BS) ¥f : フォームフィード(FF)
  3. Python introduction エスケープシーケンス(オマケ) ¥n : 改行(LF) ¥r : 復帰(CR) ¥t

    : タブ(TAB) ¥v : 垂直タブ(VT) ¥nnn : 8進表記文字(nは0~7) ¥xnn : 16進表記文字(nは0~f) ¥uxxxx : ユニコード文字xxxx (例: u"¥u3042") ¥U....xxxx : ユニコード文字xxxxxxxx (例: U"¥U00003042") ¥N{name} : Unicodeデータベース文字 (例: u"¥N{HIRAGANA LETTER A}")
  4. Python introduction •四則演算 a = 1 + 1 # 2

    s = 3 – 1 # 2 m = 3 * 2 # 6 d = 6 / 3 # 2.0
  5. Python introduction •インデント C/C++やPHP では文を { ... } で囲むことでブロック(複文)を 構成しますが、Python

    ではインデント(行頭の空白文字の 数)が重要な意味を持ち、同じ数の空白でインデントされた 文がブロックとみなされます。
  6. Python introduction •インデント a = 3 if a == 5:

    print "AAA" # if文の対象 print "BBB" # if文の対象 print "CCC" # if文の対象ではない
  7. Python introduction •リスト a = [10, 20, 30, 40] a[0:2]

    # [10,20,30] a[0:-1] # [10,20,30] a[0::2] #[10,30]
  8. Python introduction •制御構文 if num > 10: print “大きい" elif

    num == 10: print “等価" else: print “小さい"
  9. Python introduction str = 'ABC' try: c = str[5] except

    IOError: print 'IOError‘ except IndexError: print 'IndexError' except: print 'Unknown' else: print 'Other' finally: print 'Finally'
  10. What is Web Application Framework • 動的な ウェブサイト、Webアプリケーション、Webサービスの開 発をサポートするために設計されたアプリケーションフレーム ワークである。

    • フレームワークの目的は、Web開発で用いられる共通した作業 に伴う労力を軽減することである。 • たとえば、多数のフレームワークがデータベースへのアクセス のためのライブラリや、テンプレートエンジン、セッション管理を 提供し、コードの再利用を促進させるものもある。 その他のフレームワーク:Flask,Pyramid,Bottle,Tornado Ruby on Rails
  11. リクエスト処理に関するフロー図 URLディスパッチャ ビュー モデル テンプレート システム キャッシュシステム 管理 インターフェース プロジェクト設定

    ファイル プロジェクト管理用 スクリプト Django管理用 スクリプト アプリケーション C キャッシュ RDB プロジェクト
  12. DATABASES = { 'default': { 'ENGINE': 'django.db.backends.sqlite3', 'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),

    } } プロジェクトの作成 mysite/settings.py データベースの設定
  13. monkey ============ 年齢 age 性別 sex 種族 type 機嫌 mood

    どこのグループに所属か w_group プロジェクトの作成 猿をモデルにしたいときには(プロパティ)
  14. monkey ============ 木に登る Climb_a_tree() 引っ掻く scratch() 喧嘩をする fight() 食べる feed(food)

    プロジェクトの作成 猿をモデルにしたいときには(アクション)
  15. リクエスト処理に関するフロー図 URLディスパッチャ ビュー モデル テンプレート システム キャッシュシステム 管理 インターフェース プロジェクト設定

    ファイル プロジェクト管理用 スクリプト Django管理用 スクリプト アプリケーション C キャッシュ RDB プロジェクト
  16. プロパティ(状態)の定義 title text、created_date published_date author • models.CharField - テキスト数を定義するフィールド •

    models.TextField - 制限無しの長いテキスト用 • models.DateTimeField - 日付と時間のフィールド • models.ForeignKey - これは他のモデルへのリンク モデルの作成
  17. リクエスト処理に関するフロー図 URLディスパッチャ ビュー モデル テンプレート システム キャッシュシステム 管理 インターフェース プロジェクト設定

    ファイル プロジェクト管理用 スクリプト Django管理用 スクリプト アプリケーション C キャッシュ RDB プロジェクト
  18. URLに関すること ・書き方 from django.conf.urls import include, url urlpatterns = [

    url(r‘URL名/’, include(呼び出したいモジュール)), ] mysite/urls.py ファイル
  19. URLに関すること from django.conf.urls import include, url from django.contrib import admin

    urlpatterns = [ url(r'^admin/', include(admin.site.urls)), url(r'', include('blog.urls')), ] mysite/urls.py ファイル
  20. URLに関すること from django.conf.urls import include, url from . import views

    urlpatterns = [ url(r'^$', views.post_list), ] blog/urls.py ファイル
  21. リクエスト処理に関するフロー図 URLディスパッチャ ビュー モデル テンプレート システム キャッシュシステム 管理 インターフェース プロジェクト設定

    ファイル プロジェクト管理用 スクリプト Django管理用 スクリプト アプリケーション C キャッシュ RDB プロジェクト
  22. viewsに関すること from django.shortcuts import render # Create your views here.

    def post_list(request): return render(request, 'blog/post_list.html', {}) blog/views.py ファイル
  23. HTMLに関すること HTML は "HyperText Markup Language"の略で す。 HyperTextとは、テキストなどをクリックすると 別のページに繋がるハイパーリンクが使えるとい うことです。Markupは、目印をつけるという意味で

    す。文章の各部分がどのような役割を果たしてい るかブラウザに伝えます。<と >に囲まれたタグに よってマークアップされたものは、要素と呼ばれま す。
  24. クエリセットに関すること from django.shortcuts import render from django.utils import timezone from

    .models import Post def post_list(request): posts = Post.objects.filter(published_date__lte=timezone.now()).order_by('published_date') return render(request, 'blog/post_list.html', {'posts': posts}) blog/views.py ファイル
  25. リクエスト処理に関するフロー図 URLディスパッチャ ビュー モデル テンプレート システム キャッシュシステム 管理 インターフェース プロジェクト設定

    ファイル プロジェクト管理用 スクリプト Django管理用 スクリプト アプリケーション C キャッシュ RDB プロジェクト
  26. テンプレートに関すること <div> <h1><a href="/">Django Fukuoka Blog</a></h1> </div> {% for post

    in posts %} <div> <p>published: {{ post.published_date }}</p> <h1><a href="">{{ post.title }}</a></h1> <p>{{ post.text|linebreaks }}</p> </div> {% endfor %} blog/templates/blog/post_list.html ファイル
  27. cssに関すること h1 a { color:#FCA205; } h1 a はCSSセレクタです。h1 要素の中にあるa

    要素 (例:このようなコードのこと <h1><a href="">link</a></h1>)にスタイルを適用しますという意味になります。この場合、テキス トの色を#FCA205、オレンジ色にする、という意味です。もちろん、あなたの好きな色に変 更してもいいです.
  28. cssに関すること <link rel="stylesheet" href="//maxcdn.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap.min.css"> <link rel="stylesheet" href="//maxcdn.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap- theme.min.css"> <link rel="stylesheet"

    href="{% static 'css/blog.css' %}"> これを記述するといいのですがすべてを記述していくのは非常に 面倒ですのでオープンソースのテンプレートを記述していきます。
  29. テンプレートの拡張 post_list.htmlで記載しています。 {% block content %} {% for post in

    posts %} <div class="post"> <div class="date"> {{ post.published_date }} </div> <h1><a href="{% url 'blog.views.post_detail' pk=post.pk %}">{{ post.title }}</a></h1> <p>{{ post.text|linebreaks }}</p> </div> {% endfor %} {% endblock content %}