質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Flask

FlaskはPython用のマイクロフレームワークであり、Werkzeug・Jinja 2・good intentionsをベースにしています。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

SQLAlchemy

SQLAlchemyとはPython 用のORMライブラリです。MIT Licenceのオープンソースとして提供されています。

ユニットテスト

ユニットテストは、システムのテスト手法の一つで、個々のモジュールを対象としたテストの事を指します。対象のモジュールが要求や性能を満たしているか確認する為に実行します。

Q&A

解決済

1回答

14126閲覧

pythonでいうcontext とは?

sequelanonymous

総合スコア123

Flask

FlaskはPython用のマイクロフレームワークであり、Werkzeug・Jinja 2・good intentionsをベースにしています。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

SQLAlchemy

SQLAlchemyとはPython 用のORMライブラリです。MIT Licenceのオープンソースとして提供されています。

ユニットテスト

ユニットテストは、システムのテスト手法の一つで、個々のモジュールを対象としたテストの事を指します。対象のモジュールが要求や性能を満たしているか確認する為に実行します。

0グッド

1クリップ

投稿2018/07/10 07:24

編集2018/07/11 09:30

#わからないこと
タイトル通りです。contextの意味がわかりません。
以下、公式ドキュメントを読みましたが、メタレベルでの定義は理解できますが、公式ドキュメントから具体的かつ正確な意味がわかりません。色々調べてもなんとなくでしか理解できない状態にあります。いまのところ、使い方はなんとなくわかるので雰囲気でつかっていたりしています。

詳しい方で咀嚼して説明して頂けますと嬉しいです。以下三点が気になっています。

  • contextの役割はなにか?
  • なぜ、なんのためにcontextが必要なのか?
  • 文章内にあるpushとは何をしているのか?

質問の背景
pythonでいうコンテキストの意味とflaskでいうコンテキストの違いさえ分からない状態でしたのでpythonでのコンテキストという質問にしました。今の理解では、http requestに対して発生するappを疑似的に起動し、実行後終了するという曖昧な理解にとどまっています。この理解であってますでしょうか?
ここで質問することで自分のわからないところを具体的にし、自分でもっと細かい検索キーワードで検索できればより理解が深まる情報に辿りつけると思い、このような質問を投稿しました。

http://flask.pocoo.org/docs/1.0/appcontext/#creating-an-application-context

Purpose of the Context The Flask application object has attributes, such as config, that are useful to access within views and CLI commands. However, importing the app instance within the modules in your project is prone to circular import issues. When using the app factory pattern or writing reusable blueprints or extensions there won’t be an app instance to import at all. Flask solves this issue with the application context. Rather than referring to an app directly, you use the the current_app proxy, which points to the application handling the current activity. Flask automatically pushes an application context when handling a request. View functions, error handlers, and other functions that run during a request will have access to current_app. Flask will also automatically push an app context when running CLI commands registered with Flask.cli using @app.cli.command().

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

mather

2018/07/10 08:04

Pythonではなく「FlaskでいうContext」ですよね?しかもここには2種類のcontextが書かれています。最初から正解を貰おうとするのではなく、まずはその辺の理解についてご自身の感覚を質問内容に書いて整理してみてはどうでしょうか。
sequelanonymous

2018/07/10 08:38

ご回答ありがとうござます。pythonでいうコンテキストの意味とflaskでいうコンテキストの違いさえ分からない状態でしたのでpythonでのコンテキストという質問にしました。ここでの二種類のコンテキストとはどのことを言っていますでしょか?コンテキストに種類は一つしかない認識でいます。今の理解では、http requestに対して発生するappを疑似的に起動し、実行後終了するという曖昧な理解にとどまっています。この理解であってますでしょうか?ここで質問することで自分のわからないところを具体的にし、自分でもっと細かい検索キーワードで検索できればより理解が深まる情報に辿りつけると思い、このような質問を投稿しました。
mather

2018/07/10 09:01

その内容を質問内容に書いてください。
sequelanonymous

2018/07/11 09:32

ありがとうございます!追記しました。最初のご指摘にあった点が未だに理解できないのですが、もし、お答えできるようでしたら教えて頂けると嬉しいです。pythonでいうコンテキストの意味とflaskでいうコンテキストの違いとここでの二種類のコンテキストについてです。
guest

回答1

0

ベストアンサー

contextには日本語でバッチリ対応する言葉・概念がないので理解が難しいのだと推測します。少なくとも私の場合はそうでした。コンテクストを理解する上で重要な事柄は提示のURLにも明記されています。

(The application) context keeps track of (the application-level) data
コンテクストはひとつながりのデータを保持します。

これによってコンテクスト自体が理解できなくとも、少なくともその役割がデータの保持である点は理解できると思います。そしてそのコンテクストの目的は一連のデータを扱いやすいようにひとまとめにすることです。

また以下のようにも述べられています。

Flask solves this issue with the application context.
Flaskはこの問題(or 課題)をアプリケーションコンテクストで解決します。

時間がないので回答はこのへんで切り上げますが、この情報をもとにもう一度ドキュメントを読み解くと理解が増すと思います。ちなみにコンテクストはsslのような設定が非常に煩雑なところや、状態を保持しながら処理を数珠つなぎにするような場面(clickパッケージ)でも使用します。

投稿2018/07/10 09:28

YouheiSakurai

総合スコア6142

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

sequelanonymous

2018/07/11 09:34

ありがとうございます!ざっくり、理解できました。再度、ドキュメントを読んでみます。そのあと、またご質問させてください。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問