[英]__init__() takes 1 positional argument but 3 were given
我正在嘗試向創建的表發送發布請求,但不斷收到錯誤init ()接受1個位置參數,但給出了3個。
from flask import Flask, request, jsonify
from flask_sqlalchemy import SQLAlchemy
import os
app = Flask(__name__)
file_path = os.path.abspath(os.getcwd())+"\database.db"
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///'+file_path
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False
db = SQLAlchemy(app)
class post(db.Model):
id = db.Column(db.Integer, primary_key=True)
status = db.Column(db.Boolean(50))
title = db.Column(db.String(200))
body = db.Column(db.String(max))
createdtime = db.Column(db.DateTime())
def __init__(self, status, title, body, createdtime):
self.status = status
self.title= title
self.body = body
self.createdtime = createdtime
@app.route('/api/posts', methods=['GET'])
def get_all_posts():
return ''
@app.route('/api/posts/<id>', methods=['GET'])
def get_one_post():
return ''
@app.route('/api/new-post', methods=['POST'])
def put_post():
title= request.get_json('title')
body= request.get_json('body')
new_post= post(title, body)
db.session.add(new_post)
db.session.commit()
return jsonify({'message': 'Post created Successfully'})
@app.route('/api/delete-post', methods=['DELETE'])
def delete_post():
return ''
if __name__ == '__main__':
app.run(debug=True)
我究竟做錯了什么?
再加上我的要求看起來像這樣
{
"title" : "Start before you are ready",
"body": "This post will be a little different from what I'm used to
write. I tend to keep my articles in the technical realm of programming.
This time, I'll have to talk about a subject that transformed my mindset
lately. It will appear a little like a rant, and it very well may be :D"
}
首先, __init__
方法與post類的縮進級別不同。 其次,您不需要覆蓋db.Model
的默認構造函數,可以使用Post模型。
例如: post = Post(title='xx')
,只要實例中使用的屬性在類中,就可以在實例化Post類時向其傳遞盡可能多的參數。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.