Flask-SQLAlchemy 按照文档写的往数据库里添加数据但是添加不进去,也没有报错,求问原因在哪里?

from flask import Flask, session
from flask import render_template
from flask_script import Manager
from flask import url_for
from flask import request, jsonify, json

from flask_cors import CORS

from flask_sqlalchemy import SQLAlchemy
import os

from flask_json import FlaskJSON, JsonError, json_response, as_json

from flask_marshmallow import Marshmallow

basedir = os.path.abspath(os.path.dirname(__file__))


app = Flask(__name__)

# cors = CORS(app, resources={r"/api/*": {"origins": "*"}})
cors = CORS(app, resources={r"/*": {"origins": "*"}})
app.config['SECRET_KEY'] = 'a string'
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///' + \
                                        os.path.join(basedir, 'data.sqlite')
# 自动提交
app.config['SQLALCHEMY_COMMIT_TEARDOWN'] = True

app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False

manager = Manager(app)
db = SQLAlchemy(app)
ma = Marshmallow(app)

class Article(db.Model):
    """docstring for Article"""
    __tablename__ = 'articles'
    id = db.Column(db.Integer, primary_key = True)
    title = db.Column(db.String(64))
    # content = db.Column(db.Text)
    content = db.Column(db.Text)
    # article_type = db.Column(db.String(64))
    # tiem =  db.Column(db.DateTime)

class ArticleSchema(ma.ModelSchema):
    class Meta:
        medel = Article



@app.route('/')
def index():
    articles = Article.query.all()
    articles_schema = ArticleSchema()
    output = articles_schema.dump(articles).data
    return jsonify({'articles': output})


@app.route('/create', methods=['POST'])
def create():
    title = request.form['title']
    content = request.form['content']
    article = Article(title=title, content=content)
 
    db.session.add(article)
    db.session.commit()
    session['known'] = False
    
    ##这里有返回content,所以是获取到了前端的数据的
    return content
 

if __name__ == '__main__':
    manager.run()

这是在前端用的 vue 发送 post 请求

        methods:{
            submitArticle: function() {
                let data= {}
                data["title"] = this.title
                data["content"] = this.content
                
                console.log(data)
                this.$http.post('http://127.0.0.1:7626/create', data).then( res => {
                    console.log(res)
                })
            }
        }

服务器返回数据永远是空(下图),所以怀疑数据添加到数据库上没有成功,但是在命令行窗口可以查询到数据...

clipboard.png

clipboard.png

阅读 3.8k
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题