flask知識点

4228 ワード

flask知識点
  • 1.app.route()のパラメータ
  • 2. endpoint使用
  • 3.requestオブジェクト
  • 4.セッションオブジェクト
  • 5.ルーティングリダイレクト
  • 6.ビュー関数受信ルーティングのパラメータ
  • 7.redisストレージセッション
  • の使用
  • 8.テンプレートマクロ
  • 8.1パラメータなしマクロ
  • を定義する
  • 8.2パラメータ付きマクロ
  • を定義する
  • 8.3デフォルトパラメータ付きマクロ
  • を定義する
  • 8.4外部マクロ
  • を呼び出す.
  • 9.テンプレートのフラッシュ

  • 1.app.route()のパラメータ
    app.route(rule,methods=リクエストタイプ,endpoint=ルーティングに別名を付ける)
    2.endpoint使用
    from flask import url_for url_for(「ルーティングの別名」)endpointが設定されていない場合、デフォルトはruleです.たとえば、'/index'url_for(‘index’)
    3.requestオブジェクト
    from flask import request 1)request.method:ブラウザの要求方式【GET/POST】2)request.args.get():GET要求伝達のパラメータrequestを取得する.form.get():POST要求伝達のパラメータを取得する
    4.sessionオブジェクト
    from flask import session注意:sessionを作成するにはプロファイルでSECRET_を設定します.KEY.sessionはクラス辞書のオブジェクトであり、辞書には①session:session[]=xxx②を設定する方法がある:session.get()③セッションの削除:delセッション[]
    5.ルーティングリダイレクト
    from flask import redirect redirect(‘ルーティング’)
    6.ビュー関数がルーティングを受け入れるパラメータ
    ルーティングルール:@app.route(’/user/’)デフォルト伝達文字列@app.route(’/post/’)はint@appを伝達する.route(’/post/’)はfloat@appを伝達する.route(’/post/’)パスを渡す
    7.redisストレージセッションの使用
    pip install flask-session 1プロファイルでsettings.pyにPERMANENT_を追加SESSION_LIFETIME=timedelta(minutes=20)#セッションをクッキーに保存する有効期限SESSION_を設定TYPE="redis"#格納セッションのタイプSESSION_REDIS=Redis(host=‘x.x.x.x’,port=‘6379’)#sessionのipとポート②は_ini__.pyのcreate_app関数に追加:from flask_セッションimportセッション#セッションをredisセッションに置き換えます(app)
    8.テンプレートマクロ
    8.1パラメータなしマクロの定義
    {%macro input()%}{%endmacro%}呼び出し:{{input()}}
    8.2パラメータ付きマクロの定義
    {%macro input 2(type,value,size)%}{%endmacro%}呼び出し:{{input 2("password",",50)}}
    8.3デフォルトパラメータ付きマクロの定義
    {%macro input 3(type="text",value=",size=30)%}{%endmacro%}呼び出し:{{input 3("password",",100)}}
    8.4外部マクロの呼び出し
    外部html:{%macro input 4(type="text",value=",size=30)%}{%endmacro%}現在htmlインポート:{%import"外部.html"as別名%}呼び出し:{{別名.input 4()}}
    9.テンプレートのフラッシュ
  • は、Flaskを介して以前に送信された情報のリストを返す.文字列オブジェクトが表すメッセージをメッセージキューに追加し、get_を呼び出すflashed_Messages()メソッド取り出し.

  • 表示py
    @app.route("/")
    def index():
        if flag:
            #       
            flash("hello1")
            flash("hello2")
            flash("hello3")
            global flag
            flag = False
        return render_template("index.html")
    

    模板html
    {
         % for message in get_flashed_messages() %}
        {
         {
          message }}
    {
         % endfor %}