python3.doc_40
R e i - D r e a m
for Laravel
TOP > Python3 > Django(Webフレームワーク)
Guest
login

最終投稿日:2022年6月18日

目次
○ Webフレームワーク
Pythonのフレームワークのデファクトスタンダード!!
ディレクトリ構造
プロジェクトのディレクトリ構造をカスタマイズ
apacheから実行
ポート80番からアクセス
Shell コマンド
コマンドプロンプトから操作するコマンド類
DB接続
[MySQL][PostgreSQL]と接続
セッティング
フレームワークの各種設定
ルーティング
URLとコントローラの紐付け
コントローラ
フレームワークの心臓部です
モデル
データベースを操作します
テンプレート
描画エンジンです
FROMクラス
HTML部品を便利に出力できます
ADMIN
組込み管理画面です
Auth 認証
ログイン機能を作ろう
バッチ
バッチ処理
その他の設定
[iniファイル][エラーページ][ログの設定]などなど..
組込みタグ
フレームワークに組込まれている便利なタグを紹介
組込みフィルタ
フレームワークに組込まれている便利なフィルタを紹介
Django(Webフレームワーク)
Djangoとは
DjangoはPython製のWebフレームワークです。
便利な管理画面やこれ一つでWebフレームワークとして完結していること、Pythonで書かれていて読みやすいことなどの利点から広く使われています。
Djangoのインストール
● python のバージョンの確認
コマンドプロンプトより python --version を叩き、3系である事を確認する
● pip パッケージマネージャの確認
コマンドプロンプトより pip --version を叩き、以下の様な表示があればインストール済です
    pip 9.0.1 from C:\Users\xxxx\Anaconda3\lib\site-packages (python 3.6)
● コマンドプロンプトより pip install django を叩きインストールする
インストール完了後 pip freeze を叩き、色々文字が表示されれば成功(「Django==2.0.1」等のバージョン情報が含まれる)
【メモ】
    python と ライブラリである Anaconda をインストールしていれば[python][pip]コマンドは使えます。
プロジェクトの作成
● プロジェクトの作成
ロジェクトを作成したいディレクトリを作成し、カレントにコマンドプロンプトを開きます。
「hoge」プロジェクトを作成したい場合は以下を叩きます。
例)
python C:\Users\xxxx\Anaconda3\Lib\site-packages\django\bin\django-admin.py startproject hoge
【メモ】
    上記例では、カレントディレクトリは「D:\DeskTop\Django」 ※[Django]直下に[hoge]プロジェクトを作成
    実行ファイル「django-admin.py」は、Django をインストールした際に作成されたファイルです。
● ファイル構成
プロジェクトが作成されると以下の様な構成となります。
[hoge]
   +--- manage.py
   +--- [hoge]
          |
          +--- __init__.py
          +--- settings.py
          +--- urls.py
          +--- wsgi.py
● 開発用のWebサーバーの起動
カレントを「hoge」に移動し、python manage.py runserver を叩くとサーバーが起動し、以下の様な文字が表示されます。
Performing system checks...
System check identified no issues (0 silenced).
You have 14 unapplied migration(s). Your project may not work properly until you
apply the migrations for app(s): admin, auth, contenttypes, sessions.
Run 'python manage.py migrate' to apply them.
January 20, 2018 - 20:39:38
Django version 2.0.1, using settings 'hoge.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CTRL-BREAK.
サーバの起動に成功したらブラウザから localhost:8000/ を叩き、以下の様な文字が表示されれば成功です!
    The install worked successfully! Congratulations!
※サーバを終了するには [Ctrl] + [C]
設定ファイルの編集
● 言語コードの変更
Djangoの設定ファイル(settings.py)は、標準では日本で使われる設定になっていません。
hoge\hoge\settings.py を開き LANGUAGE_CODE を変更する
    【変更前】LANGUAGE_CODE = 'en-us'
    【変更後】LANGUAGE_CODE = 'ja'
ファイル変更後、サーバを再起動し再びブラウザにアクセスして日本語表示になっていれば成功です!
● タイムゾーンを変更しよう
Djangoの設定ファイル(settings.py)は、タイムゾーンも標準では日本のものになっていません。
hoge\hoge\settings.py を開き TIME_ZONE を変更する
    【変更前】TIME_ZONE = 'UTC'
    【変更後】TIME_ZONE = 'Asia/Tokyo'
【メモ】
    タイムゾーンを扱うためのモジュールである pytz のインストールが推奨されていますので、
    ここでインストールしておきましょう
        pip install pytz
● Django に template ファイルを置くディレクトリを設定します
hoge\hoge\settings.py を開き TEMPLATES を変更する
    【変更前】'DIRS': [],
    【変更後】'DIRS': [
                                                   os.path.join(BASE_DIR, 'templates'),
                                         ],
【メモ】
    以下の templates ディレクトリとなる
[hoge]
   +--- [templates]            ※新規作成する
   +--- manage.py
   +--- [hoge]
「Hello World!」の表示
Djangoは複数のアプリケーションを1つのプロジェクトの中にまとめて、1つのWebサイトを開発していきます。
manage.py を使い、hoge プロジェクト の中に hello アプリケーションを作ってみましょう。
[manage.py]ファイルと同じカレントに移動しコマンドプロンプトから以下を叩きます。     python manage.py startapp hello
● 構成
[hoge]                      ※以降 ROOT と表記
   +---[hello]
   |      +--- [migrations]
   |      |          +--- __init__.py
   |      +--- __init__.py
   |      +--- admin.py
   |      +--- models.p
   |      +--- tests.py
   |      +--- views.py
   +--- manage.py
   +--- [hoge]
          |
          +--- ※ ~ 省略 ~
● Django プロジェクトにアプリケーションを組み込む
アプリケーションを作ったら、プロジェクトにアプリケーションを組み込まなくては使えません。
アプリケーションを組み込むためには、プロジェクトの設定ファイルの INSTALLED_APPS という変数に追加します。
[ROOT\hoge\settings.py]
INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'hello.apps.HelloConfig',            ※hello アプリの apps.py モジュールの HelloConfig クラス
]
● ビュー関数の設定
[ROOT\hello\views.py]
    from django.shortcuts import render
    from django.http.response import HttpResponse     
    def hello_world(request):
        return render(request, 'hello/hello.html')
● リクエストとビュー関数の関連付けの設定
[ROOT\hello\urls.py]                      ※新規作成する
    from django.conf.urls import url
    from . import views
    app_name = 'hello'                      ※namespace名を定義する
    urlpatterns = [
        url(r'^$', views.hello_world, name='hello_world'),
    ]
● リクエストと各アプリの関連付けの設定
[ROOT\hoge\urls.py]
    from django.contrib import admin
    from django.urls import path
    from django.conf.urls import include, url
    from django.views.generic import RedirectView
    urlpatterns = [
        # [hello.urls]は、[ROOT\hello\urls.py]に対応する。[namespace='hello']は、[app_name = 'hello']に対応する。
        url(r'^$', RedirectView.as_view(url='hello/')),      ※ドメインのみの URL の場合のリダイレクト先指定
        url(r'^hello/', include('hello.urls', namespace='hello')),
        path('admin/', admin.site.urls),
    ]
● template ファイルの作成
[ROOT\templates\hello\hello.html]
    <html>
        <head>
            <title>Hello World</title>
            <meta http-equiv="content-type" content="text/html; charset=utf-8">
        </head>
        <body>
            Hello わ~るど!!
        </body>
    </html>
上記設定後、サーバを起動し以下をブラウザから叩く
    http://localhost:8000/hello/
ログインしてコメントを残そう!!


きっぷる
きっぷる