不惑にしてまだ何者でもない者のブログ

Arduino関連、Raspberry Pi関連、プログラミング学習

paizaラーニング『Django入門編2: Djangoの動作を理解しよう (全7回)』を受講してみた

2021-03-02 22:36:12 | paiza

『Django入門編2: Djangoの動作を理解しよう (全7回)』


メモ

#01:Djangoの機能構成を理解しよう

  • MVT(Model・View・Template)というDjangoの機能構成について理解する。また、Djangoでデータベースを操作するため、どのような機能が利用できるか学習する。
  • MVT:Djangoの主な機能ブロック
    • モデル:アプリで扱うデータを保持し、操作する
    • ビュー:ユーザーからのリクエストに応じて、モデル・テンプレートを呼び出す
    • テンプレート:データの表示形式を記述する
    • ルーティング:リクエストを振り分ける
  • データベースを操作できるツール
    • Djangoシェル:Djangoアプリの環境を有効にしたまま、コマンドで操作
    • マイグレーション:データベースの操作を一括実行・取り消し
    • 管理サイト:Webブラウザで、データベースを操作する

#02:Djangoシェルでデータベースを確認しよう

  • Djangoシェルを起動する
    $ python manage.py shell
  • Djangoシェルの主な操作コマンド
    • テキストを出力
      In[1]: print('Hello Python')
    • プリント関数を使わずにデータを書くと、そのまま出力する
      In[2]: 'Hello Python'
    • テーブルの全てのレコードを出力
      In[3]: from bbs.models import Article
      In[4]: Article.objects.all()
    • 指定idのデータを取り出し、カラムを出力
      In[5]: article = Article.objects.get(pk=1)
      In[6]: article.content
      • pk:primary keyというデータベースのIDを表す
    • データを追加する
      In[6]: article = Article(content='Hello Django')
      In[7]: article.save()
    • データを修正する
      In[8]: article = Article.objects.get(pk=1)
      In[9]: article.content = 'Good Morning'
      In[10]: article.save()
    • データを削除する
      In[11]: article = Article.objects.get(pk=1)
      In[12]: article.delete()
  • Djangoシェルを終了する
    • CTRL + Dキー
  • 参考になるWebページ

#03:データベースへのマイグレーションを理解しよう

  • マイグレーションの手順:2段階で行う。
    • 1. 専用のコマンドを使ってマイグレーションファイルを作成する
    • 2. データベースに適用する
  • user_nameカラムを追加する
    myapp/bbs/models.py
    • user_name = models.CharField(max_length=200, null = True)
      ↑カラムを追加する場合、既に存在しているレコードのカラムが空になってしまうため、nullオプションが必要
  • マイグレーションファイルを作成
    $ python manage.py makemigrations bbs
  • マイグレーションを実行
    $ python manage.py migrate
  • 管理サイトでパスワードを変更する方法
    1. 管理サイトにログインする
    2. 「Users」をクリック
    3. パスワードを変更したいユーザー名をクリック
    4. 「Change user」-「Password」にある、'Raw passwords are not stored, so there is no way to see this user's password, but you can change the password using this form.'の最後にあるリンクをクリック
    5. 「Change password」フォームに新しいパスワードを入力
    6. 「CHANGE PASSWORD」ボタンをクリック

#04:テンプレートにカラムを追加しよう

  • index.htmlにカラムを追加
    myapp/bbs/templates/bbs/index.html
  • detail.htmlににカラムを追加
    myapp/bbs/templates/bbs/detail.html

#05:Webアプリのデータの流れを理解しよう

  • 掲示板アプリケーションのルーティング設定
URL呼び出す機能
(ドメイン名)/admin/管理サイト
(ドメイン名)/bbs/掲示板:記事の一覧表示
(ドメイン名)/bbs/<id>掲示板:記事の個別表示
(ドメイン名)/bbs/new新規作成
(ドメイン名)/bbs/create記事の投稿
(ドメイン名)/bbs/<id>/edit記事の編集
(ドメイン名)/bbs/<id>/update記事の更新
(ドメイン名)/bbs/<id>/delete削除
↑bbsは全体のルーティング、それ以降はbbs側のルーティング
  • ルートを追加する
    myapp/myapp/urls.py
    • 「/」にアクセスしたら、「/bbs/」にリダイレクトする。
      from django.views.generic import RedirectView

       path('', RedirectView.as_view(url='/bbs/')),

#06:データベースに書き込んでみよう

  • urls.pyに「create」を追記する
    myapp/bbs/urls.py
  • views.pyに「create」関数を追加する
    myapp/bbs/views.py
    • def create(request):
  • 新規リンクをテンプレートに追加する
    myapp/bbs/templates/index.html

#07:データベースから記事を削除しよう

  • urls.pyに、「delete」を追記する
    myapp/bbs/urls.py
  • views.pyに、delete関数を追加する
    myapp/bbs/views.py
    • def delete(request, id):
  • テンプレートに削除リンクを追加する
    myapp/bbs/templates/index.html


認定証

Python+Djangoの方がPHP+Laravelよりも使いやすい気がする。


学習ステータス





最新の画像もっと見る

コメントを投稿