python - SQLAlchemy:sqlalchemy.exc.CompileError 无法为 NullType() 生成 DDL
问题描述
我使用 python3.7 \mysql5.7\ flask:0.12.2 \Flask-SQLAlchemy:2.3.2\PyMySQL:0.9.2
代码:
config.py
SQLALCHEMY_DATABASE_URI = 'mysql+pymysql://root:123456@localhost:3306/test?charset=utf8'
SQLALCHEMY_TRACK_MODIFICATIONS = True
demodb.py:
from flask import Flask, render_template, request
from flask_sqlalchemy import SQLAlchemy
app = Flask(__name__)
app.config.from_object("config")
db=SQLAlchemy(app)
db.create_all()
class User(db.Model):
__tablename__='user'
id = db.Column(db.Integer, primary_key=True)
username = db.Column(db.String(80), unique=True)
email = db.Column(db.String(120), unique=True)
def __init__(self, username, email):
self.username = username
self.email = email
def __repr__(self):
return '<User %r>' % self.username
db.create_all()
错误 :
sqlalchemy.exc.CompileError: (in table 'user', column 'id'): Can't generate DDL for NullType(); did you forget to specify a type on this Column?
所以,请帮我解决这个问题。3Q
*********然后***********
我尝试:
配置文件
SQLALCHEMY_DATABASE_URI = 'mysql+pymysql://root:123456@localhost:3306/testuse'
# SQLALCHEMY_TRACK_MODIFICATIONS = True
演示数据库
from flask import Flask, render_template, request
from flask_sqlalchemy import SQLAlchemy
app = Flask(__name__)
app.config.from_object("config")
db=SQLAlchemy(app)
# db.create_all()
class User(db.Model):
__tablename__='user'
id = db.Column(db.Integer, primary_key=True,autoincrement=True)
username = db.Column(db.String(80), nullable=True)
email = db.Column(db.String(120), nullable=True)
def __init__(self, username, email):
self.username = username
self.email = email
def __repr__(self):
return '<User %r>' % self.username
db.create_all()
跑
E:\myproject\env\lib\site-packages\flask_sqlalchemy\__init__.py:795: FSADeprecationWarning: SQLALCHEMY_TRACK_MODIFICATIONS adds significant overhead and will be disabled by default in the future. Set it to True or False to suppress this warning.
'SQLALCHEMY_TRACK_MODIFICATIONS adds significant overhead and '
E:\myproject\env\lib\site-packages\pymysql\cursors.py:170: Warning: (1366, "Incorrect string value: '\\xD6\\xD0\\xB9\\xFA\\xB1\\xEA...' for column 'VARIABLE_VALUE' at row 481")
result = self._query(query)
* Debugger is active!
* Debugger PIN: 579-465-691
* Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)
所以,成功创建表(我的问题:有一个警告,如何解决): 成功创建表
解决方案
推荐阅读
- php - Laravel Sanctum(前气闸) - 我如何为其他模型发行代币?
- javascript - Highcharts-React 获取图表的Base64 PNG
- python - 用硒刮掉下一页问题
- excel - 使用循环将某些 sheet1 单元格的粘贴值分配或复制到 sheet2 中的确切列,其中计数器是在列中输入的值,例如:A1 单元格
- jsx - 如何防止主机'focusin'和'focusout'?[StencilJS]
- python - 在 Python 中将每个列表元素转换为字符串
- javascript - 从排序数组中删除重复项并返回长度 - 必须改变原始数组
- html - 描述详细信息元素中是否允许使用无序列表元素?
- python-3.x - 如何使用 Python 连接到在 Amazon Lightsail 上运行的 SQL Server 数据库?
- python - 将具有 Json Array 内容的数据框列转换为单独的列