0
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Flaskメモ書き

Last updated at Posted at 2021-02-14

説明できる程度にサーバーサイドを学ぶ

ハンズオンなどはネットに転がっているサイトを参考に....
あくまで自己理解のために記事を作成しているため、自分が理解している部分は大幅カット

個人的な目標としては、Flaskを用いてUSBカメラで取得した映像データをFlaskで表示することである

webアプリケーション開発で知っておくべきこと

webアプリケーション開発には2つのやり方がある

方法1:webサーバーにhtmlファイルとpythonスクリプトをアップロードし、レンタルサーバーを借りる
方法2:pythonでwebで動くアプリケーションそのものを記載し、クラウドサービスを利用する

方法1では、webサーバーの管理が利用者側にないため、レンタルサーバーに用意されている機能しか使えない。一方で方法2では、利用者が高い自由度、柔軟なメンテナンスの中で、サーバー管理をすることができる。

pythonにはwebサーバーを簡単に作成できるモジュールがある

http.serverやFlaskモジュール。これらのモジュールを使用することで、簡単にwebサーバーを起動し、「webアプリの原型」を作ることが可能。サーバー側の複雑な設定は必要ない。

http.serverの限界

http.serverの問題点は頭に入れておく。

  1. 複数のアクセスがあると途端にHttp.serverの動作は遅くなる
  2. 基本的にwebサーバーは受け身である

httpサーバーでは、ユーザーからリクエストされた時のみ、レスポンスを返す。必要な情報を拡充したい時は、クライアント側が動く必要がある。
このような問題点があることで、http.serverは試験用でしか利用価値がない。

そこで現れたのが、FlaskDjangoといったwebフレームワークであり、webアプリケーション開発が容易になり、受け身のシステムを打破した。
pythonの多種多様なモジュールを導入しやすく、サーバーサイドのシステム組み込みが容易になった。

Flask

Flaskとは

しっかりと文章で説明できる程度に頭に入れておく。

OSSのwebフレームワークであり、Djangoと同じ立ち位置。Djangoはwebアプリケーション開発に必要となる機能を全て備えているのに対し、flaskは最低限の機能しか拡充していない
flaskは必要となる外部モジュールを簡単に追加できるという構想を採用しており、例えば、DBが必要な時は対応したDBモジュールを入れれば良い。必要最小限な機能しかないので、軽量なwebフレームワークである。

テンプレートの考え方

htmlファイルはtemplatesフォルダ内に拡充することを決まりとする。
注意すべき点は、htmlファイルのことをテンプレートファイルと呼ぶことである。
flaskにはJinjaというテンプレートエンジンが用意されており、これはテンプレートを元にhtmlソースコードを生成してくれる。

postとgetの使い分け

GETでフォームを送信した場合、クエリパラメータがURLに追加されて送信される。
POSTはHTTPのボディ部分にフォーム情報が追加される。これはURLが同じであっても同じ結果は得られない。

GETはURLをコピーすれば何度でも同じフォームを送信することができる。かつ、クエリパラメータを変えることで異なるフォームを送信することができる。
これは外部から何度でも自由にフォームを送信できるという怖い点もあり、例えばECサイトにてアカウントの違う人の購入カートを変更できたりすることができる。大袈裟な話だが、、、、

基本用語

クライアント : webサイトにアクセスしてくる相手のこと

ルーティング : アドレスに応じた処理の割り振り

クエリパラメータ : **http://xxxxxxx/?a=xxx&b=yyy**といういうようにURL内で変数定義

GET : アクセスすると予め用意していたコンテンツを返す

POST : フォームなどユーザーが書き込む情報にしたがってgetする情報を更新しなければならない。更新情報を送信することをPOSTと呼ぶ

GETとPOSTの違い

フレームワーク : プログラミングにおいて、アプリケーションプログラム等に必要な一般的な機能が、あらかじめ別に実装されたもの。自分が必要としていない機能も拡充されていることに注意

0
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?