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

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ファイルをいじったりで、
行ったり来たりするからこんがらがってしまうな😵 

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

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

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


学習ステータス

村人から剣術自慢の村人に進化!
剣術自慢なだけで、強いかどうかは知らない😒 
コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

paizaラーニング『C言語入門編9: データ構造について理解しよう (全8回) 』を受講してみた

2021-02-07 09:55:51 | paiza

『C言語入門編9: データ構造について理解しよう (全8回) 』

ようやくC言語も最終レッスンだな。

やっぱりCはポインタとか出てくるし、
文字列関係の処理とか結構、覚えないといけないことが多い印象だな。
この辺がちゃんと理解できていれば、C++も使いこなせるようになるだろうか?

何はともあれ、始めていこう。

メモ

#01:スタックとキューについて学習しよう

  • スタック:最後に追加したデータを最初に取り出すことのできる、「後入れ先出し」のデータ構造
    • 後入れ先出しは、"Last In, First Out" の頭文字をとって LIFO と呼ばれる
  • キュー:最初に追加したデータを最初に取り出すことのできる、「先入れ先出し」のデータ構造
    • 先入れ先出しは、"First In, First Out" の頭文字をとって FIFO と呼ばれる
  • スタックとキューの実装
    • C 言語でスタックやキューを使いたい場合、自身でデータ構造を定義する必要がある。
    • スタックやキューは、配列や連結リストを使って実装されることが多い。
  • 参考URL
    https://daeudaeu.com/stack_queue/

#03:スタックを実装しよう (2) 

#05:キューを実装しよう (1) 

  • キューの実装方法
    キューではインデックスを 2 つ使用して実装する必要がある
    • スタックの実装 : データを追加する位置と取り出す位置を、1 つのインデックスで表せる
    • キューの実装 : データを追加する位置と取り出す位置を、2 つのインデックスで表す

      ※ 1 つのインデックスのみで実装することも可能だが、
      データを取り出すたびにキューの中の要素をすべて移動させる必要があり、計算量が増えてしまう。
  • キューの基本操作
    • enqueue:データを追加する
    • dequeue:データを取り出す

認定証

スタックとキューをC言語で実装できるんだ〜!😲 
これは勉強になったな。
C++の場合、スタックとキューのクラスを作っちゃっても良さそうだけど、
おそらくライブラリがあるんだろうな。😓 
全然勉強が足りないな〜😣 


学習ステータス

結局、若手剣士のまますべてのレッスンが終了したな。

コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする