、フラスコの紹介
フラスコはJinja2のを使用しているそのWERKZEUG WSGIツールキットのテンプレートエンジンを使用してPythonで実装されている現在の一般的なWebフレームワークです。フラスコはBSDライセンスを使用しています。。注目すべき機能をフラスコ:それは「マイクロ」のフレームです。「マイクロ」はフラスコはそれを単純なコアを保つ意味することを意図しているが、同時に簡単に展開します。デフォルトによって、フラスコデータベース抽象化レイヤは、フォーム検証、または既存の機能の可能なライブラリーの他の任意の多様を含みません。しかし、フラスコを拡張子を持つアプリケーションにこれらの機能を追加するためにサポートしています。数多くの拡張機能は、データベースの統合、フォーム検証、アップロード取り扱い、さまざまなオープン認証などの機能を提供します。これらの機能のフラスコ、Web開発で、それは非常に人気のある作り。
2つのコアフラスコ:WERKZEUGとJinja2の
- WERKZEUGは、ルーティング、デバッグ、およびWebサーバーのゲートウェイインターフェイスを実現します
- Jinja2のテンプレートを実現しました
二、フラスコのインストール
PIP3フラスコをインストール
一般的な拡張パック:
フラスコSQLAlchemyの:データベースの操作。
フラスコスクリプト:スクリプトを挿入します。
フラスコ-移行:データベース管理を移行します。
フラスコ-セッション:セッションストレージを指定しました。
フラスコ-WTF:フォーム。
フラスコメール:メール。
フラスコ-Bable:国際化とローカライゼーション、翻訳のためのサポートを提供すること。
フラスコ-ログイン:ユーザー認証状態。
フラスコのOpenID:認定。
フラスコのRESTful:REST API開発ツール。
フラスコ-ブートストラップ:Twitterのブートストラップは、フロントエンドフレームを一体化。
フラスコ-モーメント:ローカライズされた日付と時刻。
フラスコ-管理者:管理インターフェイスのためのシンプルかつ拡張可能なフレームワーク
フラスコの第三に、基本的な使い方
フラスコ輸入フラスコ アプリ =フラスコ(__name__ ) @ app.route(' / ' ) デフhello_world(): リターン " のHello World!' もし __name__ == ' __main__ " : app.run()
1 { 2 ' DEBUG ':get_debug_flag(デフォルト= False)が、デバッグモードになっていない 3 ' テスト' :偽、テストモードを開くかどうか 4。 'のPROPAGATE_EXCEPTIONS ' :なし、 5 ' PRESERVE_CONTEXT_ON_EXCEPTION ' :なし、 6。 ' SECRET_KEYの' :なし、 。7 ' PERMANENT_SESSION_LIFETIME ':はtimedelta(日31 =です)、 8 ' USE_X_SENDFILE ' :×、 9 ' LOGGER_NAME ' :なし、 10 ' LOGGER_HANDLER_POLICY ': ' 常に' 、 11 ' SERVER_NAME ' :なし、 12 ' APPLICATION_ROOT ' :なし、 13 ' SESSION_COOKIE_NAME ': ' セッション' 、 14 'SESSION_COOKIE_DOMAIN' :なし、 15 ' SESSION_COOKIE_PATH ' :なし、 16 ' SESSION_COOKIE_HTTPONLY ' :真、 17 ' SESSION_COOKIE_SECURE ' :×、 18 ' SESSION_REFRESH_EACH_REQUEST ' :真、 19 ' MAX_CONTENT_LENGTH ' :なし、 20 ' SEND_FILE_MAX_AGE_DEFAULT ':はtimedelta(時間= 12 ) 、 21 'はTRAP_BAD_REQUEST_ERRORS ':Falseの、 22 ' TRAP_HTTP_EXCEPTIONS ' :偽、 23 ' EXPLAIN_TEMPLATE_LOADING ' :偽、 24 ' PREFERRED_URL_SCHEME ': ' HTTP ' 、 25 ' JSON_AS_ASCII ' :真、 26 ' JSON_SORT_KEYS ' :真、 27 ' JSONIFY_PRETTYPRINT_REGULAR ' :真、 28 " JSONIFY_MIMETYPE ": ' アプリケーション/ JSON ' 、 29 ' TEMPLATES_AUTO_RELOAD ' :なし、 30 }
方法: app.configを[ 「DEBUGが」 ] = 真の PS:それは基本的に辞書であるため、Configオブジェクトを、それはまた、app.config.update(...)を使用することができます 。第二の方法 app.config.from_pyfile(「Pythonのファイル名「) のような: settings.py DEBUG = 真 app.config.from_pyfile(」settings.py 「) app.config.from_envvar(」環境変数名は" ) 、ファイル名のpython環境変数、内部コールfrom_pyfileメソッドの名前である アプリ。 config.from_json(" JSONファイル名" ) JSONファイル名は、JSON形式でなければならないので、内部行うjson.loads app.config.from_mapping({ 「DEBUG 」:真}) 辞書フォーマット app.config.from_object(「パスPythonのクラスまたはタイプ」) App.configファイル.from_object(' pro_flask.settings.TestingConfig ' ) settings.py クラスコンフィグ(オブジェクト): DEBUG = Falseの テスト = Falseの DATABASE_URI = ' SQLiteの://:メモリ:' クラス ProductionConfig(コンフィグ): DATABASE_URI = 'mysqlの://ユーザー@ localhostの/ fooの「 クラスDevelopmentConfig(コンフィグ): DEBUG = Trueの クラスTestingConfig(コンフィグ): TESTING =真
四つフラスコルーティングシステム
@ app.route(' / XXX / <ユーザー名> ' ) @ app.route(' / XXX / <INT:ID> ' ) @ app.route(' / XXX / <フロート:ID> ' ) @ app.route (' / XXX / <パス:パス> ' ) @ app.route(' / XXX '、メソッド= [ ' GET '、' POST ' ])
DEFAULT_CONVERTERS = { ' デフォルト' :UnicodeConverter、 ' 列' :UnicodeConverter、 ' 任意' :AnyConverter、 ' パス' :PathConverter、 ' INT ' :IntegerConverter、 ' フロート' :FloatConverter、 ' UUID ' :UUIDConverter、 }
五、フラスコの青写真
「青写真」システムは、アセンブリに大きな利便性を提供し、フラスコのアプリケーションを拡張します。「コンポーネント」は大幅に大規模なアプリケーションを構築するプロセスを簡素化フラスコ、モジュラー管理、上の層に「分割」することが可能なフラスコアプリケーションを指すだけでなく、それが簡単にアプリケーションを維持することができます。また、「青写真」はまた、コア・メソッドの登録操作のアプリケーションでフラスコの拡張を提供します。
「青写真」とフラスコのアプリケーションオブジェクトは、非常に似ていますが、ないフラスコアプリケーションオブジェクト。(このような理解のために、後に詳細に述べた)をフラスコアプリケーション上の一連の操作を登録することが可能です。あなたは、以下の機能のいくつかを達成することができ、「青写真」を使用します。
- フラスコのアプリケーションは、大規模なアプリケーションのコレクション「青写真」のシリーズに「スプリット」仕事をする方法を簡素化します。
- フラスコアプリケーション、URLまたはサブドメインプレフィックスにと青写真を登録。別のURLへの青写真を複数回登録することができます。
- 青写真、静的ファイル、テンプレート、およびその他の機能が提供するフィルタテンプレート。
以下からの青写真輸入app_indexの app.register_blueprint(app_index)
フラスコインポート青写真 app_index =青写真(" app_index "、__name__、template_folder = " テンプレート")