使用Python Flask和SQLite,如何使用CURL命令更新某些字段?

时间:2018-03-10 07:14:34

标签: python python-3.x flask flask-sqlalchemy put

我正在尝试使用Python Flask和SQLite创建API。我目前已经实现了一个post方法,其中我将curl命令中的每个数据参数设置为一个不同的变量。但是,对于put方法,我可能只想更新几个字段。我该如何实现?作为参考,这是我到目前为止:

from flask import Flask, request
from flask_restful import Resource, Api
from sqlalchemy import create_engine
from json import dumps
from flask_jsonpify import jsonify
db = create_engine('sqlite:///employees.db')
app = Flask(__name__)
api = Api(app)
conn = db.connect()
class EmployeeID(Resource):
    def get(self, employeeid):
        query = conn.execute("SELECT * FROM employees WHERE EmployeeId =%d "  %int(employeeid))
        result = {'data': [dict(zip(tuple (query.keys()) ,i)) for i in query.cursor]}
        return jsonify(result)

    def delete(self, employeeid):
        conn.execute("DELETE FROM employees WHERE EmployeeId = %d " %int(employeeid))
        return "Employee Deleted"

    def put(self, employeeid):
        #Trying to figure out how to do this
        query = conn.execute("SELECT * FROM employees WHERE EmployeeId =%d " %int(employeeid))
        return "Employee Updated"

api.add_resource(EmployeeID, '/employees/<employeeid>')

例如:

curl -X PUT -H "Content-Type: application/json" -d '{"key1":"value", "key2":"value2"}' "MY_URL"

我想只更新key1和key2。如何在不触及其余部分的情况下专门访问员工的这两个键?请记住,它不会始终是key1和key2。谢谢你的帮助!

0 个答案:

没有答案