簡體   English   中英

如何將參數傳遞給 Flask Blueprint Python 應用程序的 Get 請求?

[英]How Do I Pass A Parameter into A Get Request to A Flask Blueprint Python App?

我有一個燒瓶/藍圖應用程序,可以處理硬編碼或all() GET 請求。 這是api.py中的代碼:

from flask import Blueprint

from ..extensions import db
from ..models.users import Users

api = Blueprint('api', __name__)

@api.route('/user/<name>')
def get_user(email):
    users = Users.query.first()

    return {'users': users.email}

上面的代碼有效並且在 Postman 中執行GET http://127.0.0.1:5000/user/anythingHere返回:

{
    "users": "test@example.com"
}

這是正確的並且與我的數據庫相對應。 但是當我將api.py中的代碼修改為如下所示時:

from flask import Blueprint

from ..extensions import db
from ..models.users import Users

api = Blueprint('api', __name__)

@api.route('/user/<name>')
def get_user(email):
    users = Users.query.filter_by(email='<name>').first()

    return {'users': users.email}

在 Postman 中運行http://127.0.0.1:5000/user/test@example.com希望test@example.com<name>填充到filter_by(email='<name>')中,但顯然這不會我得到TypeError: get_user() got an unexpected keyword argument 'name' in my terminal and this in Postman:

<!doctype html>
<html lang=en>
<title>500 Internal Server Error</title>
<h1>Internal Server Error</h1>
<p>The server encountered an internal error and was unable to complete your request. Either the server is overloaded or
    there is an error in the application.</p>

那么如何將 GET 請求中的 email 參數傳遞給 get_user 函數呢?

您需要將email作為email而不是<email>傳遞給函數,如下所示:

from flask import Blueprint

from ..extensions import db
from ..models.users import Users

api = Blueprint('api', __name__)

@api.route('/user/<email>')
def get_user(email):
    users = Users.query.filter_by(email=email).first()

    return {'users': users.email}

暫無
暫無

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

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