【发布时间】:2020-10-24 01:05:44
【问题描述】:
尝试使用 python、flask 和 sqlalchemy 构建待办事项列表应用程序; 在为数据库创建表时出现此错误
我运行这个命令
'from app import db'
我收到此警告:
C:\Users\Mahmoud\.virtualenvs\to-do_list_flask-Gr0Wv-V5\lib\site-packages\sqlalchemy\ext\declarative\base.py:361: SAWarning: Attribute 'item' on class <class 'app.todo'> appears to be a non-schema 'sqlalchemy.sql.column()' object; this won't be part of the declarative mapping
% (key, cls)
C:\Users\Mahmoud\.virtualenvs\to-do_list_flask-Gr0Wv-V5\lib\site-packages\sqlalchemy\ext\declarative\base.py:361: SAWarning: Attribute 'date' on class <class 'app.todo'> appears to be a non-schema 'sqlalchemy.sql.column()' object; this won't be part of the declarative mapping
% (key, cls)
如果我执行db.create_all(),该表只有一个 id 列
我的脚本:
from flask import Flask, render_template, request
from flask_sqlalchemy import SQLAlchemy
app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'postgres://postgres:123456@localhost/todo_list'
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False
db = SQLAlchemy(app)
class todo(db.Model):
__tablename__ = 'todo'
id = db.Column(db.Integer, primary_key=True)
item = db.column(db.String(500))
date = db.column(db.Date)
def __init__(self, item, date):
self.item = item
self.date = date
@app.route('/')
def index():
return render_template('index.html')
@app.route('/submit', methods = ['POST'])
def submit():
if request.method == 'POST':
item = request.form['item']
date = request.form['date']
data = todo(item, date)
db.session.add(data)
db.session.commit()
return render_template('index.html', item = item, date = date)
if __name__ == '__main__':
app.run(host='127.0.0.1', port=8000, debug=True)
【问题讨论】:
-
db.Column大写为C。 -
初学者问题:感谢它
-
@KlausD。我找不到重复项来标记它,因此值得将您的评论变成答案。
标签: python sqlalchemy