簡體   English   中英

Flask 將值傳遞給 POST 方法

[英]Flask passing value into POST method

當請求是 POST 時,我需要傳遞 feature_id 值。 但我從下面的代碼中得到一個空值。

@app.route("/add_user_story", methods=["GET", "POST"])
@login_required
def add_user_story():
    feature_id=request.args.get("feature_id")
    print(feature_id)
    if request.method == "POST":
        
        user_story = User_stories(
            user_id=session["user"],
            feature_id =feature_id,
            as_a=request.form.get("as_a"),
            i_want=request.form.get("i_want"),
            so_that=request.form.get("so_that"),
            given=request.form.get("given"),
            when=request.form.get("when"),
            then=request.form.get("then")
        )
        db.session.add(user_story)
        db.session.commit()
        
    return render_template("logged_in/add_user_story.html") 

我檢查了終端,並且我的打印語句具有值,所以我知道它已經走了那么遠,為了測試表單是否有效,我已將 feature_id =feature_id 替換為 feature_id =24,並且它成功發布了數據。

我也試過

# LOGGED IN - Add User Story
@app.route("/add_user_story", methods=["GET", "POST"])
@login_required
def add_user_story():
    if request.method == "POST":
        
        user_story = User_stories(
            user_id=session["user"],
            feature_id=request.args.get("feature_id"),
            as_a=request.form.get("as_a"),
            i_want=request.form.get("i_want"),
            so_that=request.form.get("so_that"),
            given=request.form.get("given"),
            when=request.form.get("when"),
            then=request.form.get("then")
        )
        db.session.add(user_story)
        db.session.commit()
        
    return render_template("logged_in/add_user_story.html")

request.args.get 通常與 'GET' 方法一起使用,然后將其放入 URL 和函數的參數中:

@app.route("/add_user_story/<int:feature_id>", methods=["GET", "POST"])
@login_required
def add_user_story(feature_id): # functions gets a parameter
    feature_id=request.args.get("feature_id")
    print(feature_id)
    if request.method == "POST":

或(發布的最佳方式)在表單中添加具有定義值的新輸入:

<input type="hidden" name="feature_id" id="feature_id" value="24">

request.args 僅包含在查詢字符串中傳遞的數據。 查詢字符串是 URL 中“?”之后的部分。 例子:

example.com?q="數據"

result = request.args.get("q"),結果將包含“數據”。

因此,使用 request.args 或 request.form 或 request.get_json() 都取決於您的發布請求。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM