【发布时间】:2017-04-03 15:50:22
【问题描述】:
我正在尝试根据我将放入 url 的 todo_ID 在我的数据库中创建一个新任务。我可以完全在数据库中发布一个新任务,但我希望服务器选择 todo_ID,所以如果一个人在 url 中键入 /1,它将创建一个 todo_ID = 1 的新任务,并根据什么填写 UserID 和详细信息用户放入。问题是我不知道如何根据 todo_ID 来做,所以有人可以告诉我如何:D
from flask import Flask, jsonify,json, request, abort
from flask_sqlalchemy import SQLAlchemy
app = Flask(__name__)
app.config.from_pyfile('Config.py')
db = SQLAlchemy(app)
class User(db.Model, JsonModel): #Class which is a model for the User table in the database
User_ID = db.Column(db.Integer, primary_key = True)
FirstName = db.Column(db.String(20))
LastName = db.Column(db.String(20))
def __init__(self,User_ID,FirstName, LastName):
self.User_ID = User_ID
self.FirstName = FirstName
self.LastName = LastName
class Todo(db.Model, JsonModel): #Class which is a model for the Todo table in the database
todo_ID = db.Column(db.Integer, primary_key = True)
UserID = db.Column(db.Integer, db.ForeignKey("user.User_ID"))
details = db.Column(db.String(30))
def __init__(self, UserID, details):
self.UserID = UserID
self.details = details
@app.route('/<int:todo_ID>', methods = ['POST']) #Uses POST method with same URL as GET method to add new information to Todo table.
def create_dev(todo_ID):
id = Todo.query.create(todo_ID)
dev = request.json["UserID"],request.json["details"]
db.session.add(id,dev)
db.session.commit()
return "New task has been created.", 201
@app.before_first_request #Creates everything before the first request.
def startup():
db.create_all()
if __name__ == '__main__':
app.run()
【问题讨论】:
-
您确定存在您的网址中带有 id 的记录吗?
-
哦……我以为我应该添加一个我以前没有的 id……呃,我不应该有那部分代码吗?现在我想起来了,它看起来像是我更新时需要的东西