- 41
- 0
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_marshmallow import Marshmallow
basedir = os.path.abspath(os.path.dirname(__file__))
app = Flask(__name__)
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)
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)
session['known'] = False
return content
if __name__ == '__main__':
manager.run()
- 共 0 条
- 全部回答
-
单身还能是贵族. 普通会员 1楼
在Flask中,如果你试图向数据库中添加数据,但是前端获取到的数组结果是空的,这可能有以下几种原因:
- 模型中定义的字段缺失:首先,你需要确保你的模型中定义了所有需要在数据库中存储的字段。例如,如果你的模型有
users表,其中包含id(主键)和name字段,你可以在你的模型文件(如users.py)中定义如下:
```python from flask_sqlalchemy import SQLAlchemy
app = Flask(name) app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///users.db' db = SQLAlchemy(app)
class User(db.Model): id = db.Column(db.Integer, primary_key=True) name = db.Column(db.String(100), nullable=False) ```
在这个例子中,
id字段是一个整数类型,这是SQLite数据库支持的唯一主键类型。如果你的数据库只支持自增的整数字段,那么你可能需要将id字段定义为db.Column(db.Integer, autoincrement=True),这将设置id字段为自增的整数类型。- 缺少数据库连接:确保你已经正确地连接到数据库。你可以通过以下代码检查数据库连接:
```python import os
创建数据库连接
app.config['SQLALCHEMY_DATABASE_URI'] = os.environ.get('DATABASE_URL') db = SQLAlchemy(app)
如果数据库连接不存在,尝试创建
if not db.is_connected(): db.create_all() ```
-
SQLAlchemy数据库连接配置问题:如果你的数据库配置文件(如
database.ini)中没有正确设置数据库的URL,或者连接失败,那么你可能无法向数据库中添加数据。你需要确保你的数据库URL和端口设置正确,并且在配置文件中添加数据库连接信息。 -
字段名称错误:在数据库查询中,如果字段名拼写错误,或者使用了错误的SQL语法,可能会导致数据库查询失败,进而导致数据在数据库中丢失。你需要确保你正在使用正确的字段名,并且在你的SQL查询语句中正确地引用了数据库表中的字段。
-
数据库表存在:确保你的数据库表已经创建,且数据已经被添加到表中。你可以使用
db.session.add()方法向数据库中添加数据,然后使用db.session.commit()或db.session.rollback()方法提交更改或回滚更改。 -
数据库表已满:如果数据库表已经满,你可能无法向其中添加新的数据。你可以使用
db.session.delete()方法删除表中的所有数据,然后使用db.session.commit()或db.session.rollback()方法提交更改或回滚更改。 -
数据库表的索引设置:如果你的数据库表没有设置适当的索引,如主键索引,可能会导致数据在查询时性能下降,甚至无法正确找到数据。你可以使用
db.create_index()方法为表中的字段设置索引,然后使用db.session.commit()或db.session.rollback()方法提交更改或回滚更改。
如果你尝试了以上所有可能的原因,但仍然无法在数据库中添加数据,那么可能需要查阅数据库的官方文档,以确定具体的问题所在。例如,如果你使用的是SQLite数据库,可以参考SQLite官方文档中的
SQLAlchemy文档,以了解如何在数据库中添加、删除、更新和查询数据。 - 模型中定义的字段缺失:首先,你需要确保你的模型中定义了所有需要在数据库中存储的字段。例如,如果你的模型有
- 扫一扫访问手机版
回答动态

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器更新之后。服务器里面有部分玩家要重新创建角色是怎么回事啊?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题函数计算不同地域的是不能用内网吧?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题ARMS可以创建多个应用嘛?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题在ARMS如何申请加入公测呀?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题前端小程序接入这个arms具体是如何接入监控的,这个init方法在哪里进行添加?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器刚到期,是不是就不能再导出存档了呢?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器的游戏版本不兼容 尝试更新怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器服务器升级以后 就链接不上了,怎么办?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器转移以后服务器进不去了,怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器修改参数后游戏进入不了,是什么情况?预计能赚取 0积分收益
- 回到顶部
- 回到顶部
