Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 表使用Flask SQLAlchemy创建,但它们不会显示在sqlite命令行(shell)上_Python_Sqlite_Sqlalchemy_Flask Sqlalchemy - Fatal编程技术网

Python 表使用Flask SQLAlchemy创建,但它们不会显示在sqlite命令行(shell)上

Python 表使用Flask SQLAlchemy创建,但它们不会显示在sqlite命令行(shell)上,python,sqlite,sqlalchemy,flask-sqlalchemy,Python,Sqlite,Sqlalchemy,Flask Sqlalchemy,我正在使用flask SQLAlchemy和以下结构文件开发一个flask应用程序。当我创建数据库(db.sqlite3)并在sqlite命令行sqlite>.tables上写入时,创建到db.py文件中的表(列名称)不会显示在shell中。没有任何消息错误。只是当我编写这个命令时,shell没有显示任何内容。我尝试过不同的选择,我不知道该怎么办了如何获取shell以显示表的列? 文件树: |-PROBATINAS_2 (proyect name) |-probatina |- __

我正在使用flask SQLAlchemy和以下结构文件开发一个flask应用程序。当我创建数据库(db.sqlite3)并在sqlite命令行
sqlite>.tables
上写入时,创建到db.py文件中的表(列名称)不会显示在shell中。没有任何消息错误。只是当我编写这个命令时,shell没有显示任何内容。我尝试过不同的选择,我不知道该怎么办了如何获取shell以显示表的列?

文件树:

|-PROBATINAS_2 (proyect name)
  |-probatina
    |- __init__.py
    |- db.py
    |- db.sqlite3 (database)
  |-venv
   |- Include
   |- Lib
   |- Scripts
  |-.env
  |-app.py
  |-config.py
from flask import Flask
app = Flask(__name__, instance_relative_config=True)
app.config.from_object('config')
from probatina import app
from flask_sqlalchemy import SQLAlchemy
from datetime import datetime, timedelta

SQLALCHEMY_DATABASE_URI = app.config['SQLALCHEMY_DATABASE_URI']
SQLALCHEMY_TRACK_MODIFICATIONS = app.config['SQLALCHEMY_TRACK_MODIFICATIONS']
db = SQLAlchemy(app)
db.create_all()
#db.init_app(app)

class Customer(db.Model):
    id = db.Column(db.Integer, primary_key=True) 
    first_name = db.Column(db.String(50), nullable=False)
    last_name = db.Column(db.String(50), nullable=False)
    address = db.Column(db.String(500), nullable=False)
    city = db.Column(db.String(50), nullable=False)
    postcode = db.Column(db.String(50), nullable=False)
    email = db.Column(db.String(50), nullable=False, unique=True)

    orders = db.relationship('Order', backref='customer')

order_product = db.Table('order_product',
    db.Column('order_id', db.Integer, db.ForeignKey('order.id'), primary_key=True),
    db.Column('product_id', db.Integer, db.ForeignKey('product.id'), primary_key=True)
)

class Order(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    order_date = db.Column(db.DateTime, nullable=False, default=datetime.utcnow)
    shipped_date = db.Column(db.DateTime)
    delivered_date = db.Column(db.DateTime)
    coupon_code = db.Column(db.String(50))
    customer_id = db.Column(db.Integer, db.ForeignKey('customer.id'), nullable=False)

    products = db.relationship('Product', secondary=order_product)

class Product(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String(50), nullable=False, unique=True)
    price = db.Column(db.Integer, nullable=False)    
FLASK_APP=app.py
FLASK_ENV=development
from probatina import app

if __name__ == '__main__':
    app()
SQLALCHEMY_DATABASE_URI = 'sqlite:///C:/Users/ferna/Documents/Curso Aprender a programar desde cero/probatinas_2/probatina/db.sqlite3'
SQLALCHEMY_TRACK_MODIFICATIONS = False
为这些文件编写的代码如下所示:

init.py:

|-PROBATINAS_2 (proyect name)
  |-probatina
    |- __init__.py
    |- db.py
    |- db.sqlite3 (database)
  |-venv
   |- Include
   |- Lib
   |- Scripts
  |-.env
  |-app.py
  |-config.py
from flask import Flask
app = Flask(__name__, instance_relative_config=True)
app.config.from_object('config')
from probatina import app
from flask_sqlalchemy import SQLAlchemy
from datetime import datetime, timedelta

SQLALCHEMY_DATABASE_URI = app.config['SQLALCHEMY_DATABASE_URI']
SQLALCHEMY_TRACK_MODIFICATIONS = app.config['SQLALCHEMY_TRACK_MODIFICATIONS']
db = SQLAlchemy(app)
db.create_all()
#db.init_app(app)

class Customer(db.Model):
    id = db.Column(db.Integer, primary_key=True) 
    first_name = db.Column(db.String(50), nullable=False)
    last_name = db.Column(db.String(50), nullable=False)
    address = db.Column(db.String(500), nullable=False)
    city = db.Column(db.String(50), nullable=False)
    postcode = db.Column(db.String(50), nullable=False)
    email = db.Column(db.String(50), nullable=False, unique=True)

    orders = db.relationship('Order', backref='customer')

order_product = db.Table('order_product',
    db.Column('order_id', db.Integer, db.ForeignKey('order.id'), primary_key=True),
    db.Column('product_id', db.Integer, db.ForeignKey('product.id'), primary_key=True)
)

class Order(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    order_date = db.Column(db.DateTime, nullable=False, default=datetime.utcnow)
    shipped_date = db.Column(db.DateTime)
    delivered_date = db.Column(db.DateTime)
    coupon_code = db.Column(db.String(50))
    customer_id = db.Column(db.Integer, db.ForeignKey('customer.id'), nullable=False)

    products = db.relationship('Product', secondary=order_product)

class Product(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String(50), nullable=False, unique=True)
    price = db.Column(db.Integer, nullable=False)    
FLASK_APP=app.py
FLASK_ENV=development
from probatina import app

if __name__ == '__main__':
    app()
SQLALCHEMY_DATABASE_URI = 'sqlite:///C:/Users/ferna/Documents/Curso Aprender a programar desde cero/probatinas_2/probatina/db.sqlite3'
SQLALCHEMY_TRACK_MODIFICATIONS = False
db.py:

|-PROBATINAS_2 (proyect name)
  |-probatina
    |- __init__.py
    |- db.py
    |- db.sqlite3 (database)
  |-venv
   |- Include
   |- Lib
   |- Scripts
  |-.env
  |-app.py
  |-config.py
from flask import Flask
app = Flask(__name__, instance_relative_config=True)
app.config.from_object('config')
from probatina import app
from flask_sqlalchemy import SQLAlchemy
from datetime import datetime, timedelta

SQLALCHEMY_DATABASE_URI = app.config['SQLALCHEMY_DATABASE_URI']
SQLALCHEMY_TRACK_MODIFICATIONS = app.config['SQLALCHEMY_TRACK_MODIFICATIONS']
db = SQLAlchemy(app)
db.create_all()
#db.init_app(app)

class Customer(db.Model):
    id = db.Column(db.Integer, primary_key=True) 
    first_name = db.Column(db.String(50), nullable=False)
    last_name = db.Column(db.String(50), nullable=False)
    address = db.Column(db.String(500), nullable=False)
    city = db.Column(db.String(50), nullable=False)
    postcode = db.Column(db.String(50), nullable=False)
    email = db.Column(db.String(50), nullable=False, unique=True)

    orders = db.relationship('Order', backref='customer')

order_product = db.Table('order_product',
    db.Column('order_id', db.Integer, db.ForeignKey('order.id'), primary_key=True),
    db.Column('product_id', db.Integer, db.ForeignKey('product.id'), primary_key=True)
)

class Order(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    order_date = db.Column(db.DateTime, nullable=False, default=datetime.utcnow)
    shipped_date = db.Column(db.DateTime)
    delivered_date = db.Column(db.DateTime)
    coupon_code = db.Column(db.String(50))
    customer_id = db.Column(db.Integer, db.ForeignKey('customer.id'), nullable=False)

    products = db.relationship('Product', secondary=order_product)

class Product(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String(50), nullable=False, unique=True)
    price = db.Column(db.Integer, nullable=False)    
FLASK_APP=app.py
FLASK_ENV=development
from probatina import app

if __name__ == '__main__':
    app()
SQLALCHEMY_DATABASE_URI = 'sqlite:///C:/Users/ferna/Documents/Curso Aprender a programar desde cero/probatinas_2/probatina/db.sqlite3'
SQLALCHEMY_TRACK_MODIFICATIONS = False
.env:

|-PROBATINAS_2 (proyect name)
  |-probatina
    |- __init__.py
    |- db.py
    |- db.sqlite3 (database)
  |-venv
   |- Include
   |- Lib
   |- Scripts
  |-.env
  |-app.py
  |-config.py
from flask import Flask
app = Flask(__name__, instance_relative_config=True)
app.config.from_object('config')
from probatina import app
from flask_sqlalchemy import SQLAlchemy
from datetime import datetime, timedelta

SQLALCHEMY_DATABASE_URI = app.config['SQLALCHEMY_DATABASE_URI']
SQLALCHEMY_TRACK_MODIFICATIONS = app.config['SQLALCHEMY_TRACK_MODIFICATIONS']
db = SQLAlchemy(app)
db.create_all()
#db.init_app(app)

class Customer(db.Model):
    id = db.Column(db.Integer, primary_key=True) 
    first_name = db.Column(db.String(50), nullable=False)
    last_name = db.Column(db.String(50), nullable=False)
    address = db.Column(db.String(500), nullable=False)
    city = db.Column(db.String(50), nullable=False)
    postcode = db.Column(db.String(50), nullable=False)
    email = db.Column(db.String(50), nullable=False, unique=True)

    orders = db.relationship('Order', backref='customer')

order_product = db.Table('order_product',
    db.Column('order_id', db.Integer, db.ForeignKey('order.id'), primary_key=True),
    db.Column('product_id', db.Integer, db.ForeignKey('product.id'), primary_key=True)
)

class Order(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    order_date = db.Column(db.DateTime, nullable=False, default=datetime.utcnow)
    shipped_date = db.Column(db.DateTime)
    delivered_date = db.Column(db.DateTime)
    coupon_code = db.Column(db.String(50))
    customer_id = db.Column(db.Integer, db.ForeignKey('customer.id'), nullable=False)

    products = db.relationship('Product', secondary=order_product)

class Product(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String(50), nullable=False, unique=True)
    price = db.Column(db.Integer, nullable=False)    
FLASK_APP=app.py
FLASK_ENV=development
from probatina import app

if __name__ == '__main__':
    app()
SQLALCHEMY_DATABASE_URI = 'sqlite:///C:/Users/ferna/Documents/Curso Aprender a programar desde cero/probatinas_2/probatina/db.sqlite3'
SQLALCHEMY_TRACK_MODIFICATIONS = False
app.py:

|-PROBATINAS_2 (proyect name)
  |-probatina
    |- __init__.py
    |- db.py
    |- db.sqlite3 (database)
  |-venv
   |- Include
   |- Lib
   |- Scripts
  |-.env
  |-app.py
  |-config.py
from flask import Flask
app = Flask(__name__, instance_relative_config=True)
app.config.from_object('config')
from probatina import app
from flask_sqlalchemy import SQLAlchemy
from datetime import datetime, timedelta

SQLALCHEMY_DATABASE_URI = app.config['SQLALCHEMY_DATABASE_URI']
SQLALCHEMY_TRACK_MODIFICATIONS = app.config['SQLALCHEMY_TRACK_MODIFICATIONS']
db = SQLAlchemy(app)
db.create_all()
#db.init_app(app)

class Customer(db.Model):
    id = db.Column(db.Integer, primary_key=True) 
    first_name = db.Column(db.String(50), nullable=False)
    last_name = db.Column(db.String(50), nullable=False)
    address = db.Column(db.String(500), nullable=False)
    city = db.Column(db.String(50), nullable=False)
    postcode = db.Column(db.String(50), nullable=False)
    email = db.Column(db.String(50), nullable=False, unique=True)

    orders = db.relationship('Order', backref='customer')

order_product = db.Table('order_product',
    db.Column('order_id', db.Integer, db.ForeignKey('order.id'), primary_key=True),
    db.Column('product_id', db.Integer, db.ForeignKey('product.id'), primary_key=True)
)

class Order(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    order_date = db.Column(db.DateTime, nullable=False, default=datetime.utcnow)
    shipped_date = db.Column(db.DateTime)
    delivered_date = db.Column(db.DateTime)
    coupon_code = db.Column(db.String(50))
    customer_id = db.Column(db.Integer, db.ForeignKey('customer.id'), nullable=False)

    products = db.relationship('Product', secondary=order_product)

class Product(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String(50), nullable=False, unique=True)
    price = db.Column(db.Integer, nullable=False)    
FLASK_APP=app.py
FLASK_ENV=development
from probatina import app

if __name__ == '__main__':
    app()
SQLALCHEMY_DATABASE_URI = 'sqlite:///C:/Users/ferna/Documents/Curso Aprender a programar desde cero/probatinas_2/probatina/db.sqlite3'
SQLALCHEMY_TRACK_MODIFICATIONS = False
config.py:

|-PROBATINAS_2 (proyect name)
  |-probatina
    |- __init__.py
    |- db.py
    |- db.sqlite3 (database)
  |-venv
   |- Include
   |- Lib
   |- Scripts
  |-.env
  |-app.py
  |-config.py
from flask import Flask
app = Flask(__name__, instance_relative_config=True)
app.config.from_object('config')
from probatina import app
from flask_sqlalchemy import SQLAlchemy
from datetime import datetime, timedelta

SQLALCHEMY_DATABASE_URI = app.config['SQLALCHEMY_DATABASE_URI']
SQLALCHEMY_TRACK_MODIFICATIONS = app.config['SQLALCHEMY_TRACK_MODIFICATIONS']
db = SQLAlchemy(app)
db.create_all()
#db.init_app(app)

class Customer(db.Model):
    id = db.Column(db.Integer, primary_key=True) 
    first_name = db.Column(db.String(50), nullable=False)
    last_name = db.Column(db.String(50), nullable=False)
    address = db.Column(db.String(500), nullable=False)
    city = db.Column(db.String(50), nullable=False)
    postcode = db.Column(db.String(50), nullable=False)
    email = db.Column(db.String(50), nullable=False, unique=True)

    orders = db.relationship('Order', backref='customer')

order_product = db.Table('order_product',
    db.Column('order_id', db.Integer, db.ForeignKey('order.id'), primary_key=True),
    db.Column('product_id', db.Integer, db.ForeignKey('product.id'), primary_key=True)
)

class Order(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    order_date = db.Column(db.DateTime, nullable=False, default=datetime.utcnow)
    shipped_date = db.Column(db.DateTime)
    delivered_date = db.Column(db.DateTime)
    coupon_code = db.Column(db.String(50))
    customer_id = db.Column(db.Integer, db.ForeignKey('customer.id'), nullable=False)

    products = db.relationship('Product', secondary=order_product)

class Product(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String(50), nullable=False, unique=True)
    price = db.Column(db.Integer, nullable=False)    
FLASK_APP=app.py
FLASK_ENV=development
from probatina import app

if __name__ == '__main__':
    app()
SQLALCHEMY_DATABASE_URI = 'sqlite:///C:/Users/ferna/Documents/Curso Aprender a programar desde cero/probatinas_2/probatina/db.sqlite3'
SQLALCHEMY_TRACK_MODIFICATIONS = False

您必须使用
db.commit()
@Klaus D。我不确定,因为我以前在两个文件(app.py和db.sqlite3)中有这个项目,并且它在没有db.commit()命令的情况下工作得很好。我认为问题与当前的结构文件和文件之间的链接(有些称为其他文件)有关,但我不确定。谢谢你的回答。你甚至在某处导入了
db.py
吗?
db.create\u all()
应该在模型声明之后。