3.フラスコルーティングシステム

一般的に使用されるルーティングシステム

- @app.route('/user/<username>')
- @app.route('/post/<int:post_id>')
- @app.route('/post/<float:post_id>')
- @app.route('/post/<path:path>')
- @app.route('/login', methods=['GET', 'POST'])

第二に、ルーティングパラメータ

1.方法

方法:アクセス要求を許可するために、現在のURLアドレスは、デフォルトでは、GETメソッドのために書き込みません。

@app.route("/info", methods=["GET", "POST"])
def student_info():
    stu_id = int(request.args["id"])
    # Python3.6的新特性 f"{变量名}"
    return f"Hello Old boy {stu_id}"  

2.エンドポイント

エンドポイント:リバースURLアドレス、デフォルトのキャリアの関数名(なurl_for)

from flask import url_for

@app.route("/info", methods=["GET", "POST"], endpoint="r_info")
def student_info():
    print(url_for("r_info"))  # /info
    stu_id = int(request.args["id"])
    return f"Hello Old boy {stu_id}" 

3.デフォルト

デフォルト:パラメータデフォルトビュー機能{ "NID":1}

from flask import url_for

@app.route("/info", methods=["GET", "POST"], endpoint="r_info", defaults={"nid": 100})
def student_info(nid):  #这里形参必须有个nid接收
    print(url_for("r_info"))  # /info
    # stu_id = int(request.args["id"])
    print(nid)  # 100
    return f"Hello Old boy {nid}"

4. strict_slashes

strict_slashes:URLアドレス終了文字「/」コントロール;偽:かどうかの末尾「/」にアクセスがある場合、真:終わりがあってはなりません「/」

# 访问地址 : /info 
@app.route("/info", strict_slashes=True)
def student_info():
    return "Hello Old boy info"
# 访问地址 : /infos  or  /infos/
@app.route("/infos", strict_slashes=False)
def student_infos():
    return "Hello Old boy infos"

5. redirect_to

redirect_to:URLアドレスのリダイレクト、および308恒久的なリダイレクト

# 访问地址 : /info 浏览器跳转至 /infos
@app.route("/info", strict_slashes=True, redirect_to="/infos")
def student_info():
    return "Hello Old boy info"
@app.route("/infos", strict_slashes=False)
def student_infos():
    return "Hello Old boy infos"

6.サブドメイン

サブドメイン:サブドメインプレフィックスsubdomian = "cnblogsは" cnblogs.aspx.comはapp.configを[ "SERVER_NAME"] = "aspx.com" ようにすることができる書きました

app.config["SERVER_NAME"] = "aspx.com"
@app.route("/info",subdomain="cnblogs")
def student_info():
    return "Hello cnblogs info"
# 访问地址为:  cnblogs.aspx.com/info

7.ダイナミックルーティングパラメータ

これは、URLを受け取った後、パラメータの定義である。しかし、このダイナミックなパラメータをルーティング、なurl_for時に、必ずそれに追加の動的パラメータ名+パラメータ値になり、それ以外の場合は、例外パラメータエラーがスローされます

from flask import url_for

# 访问地址 : http://127.0.0.1:5000/info/1
@app.route("/info/<int:nid>", methods=["GET", "POST"], endpoint="r_info")
def student_info(nid):
    print(url_for("r_info",nid=2))  # /info/2
    return f"Hello Old boy {nid}" 
1. 多个参数传递

from flask import url_for
# 访问地址 : http://127.0.0.1:5000/info/1
@app.route("/info/<nid1>/<nid2>", methods=["GET", "POST"], endpoint="r_info")
def student_info(nid):
    print(url_for("r_info",nid=2,nid=3))  # /info/2/3
    return f"Hello Old boy {nid}" 

おすすめ

転載: www.cnblogs.com/hq82/p/12636187.html