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

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

paizaラーニング『Flask入門編1:PythonでWebアプリケーションを作ろう (全9回)』を受講してみた

2021-02-07 13:53:51 | paiza

『Flask入門編1:PythonでWebアプリケーションを作ろう (全9回)』


前後していろんな講座をやってきたけど、
ここからはPython系の講座を終わらせてしまおう。
その後は、PHPの講座をやっていこう。

Python系の講座は残り2つ。
以前、ちょっとだけDjangoに触れたことあるから、
ってちょっと講座を見てみたら、対象者がFlaskを済ませた人ってなっているようなので、
Flaskの方がDjangoよりも軽量なフレームワークとなっていて、
学習もしやすいのかな?

あと、これってJupyter Notebook使ってやっていけるのかな?
→ たぶん、Jupyterとかよりも、Spyderとかで書いた方がよさそうだな。

その辺も含めて、学習していこう。

自分の環境の場合、import flaskが問題なく通ったから、
環境構築に関しては、特に何もしなかった。
なんかのタイミングでインストールしていたのか、
はたまたデフォルトでインストールされていたのかは不明だが。

もしFlaskをインストールする必要があるなら、
pip install Flask
でいいみたい。

メモ

#01:Webアプリの初歩を理解しよう

  • 対象者:Python・HTML・シェルコマンドの初歩を学習した人。
    ってなっているから、大丈夫だと思う。
  • Webアプリケーションの基礎技術
    - ルーティング:Webブラウザからのリクエストに合わせて、呼び出す処理を切り替える
    - テンプレートエンジン:アプリケーションが保持するデータなどをHTMLのひな型と組み合わせてWebページを生成する
    • フォーム処理
    • GETメソッドとPOSTメソッド
    • データベース
  • Flaskの特徴
    - 軽量Webアプリケーションフレームワーク。標準で提供する機能を最小限に絞る
    - Python用Webアクセスライブラリに、Werkzeug WSGIツールキットを採用
    - テンプレートエンジンとしてJinja2を採用
    - Flask extensionsによる機能拡張
  • 参考になるWebページ(2021/02/07現在)

#02:FlaskでHello World

  • Flaskのサーバーを起動する
    $ FLASK_APP=hello.py FLASK_ENV=development flask run
    $ FLASK_APP=hello.py flask run
    • FLASK_ENV=developmentとするとブラウザを再起動しなくても、コードの変更を反映できる。
    • サーバーには次のアドレスでアクセスする
      http://localhost:5000/

#03:ルーティングを理解しよう

  • ルーティング:Webブラウザのリクエストに合わせて、呼び出すページやコードを切り替える。

#04:テンプレートで表示しよう

  • テンプレートエンジン:データとHTMLを組み合わせWebページを生成する
    • Flaskの場合、Jinja2というテンプレートエンジンが組み込まれている
  • from flask import Flask, render_template
    def hello_world():
     return render_template("index.html")

#05:テンプレートの書き方を理解しよう

  • テンプレートにデータを渡す
     name = "Flask"
     return render_template("index.html", name_value = name)
  • テンプレートでデータを受け取る
    <h1>Hello {{ name_value }}</h1>
    • テンプレートでは、{%...%}で囲むことで、Pythonのコードを記述できる。
      この時、インデントは無視されるので、if文に{% endif %}が必要になる。

#06:RPGの戦闘シーンを表現しよう

  • テンプレートでリストを渡す
        players = ["勇者", "戦士", "魔法使い"]
        return render_template("index.html", name_value = name, players = players)

#07:テンプレートの共通部分を分割しよう

  • 共通テンプレートを定義する
    myapp/templates/layout.html
    • <body>
       <p>共通テンプレート</p>
       {% block content %}
       {% endblock %}

      </body>
  • 個別テンプレートから共通テンプレートを呼び出す
    myapp/templates/index.html
    • {% extends "layout.html" %}
      {% block content %}

       (個別の内容)
      {% endblock %}

認定証

う〜〜ん😖 結構大変!
Pythonのスクリプトをいじったり、
HTMLファイルをいじったりで、
行ったり来たりするからこんがらがってしまうな😵 

とくにうまく動作しないとき、どこのファイルだかの検討が付きづらい。

あと、演習課題でジャッジ時間が長すぎて(数十秒くらい)、
途中で落ちちゃうケースも何回かあったのも辛かった😭 

そんなこんなでなんとか認定証を取得


学習ステータス

村人から剣術自慢の村人に進化!
剣術自慢なだけで、強いかどうかは知らない😒 


最新の画像もっと見る

コメントを投稿