Flaskの紹介と基本紹介

1. フレームワークを理解する

Web フレームワークとして、Flask は主に Web アプリケーションの開発に使用されます。それでは、まず Web アプリケーションについて理解しましょう。Web アプリケーション プログラム (World Wide Web) が誕生した本来の目的は、インターネットを使用して仕事上の文書を交換することです。

ここに画像の説明を挿入

1. すべてはクライアントがリクエストを開始することから始まります。

すべての Flask プログラムはプログラム インスタンスを作成する必要があります。

クライアントがリソースを取得したい場合、通常はブラウザを通じて HTTP リクエストを開始します。

このとき、Web サーバーは、WEB サーバー ゲートウェイ インターフェイスと呼ばれる WSGI (Web サーバー ゲートウェイ インターフェイス) プロトコルを使用して、クライアントからのすべてのリクエストを Flask プログラム インスタンスに渡します。

Flask はルーティング配布 (URL リクエストとビュー関数の対応) に Werkzeug を使用します。各 URL リクエストに従って、特定のビュー関数を見つけます。

Flask プログラムでは、ルーティングは通常、プログラム インスタンスのデコレータを通じて実装されます。view 関数を呼び出してデータを取得した後、データは HTML テンプレート ファイルに渡されます。テンプレート エンジンは HTTP 応答データのレンダリングを担当し、Flask は応答データをブラウザに返し、最後にブラウザは返された結果。

2. クライアントは必ずしもブラウザである必要はなく、PC ソフトウェア、モバイル APP、プログラムである場合もあります。

サーバー側の作業に応じて、次の 2 つの部分に分かれます。

サーバー: TCP 経由でクライアントと通信し、http 形式でデータを受信、解析、パッケージ化、送信します。

業務プログラム:解析されたリクエストデータに従って論理処理を実行し、返されるデータを形成してサーバーに送信します

サーバーと Python ビジネス プログラム間の連携には、WSGI プロトコルが使用されます。

1.3 フレームの重量

重量級のフレームワーク: ビジネス プログラムの開発を容易にするために、Django などの豊富なツールとコンポーネントが提供されます。

軽量フレームワーク: Web フレームワークのコア機能のみを提供し、Flask、Tornado など、無料で柔軟で高度にカスタマイズ可能

2、Flask を知る

1 はじめに

Flask は 2010 年に誕生しました。これは、Werkzeug ツールボックスに基づいて Armin ronacher (名前) によって Python 言語で書かれた軽量の Web 開発フレームワークです。これは主に、単純な要件を持つ小規模なアプリケーション向けです。

Flask 自体はカーネルに相当し、他のほとんどすべての機能には拡張機能 (メール拡張機能 Flask-Mail、ユーザー認証 Flask-Login) が必要であり、サードパーティの拡張機能によって実装する必要があります。たとえば、Flask 拡張機能を使用して、ORM、フォーム検証ツール、ファイルのアップロード、本人確認などを追加できます。Flask にはデフォルトのデータベースがありません。MySQL または NoSQL を選択できます。WSGI ツールキットは Werkzeug (ルーティング モジュール) を使用し、テンプレート エンジンは Jinja2 を使用します。

Flask フレームワークの中核は Werkzeug と Jinja2 であると言えます。

Python の最も有名なフレームワークは、Flask、Tornado などのフレームワークに加えて、Django です。Flask は最も有名なフレームワークではありませんが、最も柔軟なフレームワークの 1 つとみなされるべきであり、それが Flask が開発者に愛される理由です。

ここに画像の説明を挿入

2. ジャンゴとの比較

ジャンゴは以下を提供します:

django-admin はプロジェクトのプロジェクト ディレクトリを迅速に作成します

manage.py プロジェクトエンジニアリングを管理する

orm モデル (データベース抽象化層)

管理者バックグラウンド管理サイト

キャッシュメカニズム

ファイルストレージシステム

ユーザー認証システム

これらは、flask にはないので、提供するには拡張パッケージが必要です

3. Flask拡張パッケージ

Flask-SQLalchemy: データベースを操作します。

Flask-merge: 移行データベースを管理します。

Flask-Mail: メール;

Flask-WTF: フォーム;

Flask スクリプト: スクリプトを挿入します。

Flask-Login: 認証されたユーザーのステータス。

Flask-RESTful: REST API を開発するためのツール。

Flask-Bootstrap: 統合されたフロントエンド Twitter Bootstrap フレームワーク。

Flask-Moment: 日付と時刻をローカライズします。

3. Flaskをインストールして使用する

1.フラスコをインストールします

pip3 install flask

2. 最初の Flask プログラム

Flask プログラム実行プロセス:

すべての Flask プログラムにはプログラム インスタンスが必要です。

Flask は view 関数を呼び出した後、view 関数の戻り値を応答の内容としてクライアントに返します。一般に、応答内容は主に文字列とステータス コードです。

クライアントがリソースを取得したい場合、通常はブラウザを通じて HTTP リクエストを開始します。この時点で、Web サーバーは WSGI (Web Server Gateway Interface) プロトコルを使用して、クライアントからのすべてのリクエストを Flask プログラム インスタンスに渡します。WSGI は、Web サーバーと Python 言語用に定義された Web アプリケーション間のシンプルで汎用的なインターフェイスです。WSGI は、HTTP リクエストの受信、HTTP リクエストの解析、HTTP レスポンスの送信などのためのこれらの基礎となるコードと操作をカプセル化して、開発者が効率的に記述できるようにします。ウェブアプリケーション。

プログラム インスタンスは、ルーティング配布 (URL リクエストとビュー関数の対応) に Werkzeug を使用します。各 URL リクエストに従って、特定のビュー関数を見つけます。Flask プログラムでは、ルーティングは通常、プログラム インスタンスのルート デコレータを通じて実装されます。add_url_route() メソッドは、ルート登録を実装するためにルート デコレータ内で呼び出されます。

view 関数を呼び出し、応答データを取得し、そのデータを HTML テンプレート ファイルに渡します。テンプレート エンジンは応答データのレンダリングを担当し、Flask は応答データをブラウザに返します。最後に、ブラウザは返された結果を処理します。そしてそれをクライアントに表示します。

Flask プロジェクトを作成し、app.py ファイルを作成します。

# 导入Flask类
from flask import Flask

#Flask类接收一个参数__name__
app = Flask(__name__)

# 装饰器的作用是将路由映射到视图函数index
@app.route('/')
def index():
    return 'Hello World'

# Flask应用程序实例的run方法启动WEB服务器
if __name__ == '__main__':
    app.run()

プロジェクトを開始し、ブラウザでアクセスすると、ページに Hello World が表示されます。

3. Flaskはアプリオブジェクトを作成します

3.1 初期化パラメータ

# 创建flask的应用对象;
# __name__   flask以这个模块所在的目录为总目录,默认这个目录中static为静态目录,templates为模板目录
app = Flask(__name__,
            static_url_path='/static',      # 访问静态资源的url前缀,默认为static
            static_folder='static',         # 静态文件的目录,默认为static
            template_folder='templates',    # 模板文件的目录,默认为templates
            )

3.2 設定パラメータ

# 配置参数的使用方式(开启调试模式)
# 1.使用配置文件
app.config.from_pyfile("config.cfg")    # 在项目下创建一个config.cfg文件,然后在里面写DEBUG=True

# 2.使用对象配置参数
class Config(object):
     DEBUG = True
app.config.from_object(Config)

# 3.直接操作config的字典对象
app.config["DEBUG"] = True

3.3 ビューで設定パラメータを読み取る

# 2.使用对象配置参数
# class Config(object):
#     DEBUG = True
#     NAME = "test"
# app.config.from_object(Config)

from flask import Flask, current_app

    # 读取配置参数
    # 1.直接从全局对象app的config字典中取值
    # print(app.config.get("NAME"))
    # 2. 通过current_app获取参数
    # print(current_app.config.get("NAME"))

3.4 app.runのパラメータ

# 启动Flask程序
app.run()   # 默认127.0.0.1
# app.run(host="192.168.1.1", port=5000)   # 使用电脑ip
# app.run(host="0.0.0.0", port=5000, debug=True)  # 配置host和port。设置0.0.0.0时都可以访问;可以在这里设置调试模式

おすすめ

転載: blog.csdn.net/weixin_44816664/article/details/132044411