所以,这是我的问题
我正在使用SQLAlchemy ORM
在Flask上创建应用程序现在的问题是,我可能搞砸了创建表用户;
在models.py代码中,
class User(db.Model):
id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.String(50))
username = db.Column(db.String(25), unique=True)
password = db.Column(db.String(50))
email = db.Column(db.VARCHAR(50), unique=True)
registerdate= db.Column(db.DateTime)
def __init__(self,
name,
username,
password,
email,
registerdate=None):
self.name = name
self.username = username
self.password = password
self.email = email
if registerdate is None:
registerdate = datetime.utcnow()
self.registerdate = registerdate
现在,错误就像是
OperationalError: table User has no column named user_name
这是因为我弄乱了表创建,用列" user_name"创建表。首先,当它给我一个与下划线有关的错误时,我试图修改代码但是又遇到了另一个错误......
那么如何删除之前的用户' SQL Alchemy ORM中的表没有使用通常的sqlite3语法和命令?
P.S:我使用的是ubuntu 16.04 python终端,没有像Atom或Pycharm那样的IDE和东西......
答案 0 :(得分:-2)
好吧!因此被引擎混淆后#39;以及关于sqlite的大量其他技术问题,
我终于有了解决方案!
首先通过Ubuntu终端进入python终端......然后执行,
from YourProject import app,db
from YourProject.models import Table1,Table2....User #import the classes whose data you want to manipulate
import sqlite3
con = sqlite3.connect('ABSOLUTE PATH TO YOUR DB FILE')
c = con.cursor()
c.execute("DROP TABLE User;")
db.session.commit() #i am a bit unsure about this one
就是这样,那就是我如何删除我的麻烦用户'用户'表。然后我创建了一个新的,它可以创造奇迹!
此外,我的用户类代码以前格式不太好,如
def __init__(self,name,username,password,email,registerdate=None):
self.name = name
self.username = username
self.password = password
self.email = email
if registerdate is None:
registerdate = datetime.utcnow()
self.registerdate = registerdate
注意,“楼梯”中的“班级”参数是如何进行的。形成之前?这也让我在创建表格和向其添加数据时遇到了麻烦。所以一定要照顾好。
这是初学者可能遇到的问题,并且发现令人生畏,希望我能帮助别人!
干杯!