python flask tutorial introduction flask
この入門的なPythonFlaskチュートリアルでは、Flaskとは何か、Python、Virtualenv、Flask Hello Worldの例のインストールについて説明し、コード例、デバッグ、およびテストに関するセクションを示します。
ウェブサイトの開発は、スキルというよりは芸術です。真の成功を収めるために必要なものを生み出すには、忍耐と勤勉、そして忍耐力、勇気、そして献身が必要です。最近では、学習者ができるだけ早くスピードを上げることが不可欠です。
このPythonFlaskチュートリアルは、Python 3を使用して、単純なWebプログラミングと複雑なWebプログラミングを習得し、実装するために作成されました。
このPythonFlaskチュートリアルは、Python、Virtualenv、およびその他の重要なパッケージのインストールをカバーするフラスコ初心者チュートリアルに似ています。この一連のチュートリアルでは、Flaskを他の必要なFlaskプラグインと一緒にインストールします。また、コードのデバッグ、テスト、およびGitアクションを使用した継続的インテグレーションに関するセクションも含まれています。
学習内容:
このフラスコシリーズのチュートリアルのリスト
チュートリアル#1: Python Flaskチュートリアル–初心者向けFlaskの概要
チュートリアル#2: フラスコのテンプレート、フォーム、表示、および例を使用したリダイレクト
チュートリアル#3: Flaskデータベースの処理–データベースでFlaskを使用する方法
チュートリアル#4: ブループリントとブートストラップを使用したFlaskアプリとFlaskプロジェクトのレイアウト
チュートリアル#5: フラスコのデザインパターンとWebアプリケーションのベストプラクティス
チュートリアル#6: 例を含むFlaskAPIチュートリアル| APIを使用したフラスコの拡張
チュートリアル#7: Django対Flask対ノード:どのフレームワークを選択するか
チュートリアル#8: 回答付きの人気のあるPythonフラスコインタビューの質問トップ31
フラスコとは
FlaskはWeb開発フレームワークです。 これは、開発サーバーとデバッガーが組み込まれたフレームワークです。
Windows10用の最高の無料ファイルコンバーター
Flaskフレームワーク自体は、Web開発者が柔軟に対応でき、ソフトウェア開発コミュニティで頻繁にリリースされる変更に快適に対応できるため、他のアーキタイプとは異なります。
フラスコは何に使用されますか
Pythonプログラミング言語でWebアプリケーションを開発するためにFlaskフレームワークを使用します。他のサードパーティのサービスやAPIと統合して、開発中のアプリケーションに豊かさと意味をもたらします。 Flaskのコアコンセプトはシンプルで、フットプリントも小さいです。
このPythonFlaskチュートリアルから始めて、FlaskGitHubリポジトリを使用したWeb開発を理解しましょう。ただし、先に進む前に、Githubからプロジェクトのクローンを作成して、説明したコード例を簡単にフォローアップしてください。
前提条件
このセクションに記載されている見出し以外に、Githubアカウントを作成することをお勧めします。前提条件で以下の手順に進みましょう。
ステップ1:Pythonをインストールする
Python3がインストールされているかどうかを確認してください。そうでない場合は、Python3をからダウンロードします ここに オペレーティングシステムに従ってインストールします。
ステップ2:Python仮想環境を作成する
以下のコマンドを使用して仮想環境を作成します。
python3 -m venv venv
以下のコマンドを使用して、Python仮想環境をアクティブ化します。
source venv/bin/activate
以下に、仮想環境のアクティブ化と非アクティブ化の例を示します。
このチュートリアルの後続のすべてのコマンドは、アクティブ化された仮想環境で実行する必要があります。ホイールパッケージをインストールして、仮想環境内にホイールを構築できるようにします。
pip install wheel
ステップ3:フラスコのダウンロードとインストール
Flaskのダウンロード手順を実行し、以下の手順を使用してFlaskをインストールする必要があります。
次にFlaskをインストールします。
pip install flask
私たちの中には、最新のソースコードの変更に対応することを好む人もいます。以下のコマンドを使用して、Flaskのソースに最新の変更を加えてインストールできます。
一時ディレクトリを作成します。
mkdir tmp
次に、GithubリポジトリからFlaskをインストールします。以下のコマンドを機能させるには、インターネットに接続したままにする必要があります。
pip3 install -e git+git@github.com:pallets/flask.git#egg=flask
コンソール出力を見て、インストールが成功したことを確認します。次に、Flaskコマンドにアクセスできるかどうかを確認します。
flask --help
Flaskアプリケーションがないことについていくつかの例外が表示される場合があります。ただし、Flaskアプリを作成していないため、これらは無視してください。私たちのアプリは、WerkzeugWebフレームワークとJinjaテンプレートエンジンのラッパーであるFlaskのインスタンスです。
ツール
WerkzeugはWSGIツールキットです。 WSGIは、Webサーバーが転送するための呼び出し規約にすぎません Webリクエスト Pythonプログラミング言語で書かれたWebアプリケーションに。
Jinja
テンプレートは、Web開発者にとって不可欠なスキルセットです。 Jinjaは、Python用のフル機能で人気のあるテンプレートエンジンです。これは非常に表現力豊かな言語であり、テンプレート作成者に強力なツールセットを提供します。
ステップ4:MongoDBをインストールする
以下の手順に従ってMongoDBをインストールします。 DebianベースのLinuxにインストールする手順の概要を説明しました。別のオペレーティングシステムを使用している場合は、 リンク 目的のオペレーティングシステムに従ってインストールします。
MongoDB公開GPGキーをインポートするためのgnupgをインストールします。
sudo apt-get install gnupg
次に、以下のコマンドを使用してキーをインポートします。
wget -qO - https://www.mongodb.org/static/pgp/server-4.2.asc | sudo apt-key add -
Linuxディストリビューションに従ってソースリストファイルを作成します。 Debianに従ってソースのリストを追加しました。
echo 'deb http://repo.mongodb.org/apt/debian buster/mongodb-org/4.2 main' | sudo tee /etc/apt/sources.list.d/mongodb-org-4.2.list
更新コマンドを実行する
sudo apt-get update
次に、以下のコマンドを使用してMongoDBをインストールします。
sudo apt-get install -y mongodb-org
インストールが成功したら、以下のコマンドを使用してMongoDBを起動します。
sudo systemctl start mongod
以下のコマンドを使用して、MongoDBのステータスを確認します。
sudo systemctl status mongod
次に示すコマンドを発行して、mongodがシステムの再起動時に自動的に起動することを確認します。
sudo systemctl enable mongod
次に、mongoクライアントを使用してMongoDBサーバーに接続できるかどうかを確認します。
mongo
mongoシェルで、helpコマンドとshowdbsコマンドを使用してみてください。
Flaskアプリを作成する
以下のコマンドを使用して、flask-appbuilderとmongoengineをインストールします。
pip install flask-appbuilder pip install mongoengine pip install flask_mongoengine
以下のコードスニペットにコメントとして示されている値を使用してスケルトンアプリを作成します。
flask fab create-app # Give the following values in the command line questionnaire # Application Name: flaskTutorialApp # EngineType : MongoEngine
以下のような出力が表示されます。
Your new app name: exampleApp Your engine type, SQLAlchemy or MongoEngine (SQLAlchemy, MongoEngine) (SQLAlchemy): MongoEngine Downloaded the skeleton app, good coding!
プロジェクトとアプリのレイアウトをご覧ください。以下にtreeコマンドの出力を示します。
Flask構成ファイルを見てみましょう。これは、最後のコマンドの結果として生成されたデフォルトの構成です。コメントを外す サイボーグ 以下に示すように、テーマ。
# Theme configuration for Cybord=g # these themes are located on static/appbuilder/css/themes # We can create our own and easily use them by placing them on the same dir structure to override #APP_THEME = 'bootstrap-theme.css' # default bootstrap #APP_THEME = 'cerulean.css' # cerulean #APP_THEME = 'amelia.css' # amelia theme #APP_THEME = 'cosmo.css' # cosmo theme APP_THEME = 'cyborg.css' # cyborg theme #APP_THEME = 'flatly.css' # flatly theme
スケルトンアプリを実行するには、ターミナルで以下のコマンドを使用します。
flask run
Flask Hello World
フラスコTutorialAppで最初のプログラムを作成するには、appディレクトリの下にあるファイルviews.pyを開き、次のコードを追加します。ファイルに記載されているインポートステートメントを探します。まだ存在しない場合は、これらのステートメントを追加します。
from flask_appbuilder import BaseView, expose from app import appbuilder class HelloWorld(BaseView): ''' This first view of the tutorial ''' route_base = '/hello' @expose('/') def hello(self): return 'Hello, World! from Software Testing Help' # at the end of the file appbuilder.add_view_no_menu(HelloWorld())
上記のソースコードを追加してファイルを保存してください。プロジェクトのルートディレクトリに移動し、以下のコマンドを使用してFlaskの開発サーバーを実行します。
flask run
次に、http:// localhost:5000 / hello /に移動して、ブラウザーに出力を表示します。
デバッグ
現在、開発サーバーはデバッグモードで実行されていません。デバッグモードがないと、Flaskアプリケーションのソースコードでエラーを見つけるのは困難です。
Flaskのデバッグモードでは、次のようになります。
- デバッグモードは自動リローダーをアクティブにします。これは、アプリケーションのソースコードを変更した後、開発サーバーを再起動する必要がないことを意味します。
- デバッグモードはPythonデバッガーをアクティブにします。例外中に変数の値を調べることができます。
- デバッグモードでは、Flaskアプリケーションのデバッグが有効になります。デバッグセッションでさまざまな変数の値を確認できます。
開発サーバーがすでに実行されている場合は、それを停止します。 CTRL + Cまたはキーボード割り込みを使用して同じことを行うことができます。
次のコードを使用して、デバッグモードを有効にし、開発サーバーを一時的に実行します。
FLASK_ENV=development flask run
コンソールでデバッガーPINを検索し、メモします。
次に、コードスニペットの次の行を使用して、上記のHelloWorldビューを変更しましょう。カスタム例外が導入されていることに注意してください。
@expose('/') def hello(self): raise Exception('A custom exception to learn DEBUG Mode') return 'Hello, World! from Software Testing Help'
http:// localhost:5000 / hello /に移動すると、アプリケーションで例外が発生したことがわかります。以下に示すように、ブラウザにスタックトレースが表示されます。

さらに、開発サーバーが実行されているコンソールを確認します。今回は、views.pyの変更が自動的に検出され、デバッグサーバーが自動的に再起動することがわかります。これで、手動で再起動する必要はありません。
以下に示すように、コンソールには行があります。後で使用するために、デバッグPINを書き留めておく必要があります。
* Detected change in 'https://cdn.softwaretestinghelp.com/work/sth/flaskTutorialApp/app/views.py', reloading 2020-06-02 14:59:49,354:INFO:werkzeug: * Detected change in 'https://cdn.softwaretestinghelp.com/work/sth/flaskTutorialApp/app/views.py', reloading * Restarting with stat 2020-06-02 14:59:49,592:INFO:werkzeug: * Restarting with stat * Debugger is active! * Debugger PIN: 150-849-897
次に、ブラウザでスタックトレースを確認し、最後の行に移動します。それをクリックしてビューを展開し、CLIアイコンをクリックしてシェルをインタラクティブモードで開きます。
Android携帯用のmp3無料ダウンロード

それを開くと、ブラウザにデバッグPINのプロンプトが表示されます。デバッグPINを入力し、(OK)をクリックします。

デバッグPINを指定して先に進むと、インタラクティブシェルにアクセスできます。
ブラウザ内からシェルにアクセスし、変数の値を調べて例外の原因を見つけ、より適切な方法でエラーを処理できます。下の画像に示されている例の1つを見てください。

次に、以下に示すように、view.pyのコードを変更します。例外が発生した行にコメントしたことに注意してください。
@expose('/') def hello(self): # raise Exception('A custom exception to learn DEBUG Mode') return 'Hello, World! from Software Testing Help'
Flaskアプリケーションのテスト
それでは、開発中のFlaskアプリケーションの最初のテストを書いてみましょう。まず、PyTestをインストールします。 PyTestはテストフレームワークです。より良いコードを書くのに役立ちます。
さらに、アプリケーションの開発中に単体テストを作成できるという理由だけで、TDDアプローチに従うことができます。 TDDはテスト駆動開発の略です。このシリーズの後続のチュートリアルでは、常に最初にテストを作成し、ビューまたはモデルを開発します。
PyTestをインストールします
pip install pytest
次に、appディレクトリ内にtestsというディレクトリを作成し、その中にtest_hello.pyというファイルを作成します。ビューをテストするための最初の単体テストを作成しましょう。
次のコードスニペットをコピーして、test_hello.pyに貼り付けます。
#!/usr/bin/env python from app import appbuilder import pytest @pytest.fixture def client(): ''' A pytest fixture for test client ''' appbuilder.app.config('TESTING') = True with appbuilder.app.test_client() as client: yield client def test_hello(client): ''' A test method to test view hello ''' resp = client.get('/hello', follow_redirects=True) assert 200 == resp.status_code
以下のpytestコマンドを使用してテストを実行します。 PyTestは自動的にテストを収集し、結果を標準出力に表示します。

GitHubワークフローを作成する
Gitアクションを使用して、サンプルアプリケーションのCI / CDワークフローを作成します。プロジェクトについて、以下の手順に従ってください。
ステップ1:GitHubのリポジトリページに移動します。 Gitアクションをクリックします。

ステップ2:ページを下にスクロールして、Pythonパッケージの既存のワークフローテンプレートを見つけます。

ステップ3:Pythonパッケージワークフローを設定します。

ステップ4:python-package.ymlワークフロー構成が開いたら、指定されたyaml追加タグ値に基づいて構成を更新します。
name: flaskTutorialApp jobs: build: runs-on: ubuntu-latest strategy: matrix: python-version: (3.7, 3.8) mongodb-version: (4.2) steps: - name: Start MongoDB uses: supercharge/mongodb-github-action@1.3.0 with: mongodb-version: ${{ matrix.mongodb-version }} # other values
最新のUbuntuLinuxディストリビューションでFlaskアプリケーションをテストしたいと思います。 OSに加えて、Python3.7とPython3.8のみを使用してテストを実行したいと思います。
ステップ5:更新された値でpython-package.ymlをコミットします。

ステップ6:前のページのコミットにより、GitActionsジョブに移動します。

ステップ7: (オプション)
サンプルチュートリアルアプリのGithubJobsページで、バッジを作成し、ビルドステータスを表示するためにREADME.mdファイルに配置できます。
これで、変更がマスターブランチにコミットされるたびに、python-package.ymlで記述されているGitワークフローが追跡され、Gitアクションで実行されます。
結論
このチュートリアルでは、前提条件から、PythonベースのWeb開発フレームワークであるFlaskを使用して開発されたWebアプリケーションのCI / CDワークフローの設定までのすべての基本概念について説明しました。
このチュートリアルでは、Pythonのインストール、Flaskのダウンロードとインストール、Flask-Appbuilderの操作、PyTestでのテストなど、Pythonを使用したWeb開発を開始するために必要なすべての手順について説明します。 Web開発コミュニティは通常、FlaskをDjangoと呼ばれる別の人気のあるPythonWeb開発フレームワークと比較します。
これらの違いを説明し、このシリーズのチュートリアルの1つでこれらのフレームワークを比較します。
推奨読書
- Django対Flask対ノード:どのフレームワークを選択するか
- 例を含むFlaskAPIチュートリアル| APIを使用したフラスコの拡張
- ブループリントとブートストラップを使用したFlaskアプリとFlaskプロジェクトのレイアウト
- Flaskデータベースの処理-データベースでFlaskを使用する方法
- フラスコのデザインパターンとWebアプリケーションのベストプラクティス
- フラスコのテンプレート、フォーム、表示、および例を使用したリダイレクト
- 回答付きの人気のあるPythonフラスコインタビューの質問トップ31
- 初心者のためのPythonチュートリアル(実践的な無料のPythonトレーニング)