Python can';t呈现类型为<;类别';sqlalchemy.dialogs.postgresql.base.UUID'&燃气轮机;

Python can';t呈现类型为<;类别';sqlalchemy.dialogs.postgresql.base.UUID'&燃气轮机;,python,postgresql,flask,sqlalchemy,flask-sqlalchemy,Python,Postgresql,Flask,Sqlalchemy,Flask Sqlalchemy,我在第57行看到了这段代码: id = db.Column(UUID, default=lambda: str(uuid.uuid4()), primary_key=True) 所以我想尝试一下,并在我的应用程序的models.py中使用它(因为我更喜欢将uuid类型用于我的id) 为什么它不能呈现UUID类型?它在SQLAlchemy中被识别,但为什么它在Flask SQLAlchemy中不能被识别呢?您可以使用UUID以防使用postgresql数据库。您的列定义使用的函数只适用于post

我在第57行看到了这段代码:

id = db.Column(UUID, default=lambda: str(uuid.uuid4()), primary_key=True)
所以我想尝试一下,并在我的应用程序的
models.py
中使用它(因为我更喜欢将
uuid
类型用于我的id)


为什么它不能呈现UUID类型?它在
SQLAlchemy
中被识别,但为什么它在
Flask SQLAlchemy
中不能被识别呢?

您可以使用
UUID
以防使用postgresql数据库。

您的列定义使用的函数只适用于postgresql,并且您的数据库类型是sqlite

你需要这个:

id = db.Column('id', db.Text(length=36), default=lambda: str(uuid.uuid4()), primary_key=True)

不能将Postgres数据类型与SQLite一起使用。它们是两个不同的数据库。对于任何来到这里并想到“但我没有将我的数据库设置为sqlite!”的人来说——您可能没有将postgres连接信息正确地传递到sqlalchemy中,因此默认使用sqlite作为数据库。检查您的数据库配置信息。是否有其他方法,根据您正在使用的数据库类型,它运行一行或另一行?我现在只读了这篇文章,但碰巧我也求助于
Text
列。谢谢。文本在sqlite中也不可用吗?我认为所有SQLALchemy()类型都可以在任何类型的数据库中使用。
  File "build/bdist.linux-x86_64/egg/sqlalchemy/sql/compiler.py", line 190, in __init__                                                          
  File "build/bdist.linux-x86_64/egg/sqlalchemy/sql/compiler.py", line 213, in process                                                           
  File "build/bdist.linux-x86_64/egg/sqlalchemy/sql/visitors.py", line 81, in _compiler_dispatch                                                 
  File "build/bdist.linux-x86_64/egg/sqlalchemy/sql/compiler.py", line 2164, in visit_create_table                                               
  File "build/bdist.linux-x86_64/egg/sqlalchemy/util/compat.py", line 199, in raise_from_cause                                                   
  File "build/bdist.linux-x86_64/egg/sqlalchemy/sql/compiler.py", line 2153, in visit_create_table                                               
  File "build/bdist.linux-x86_64/egg/sqlalchemy/sql/compiler.py", line 213, in process                                                           
  File "build/bdist.linux-x86_64/egg/sqlalchemy/sql/visitors.py", line 81, in _compiler_dispatch                                                 
  File "build/bdist.linux-x86_64/egg/sqlalchemy/sql/compiler.py", line 2184, in visit_create_column                                              
  File "build/bdist.linux-x86_64/egg/sqlalchemy/dialects/sqlite/base.py", line 847, in get_column_specification                                  
  File "build/bdist.linux-x86_64/egg/sqlalchemy/sql/compiler.py", line 261, in process                                                           
  File "build/bdist.linux-x86_64/egg/sqlalchemy/sql/visitors.py", line 79, in _compiler_dispatch                                                 
sqlalchemy.exc.CompileError: (in table 'costcenter', column 'id'): Compiler <sqlalchemy.dialects.sqlite.base.SQLiteTypeCompiler object at 0x7fc16
c1f1a50> can't render element of type <class 'sqlalchemy.dialects.postgresql.base.UUID'> 
id = db.Column('id', db.Text(length=36), default=lambda: str(uuid.uuid4()), primary_key=True)