GeoDjangoではじめる地理空間情報
  • Introduction
  • はじめに
    • GeoDjangoではじめる地理空間情報
      • 対象読者
      • ライセンス
      • 免責
  • 前準備
    • インストール
      • Pythonのインストール
      • PostgreSQLのインストール
  • はじめての地理空間情報
    • 地理空間情報とは
    • 測地系と座標系
    • 空間データとファイル
    • Geoデータベース
    • Geoライブラリ
    • 背景地図 (ベースマップ)
  • Django
    • Djangoの概要
    • Djangoのインストール
    • Djangonのチュートリアル
  • GeoDjango
    • GeoDjangoの概要
    • GeoDjangoのインストール
    • PostGISへデータインポート
    • GeoDjangoのチュートリアル
    • GeoDjango Tips
    • Django/GeoDjangoレシピ
  • さいごに
    • 参考サイト
    • おわりに
Powered by GitBook
On this page
  • Djangoとは
  • PythonのWebアプリケーションフレームワーク
  • Flask
  • Tornado
  • Bottle
  • Pyramid
  1. Django

Djangoの概要

Previous背景地図 (ベースマップ)NextDjangoのインストール

Last updated 6 years ago

Djangoとは

Django(ジャンゴ)はPythonで実装されたWebフレームワークで、2005年にオープンソース (BSD license)で公開されました。 名前の由来はジプシー・スウィングのギタリストでのジャンゴ・ラインハルト (Django Reinhardt) からとったものです。

Pythonでデータ処理からWebアプリまでを同じプログラム言語で書くことができるということで、Djangoの需要も高まって来ています。

最新版は、2017年12月に9年ぶりとなるメジャーバージョンアップされて2.0系に最新版はDjango 2.0.9 (2018/11/5現在)となります。 また2.1系もリリースされていて最新版はDjango 2.1.3 (2018/11/5現在)となります。 バージョン2.0からPython3.5以上のみがサポート対象となりました。 Python2系の場合は、Django 1.11 LTSでPython 2.7をサポートしています。

日本語の情報が少なくないといわれていますが、最近では日本語の書籍や情報も増えてきています。

Djangoの考え方

  • All In One

    • 開発者ができるだけ早くアプリケーションを完成できるように設計

  • DRY (Don't Repeat Yourself)

    • ソフトウェア開発全体において情報を重複させない

  • MTV fraemwork

    • Model, View, Templateフレームワーク

  • Reassuringly secure

    • セキュリティを担保している

参考:

  • Design philosophies -

  • Djangoで作られたサイト -

  • HotFramework -

Python Frameworks

  • LTS(Long Term Support)

Djangoアプリの処理の流れ

Djangoは下記のような流れでクライアントからのリクエストの処理をします。

Djangoの特徴

  • Webフレームワークの機能が標準整備

    • URLディスパッチャー

    • O/Rマッパー

    • テンプレートエンジン

  • ユーザー認証まわりの機能が標準装備

    • ユーザーモデル、グループ、権限、ユーザーセッション

  • 管理画面の機能が標準装備

    • デフォルト機能が自動で生成される

    • ユーザー認証、コンテンツ管理、サイトマップ、RSSフィードなど多くの機能を細かい設定なしにすぐに使うことができる。

  • セキュリティ対策が万全で機能が豊富

    • XSS, CSRF, SQLインジェクション等

  • 国際化対応

  • REST APIが比較的に簡単に作成できる.

    • クライアントJacaScriptとはAPIで連携

    • Django Rest Frameworkモジュールがデファクト

  • メンテナンス性能が高い

    • 各ファイルの役割が決まっている (ファイルの修正が煩雑に感じる場合はある)

    • コード可読性は高い

PythonのWebアプリケーションフレームワーク

Flask

Tornado

スケーラブルでノンブロッキング(非同期通信)なWebサーバフレームワークで、Jupyter Notebookで使われている。 ノンブロッキングI/Oを使用することで数万のコネクションをオープンに出来るため、Node.jsのPython版ともいえる。

Bottle

シンプルなフレームワークで、Pythonファイルを1つで構成されている。フレームワーク初心者にとってはわかりやすいものです。

Pyramid

柔軟性が高く、小規模から大規模まで幅広く対応できるのが特徴。 フルスタックなDjangoとは違い、開発者が自身が各種ライブラリを組み合わせることが出来るので柔軟性が高い。

top-frameworks -

What Python version can I use with Django? -

Django Supported Versions -

Flask -

軽量なウェブアプリケーションフレームワーク。 とテンプレートエンジンを基に作られている。 「マイクロフレームワーク」ともいわれシンプルで拡張性が高いことが特徴。

Tornado -

Bottle -

Pyramid -

https://github.com/django/django
https://docs.djangoproject.com/en/2.0/misc/design-philosophies/
https://www.djangosites.org/
https://hotframeworks.com/languages/python
https://hotframeworks.com/#top-frameworks
https://docs.djangoproject.com/en/2.0/faq/install/#what-python-version-can-i-use-with-django
https://www.djangoproject.com/download/#supported-versions
http://flask.pocoo.org/
Werkzeug
Jinja2
http://www.tornadoweb.org/en/stable/
http://bottlepy.org/docs/dev/
https://docs.pylonsproject.org/projects/pyramid/en/latest/