Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/18.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 3.x 为什么create_all函数不创建我的表?_Python 3.x_Postgresql_Flask Sqlalchemy - Fatal编程技术网

Python 3.x 为什么create_all函数不创建我的表?

Python 3.x 为什么create_all函数不创建我的表?,python-3.x,postgresql,flask-sqlalchemy,Python 3.x,Postgresql,Flask Sqlalchemy,我正在用Flask和SQLAlchemy创建一个小应用程序。(我是Python新手) 嗯,我想让Alchemy创建我在代码中已经定义的表 我的项目结构如下所示: application ├── models │ ├── __init__.py │ ├── device.py │ └── user.py ├── static ├── templates ├── __init__.py ├── flask_config.py └── wsgi.py 模型包中的初始化如下所示: 我定

我正在用Flask和SQLAlchemy创建一个小应用程序。(我是Python新手)
嗯,我想让Alchemy创建我在代码中已经定义的表

我的项目结构如下所示:

application
├── models
│   ├── __init__.py
│   ├── device.py
│   └── user.py
├── static
├── templates
├── __init__.py
├── flask_config.py
└── wsgi.py
模型
包中的
初始化
如下所示:


我定义的模型非常简单。下面是
user.py
的一个示例:

从application.models导入DBHandler
db_handler=DBHandler()
类用户(db_handler.db.Model):
__tablename_uu='user'
id=db\u handler.db.Column(db\u handler.db.Integer,primary\u key=True)
username=db\u handler.db.Column(db\u handler.db.String(200),unique=True,nullable=False)
email=db_handler.db.Column(db_handler.db.String(200),unique=False,nullable=False)


应用程序的
\uuu init\upy.py
文件如下所示:



要创建表,我在python控制台中运行以下代码:

代码运行时不会出错,但不会创建表。
我做错了什么?


编辑:
这是我连接到数据库的Flask配置类:


您需要将DB_URL添加到应用程序配置,以便连接到数据库:

db_handler_obj = DBHandler()
application.config['SQLALCHEMY_DATABASE_URI'] = db_handler_obj.DB_URL
db_handler_obj.db.init_app(application)

您需要将DB_URL添加到应用程序配置,以便连接到数据库:

db_handler_obj = DBHandler()
application.config['SQLALCHEMY_DATABASE_URI'] = db_handler_obj.DB_URL
db_handler_obj.db.init_app(application)

你在哪里连接到数据库?你在哪里连接到数据库?嗨@Yakir Tsuberi,我已经在我的flask配置文件中这样做了。检查我的编辑。感谢您在没有类的情况下进行配置,如下所示:
application.config['SQLALCHEMY\u DATABASE\u URI']=db\u handler\u obj.db\u URL
application.config['SQLALCHEMY\u TRACK\u MODIFICATIONS']=False
等。将配置放在create\u app函数中并运行create\u all代码,但仍然不起作用:/Hi@Yakir Tsuberi,我已经在我的烧瓶配置文件中这样做了。检查我的编辑。感谢您在没有类的情况下进行配置,如下所示:
application.config['SQLALCHEMY\u DATABASE\u URI']=db\u handler\u obj.db\u URL
application.config['SQLALCHEMY\u TRACK\u MODIFICATIONS']=False
等。将配置放在create\u app函数中并运行create\u all代码,但它仍然不起作用:/
from application import create_app
import application.models
from application.models.user import User
from application.models.port import Port
from application.models.device import Device
app = create_app()
db_handler = application.models.DBHandler()
with app.app_context():
    db_handler.db.create_all()  
from application.models import DBHandler


class FlaskConfig:
    def __init__(self):
        db_handler = DBHandler()
        self.SQLALCHEMY_DATABASE_URI = db_handler.DB_URL
        self.SQLALCHEMY_TRACK_MODIFICATIONS = False
        self.SECRET_KEY = b'_5#y2L"F4Q8z\n\xec]/'
db_handler_obj = DBHandler()
application.config['SQLALCHEMY_DATABASE_URI'] = db_handler_obj.DB_URL
db_handler_obj.db.init_app(application)