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