我正在尝试使用 python 和 Flask 创建一个网络应用程序。
我已经完成了路由部分,现在我正在尝试建立一个 Sqlite3 数据库来存储用户信息。
以下是我的代码。
from flask import Flask, render_template, redirect, request
import sqlite3
from flask_sqlalchemy import SQLAlchemy
from flask_login import UserMixin
from flask_login import LoginManager
login_manager = LoginManager()
app = Flask(__name__)
#To connect the database with the app
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///tekken.db'
db = SQLAlchemy(app)
class User(db.Model):
id = db.Column(db.Integer, primary_key=True)
username = db.Column(db.String(20), nullable=False)
email = db.Column(db.String(20), nullable=False)
password = db.Column(db.String(80), nullable=False)
我保存了代码并在终端中打开了 Flask shell,然后运行了以下命令。
db.create_all()
运行命令后,我打开另一个终端窗口并运行以下命令。
sqlite 3 铁拳.db .表格;
但是,它显示“错误:在准备中,靠近“表”:语法错误(1)”,并且似乎从未创建过用户表。
我的代码中缺少什么?
为了调试此问题,请打开终端并运行
sqlite3 tekken.db
以打开 sqlite cli。然后运行.tables
。
这应该会显示您拥有的数据库列表。
如果您看不到 User
模型,则表示存在错误。
然后运行 Flask 应用程序并再次打开 Flask shell 并再次运行
db.create_all()
。这次检查 Flask 应用程序日志,看看是否可以看到任何错误