【问题标题】:How to get JSON Result while adding user to Mysql Database using flask rest API使用flask rest API将用户添加到Mysql数据库时如何获取JSON结果
【发布时间】:2020-02-02 14:29:24
【问题描述】:

当我使用 Flask Rest API 在 MySQL 数据库中添加用户时,我无法获得 JSON 结果?

我能够在 MYSQL 数据库 SuccessFully 中添加一个用户,但无法在 JSON 文件中获得结果我需要像 {'user': 'added', 'Response' : '200 Ok'} 这样的结果

我的代码是:

from flask import Flask, request, jsonify
import mysql.connector
import jsonify

app = Flask(__name__)

@app.route('/')
def index():
    return "This is database kind of thing "

@app.route('/add', methods=['POST'])
def adduser():
    result = [{'msg': 'success'}, {'stat': '200 ok'}]
    if request.method == 'POST':
        input_body = request.get_json()
        number = input_body['number']
        name = input_body['name']
        company = input_body['company']
        location = input_body['location']
        salary = input_body['salary']
        Operation = input_body['Operation']

        if Operation == 'adduser':
            connection = mysql.connector.connect(host="localhost", user="root", passwd="root", database="aviral")
            mycursor = connection.cursor()
            query = "INSERT INTO data (number, name, company, location, salary) VALUES (%s,%s,%s,%s,%s)"
            val = (number, name, company, location, salary)
            mycursor.execute(query, val)
            connection.commit()
            return jsonify({'result': result})

if __name__ == "__main__":
    app.run(debug=True)

我的数据在 MYSQL WorkBench 中添加成功,而我得到的错误是现在我只需要像 Postman 这样的 API 测试器中的 JSON 响应

使用 Postman 添加数据

{
    "number": "12",
    "name": "Chetana",
    "company": "MDH",
    "location": "Masale",
    "salary": "23504",
    "Operation": "adduser"
}

但是得到下面的结果,而添加数据是MYSQL

return jsonify({'result': result})
TypeError: 'module' object is not callable

【问题讨论】:

    标签: python json rest flask mysql-workbench


    【解决方案1】:

    您有第二次导入 jsonify - 这是错误的。正确的导入是:

    from flask import jsonify
    

    或者你可以直接访问jsonify方法:

    flask.jsonify({'result': result})
    

    删除此导入:

    import jsonify
    

    【讨论】:

    • 是的,帮助很大。我得到了像 { "result": [ { "msg": "success" }, { "stat": "200 ok" } ] } 这样的答案,但是如果像 { "result": [ { "msg": "成功”“stat”:“200 ok”}]
    • 那是因为你定义了结果变量。改变它。
    猜你喜欢
    • 2015-05-20
    • 1970-01-01
    • 2020-11-23
    • 1970-01-01
    • 2017-07-06
    • 2014-12-28
    • 1970-01-01
    • 2017-07-14
    • 2018-02-06
    相关资源
    最近更新 更多