Python烧瓶没有获取URL参数

时间:2018-01-17 18:08:16

标签: python rest flask

我正在使用一个简单的REST服务,方法deleteTweets()无法检索我发送的URL参数,因此尝试打印以查看发送的内容但我得到了这个错误行。

  File "C:\Path\HomeController.py", line 26, in deleteTwee
ts
    id = request.args.get['id']
AttributeError: 'function' object has no attribute 'args'
127.0.0.1 - - [17/Jan/2018 12:00:05] "DELETE /api/deleteTweet?id=ABC HTTP/1.1" 500 

这段代码:

import json
import Service
from flask import Flask, render_template,jsonify,request


app = Flask(__name__)

apiUrl='/api'


@app.route('/')
def hello_world():
    return render_template("/home.html", code=400)

@app.route(apiUrl+'/getData', methods=['GET'])
def test_request():
    list = [15,21,8]
    return jsonify(list)

@app.route(apiUrl+'/getTweets', methods=['GET'])
def request():
    return Service.getAlltwits()

@app.route(apiUrl+'/deleteTweet', methods=['DELETE'])
def deleteTweets():
    id = request.args.get['id'] 
    print(id)
    return 

这很简单,但不确定我错过了什么。 还尝试了id = request.args.get('id')

2 个答案:

答案 0 :(得分:4)

您正在做正确的事 - 并且您正在导入request

但是你有一个名为request的函数,这个函数会覆盖以前的名字(这是实际的烧瓶请求):

@app.route(apiUrl+'/getTweets', methods=['GET'])
def request():
    return Service.getAlltwits()

将名称更改为get_tweets

@app.route(apiUrl+'/getTweets', methods=['GET'])
def get_tweets():
    return Service.getAlltwits()

答案 1 :(得分:2)

您已定义了一个名为request的函数,因此隐藏了全局请求变量。重命名路线功能。