SQLAlchemy 错误:“TypeError:附加参数应命名为 <方言名称>_<参数>,得到‘可为空’”

2024-01-31

Problem

在遵循 Flash 使用教程时,我在使用 Flask 时遇到错误。 因为我是一名基础的 Python 程序员,所以我不明白它为什么或者有什么问题。

因此,如果您不介意解释它或添加解释链接。

控制台打印错误

(不知道什么是重要的,抱歉)

C:\Users\name\Desktop\Eeverything on this computer\GCSE\Computer Science\free-style\organised\website>python flaskblog.py
C:\Users\name\Anaconda3\lib\site-packages\flask_sqlalchemy\__init__.py:835: 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 '
Traceback (most recent call last):
  File "flaskblog.py", line 22, in <module>
    class Post(db.Model):
  File "C:\Users\name\Anaconda3\lib\site-packages\flask_sqlalchemy\model.py", line 67, in __init__
    super(NameMetaMixin, cls).__init__(name, bases, d)
  File "C:\Users\name\Anaconda3\lib\site-packages\flask_sqlalchemy\model.py", line 121, in __init__
    super(BindMetaMixin, cls).__init__(name, bases, d)
  File "C:\Users\name\Anaconda3\lib\site-packages\sqlalchemy\ext\declarative\api.py", line 75, in __init__
    _as_declarative(cls, classname, cls.__dict__)
  File "C:\Users\name\Anaconda3\lib\site-packages\sqlalchemy\ext\declarative\base.py", line 131, in _as_declarative
    _MapperConfig.setup_mapping(cls, classname, dict_)
  File "C:\Users\name\Anaconda3\lib\site-packages\sqlalchemy\ext\declarative\base.py", line 160, in setup_mapping
    cfg_cls(cls_, classname, dict_)
  File "C:\Users\name\Anaconda3\lib\site-packages\sqlalchemy\ext\declarative\base.py", line 190, in __init__
    self._setup_table()
  File "C:\Users\name\Anaconda3\lib\site-packages\sqlalchemy\ext\declarative\base.py", line 538, in _setup_table
    **table_kw
  File "C:\Users\name\Anaconda3\lib\site-packages\flask_sqlalchemy\model.py", line 99, in __table_cls__
    return sa.Table(*args, **kwargs)
  File "<string>", line 2, in __new__
  File "C:\Users\name\Anaconda3\lib\site-packages\sqlalchemy\util\deprecations.py", line 128, in warned
    return fn(*args, **kwargs)
  File "C:\Users\name\Anaconda3\lib\site-packages\sqlalchemy\sql\schema.py", line 506, in __new__
    metadata._remove_table(name, schema)
  File "C:\Users\name\Anaconda3\lib\site-packages\sqlalchemy\util\langhelpers.py", line 68, in __exit__
    compat.reraise(exc_type, exc_value, exc_tb)
  File "C:\Users\name\Anaconda3\lib\site-packages\sqlalchemy\util\compat.py", line 153, in reraise
    raise value
  File "C:\Users\name\Anaconda3\lib\site-packages\sqlalchemy\sql\schema.py", line 501, in __new__
    table._init(name, metadata, *args, **kw)
  File "C:\Users\name\Anaconda3\lib\site-packages\sqlalchemy\sql\schema.py", line 600, in _init
    self._init_items(*args)
  File "C:\Users\name\Anaconda3\lib\site-packages\sqlalchemy\sql\schema.py", line 117, in _init_items
    spwd(self)
  File "C:\Users\name\Anaconda3\lib\site-packages\sqlalchemy\sql\base.py", line 457, in _set_parent_with_dispatch
    self.dispatch.after_parent_attach(self, parent)
  File "C:\Users\name\Anaconda3\lib\site-packages\sqlalchemy\event\attr.py", line 322, in __call__
    fn(*args, **kw)
  File "C:\Users\name\Anaconda3\lib\site-packages\sqlalchemy\sql\schema.py", line 2094, in _set_table
    **self._unvalidated_dialect_kw
  File "C:\Users\name\Anaconda3\lib\site-packages\sqlalchemy\sql\schema.py", line 3132, in __init__
    **dialect_kw
  File "C:\Users\name\Anaconda3\lib\site-packages\sqlalchemy\sql\schema.py", line 2711, in __init__
    self._validate_dialect_kwargs(dialect_kw)
  File "C:\Users\name\Anaconda3\lib\site-packages\sqlalchemy\sql\base.py", line 289, in _validate_dialect_kwargs
    "named <dialectname>_<argument>, got '%s'" % k
TypeError: Additional arguments should be named <dialectname>_<argument>, got 'nullable'

我的代码:flaskblog.py

from flask import Flask, escape, request, render_template, url_for, flash, redirect
from flask_sqlalchemy import SQLAlchemy
from forms import RegistrationForm, LoginForm
from datetime import datetime

app = Flask(__name__)
app.config["SECRET_KEY"] = "16ee14ac45b13e16aca29d7827e58366"
app.config["SQLALCHEMY_DATABASE_URI"] = "sqlite:///site.db"
db = SQLAlchemy(app)

class User(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    username = db.Column(db.String(20), unique = True, nullable=False)
    email = db.Column(db.String(120), unique = True, nullable=False)
    image_file = db.Column(db.String(20), nullable=False, default="default.jpg")
    password = db.Column(db.String(60), nullable=False)
    posts = db.relationship("Post", backref="auther", lazy=True)

    def __repr__(self):
        return f"User('{self.username}', '{self.email}', {self.image_file})"

class Post(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    title = db.Column(db.String(100), nullable=False)
    date_posted = db.Column(db.DateTime, nullable=False, default = datetime.utcnow)
    content = db.Column(db.Text, nullable=False)
    user_id = db.Column(db.Integer, db.ForeignKey("user.id", nullable=False))

    def __repr__(self):
        return f"Post('{self.title}', '{self.date_posted}')"

posts = [
{
    "auther": "ed",
    "title": "blog 1",
    "content": "first post",
    "sate_posted": "1/1/79"
},
{
    "auther": " not ed",
    "title": "blog 2",
    "content": "second post",
    "sate_posted": "2/1/79"
}]

@app.route('/')
@app.route('/home')
def home():
    return render_template("home.html", posts=posts)

@app.route('/about')
def about():
    return render_template("about.html", title = "about")

@app.route('/register', methods=["GET", "POST"])
def register():
    form = RegistrationForm()
    if form.validate_on_submit():
        flash(f"Account created for {form.username.data}!", "success")
        return redirect(url_for("home"))
    return render_template("register.html", title = "Register", form = form)

@app.route('/login', methods=["GET", "POST"])
def login():
    form = LoginForm()
    if form.validate_on_submit():
        if form.email.data == "[email protected] /cdn-cgi/l/email-protection" and form.password.data == "password":
            flash("You have been logged in!", "success")
            return redirect(url_for("home"))
        else:
            flash("Login Unsuccesful. please check username and password", "danger")
    return render_template("login.html", title = "Login", form = form)


if __name__ == '__main__':
    app.run(debug=True)

相关文件

现在,我不知道您还需要什么,与此相关的其他文件称为:

    forms.py

    about.html
    home.html
    layout.html
    login.html
    register.html
    main.css

我没有添加它们,因为它最终可能会成为太多不必要的代码,但如果您需要任何东西,请发表评论。


看来您在以下内容中输入了错误user_id字段来自Post class.

你写了:

    user_id = db.Column(db.Integer, db.ForeignKey("user.id", nullable=False))

当正确的是:

    user_id = db.Column(db.Integer, db.ForeignKey("user.id"), nullable=False)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

SQLAlchemy 错误:“TypeError:附加参数应命名为 <方言名称>_<参数>,得到‘可为空’” 的相关文章

  • 如何计算 pandas datetime 对象的均值和方差?

    如何计算 YYYY MM DD 形式的 python 日期时间对象的汇总统计数据 均值和标准差 我想对具有不同 ID 的不同日期时间对象组执行此操作 数据如下 import datetime as dt df pd DataFrame Da
  • 如何在 Matplotlib 饼图周围绘制箭头以将每个标签指向圆圈中各自的部分?

    我一直在用 Matplotlib 绘制一些图表 我有一个饼图 想要在图表周围绘制箭头 使每个标签都指向图表 我有一个例子 这是我当前的代码 import matplotlib pyplot as plt plt rcParams font
  • matplotlib 图中点的标签

    所以这是一个关于已发布的解决方案的问题 我试图在我拥有的 matplotlib 散点图中的点上放置一些数据标签 我试图在这里模仿解决方案 是否有与 MATLAB 的 datacursormode 等效的 matplotlib https s
  • 使用主题交换运行多个 Celery 任务

    我正在用 Celery 替换一些自制代码 但很难复制当前的行为 我期望的行为如下 创建新用户时 应向tasks与交换user created路由键 该消息应该触发两个 Celery 任务 即send user activate email
  • 更好地相当于这个疯狂的嵌套 python for 循环

    for a in map for b in map a for c in map b for d in map c for e in map d print a b c d e 上面的代码用于创建图中一定长度的所有路径 map a 表示从
  • 打印数字时添加千位分隔符[重复]

    这个问题在这里已经有答案了 我真的不知道这个问题的 名称 所以它可能是一个不正确的标题 但问题很简单 如果我有一个数字 例如 number 23543 second 68471243 我想要它使print 像这样 23 54368 471
  • 矩形函数的数值傅里叶变换

    本文的目的是通过一个众所周知的分析傅里叶变换示例来正确理解 Python 或 Matlab 上的数值傅里叶变换 为此 我选择矩形函数 这里报告了它的解析表达式及其傅立叶变换https en wikipedia org wiki Rectan
  • GUI(输入和输出矩阵)?

    我需要创建一个 GUI 将数据输入到矩阵或表格中并读取此表单数据 完美的解决方案是限制输入表单仅允许float 例如 A 1 02 0 25 0 30 0 515 0 41 1 13 0 15 1 555 0 25 0 14 1 21 2
  • Python 内置的 super() 是否违反了 DRY?

    显然这是有原因的 但我没有足够的经验来认识到这一点 这是Python中给出的例子docs http docs python org 2 library functions html super class C B def method se
  • 从 Powershell 脚本安装 Python

    当以管理员身份从 PowerShell 命令行运行以下命令时 可以在 Windows 11 上成功安装 Python c temp python 3 11 4 amd64 exe quiet InstallAllUsers 0 Instal
  • python的shutil.move()在linux上是原子的吗?

    我想知道python的shutil move在linux上是否是原子的 如果源文件和目标文件位于两个不同的分区上 行为是否不同 或者与它们存在于同一分区上时的行为相同吗 我更关心的是如果源文件和目标文件位于同一分区上 shutil move
  • Spider 必须返回 Request、BaseItem、dict 或 None,已“设置”

    我正在尝试从以下位置下载所有产品的图像 我的蜘蛛看起来像 from shopclues items import ImgData import scrapy class multipleImages scrapy Spider name m
  • PySpark groupByKey 返回 pyspark.resultiterable.ResultIterable

    我试图找出为什么我的 groupByKey 返回以下内容 0
  • 如何以正确的方式为独立的Python应用程序制作setup.py?

    我读过几个类似的主题 但还没有成功 我觉得我错过或误解了一些基本的事情 这就是我失败的原因 我有一个用 python 编写的 应用程序 我想在标准 setup py 的帮助下进行部署 由于功能复杂 它由不同的 python 模块组成 但单独
  • 等待子进程使用 os.system

    我用了很多os system在 for 循环内调用创建后台进程 如何等待所有后台进程结束 os wait告诉我没有子进程 ps 我使用的是Solaris 这是我的代码 usr bin python import subprocess imp
  • 在virtualenv中下载sqlite3

    我正在尝试使用命令创建应用程序python3 manage py startapp webapp但我收到一条错误消息 django core exceptions ImproperlyConfigured 加载时出错 pysqlite2 或
  • 根据 Pandas 中的列表选择数据框行的子集

    我有一个数据框df1并列出x In 22 import pandas as pd In 23 df1 pd DataFrame C range 5 B range 10 20 2 A list abcde In 24 df1 Out 24
  • python 对浮点数进行不正确的舍入

    gt gt gt a 0 3135 gt gt gt print 3f a 0 314 gt gt gt a 0 3125 gt gt gt print 3f a 0 312 gt gt gt 我期待 0 313 而不是 0 312 有没有
  • 如何将Python3设置为Mac上的默认Python版本?

    有没有办法将 Python 3 8 3 设置为 macOS Catalina 版本 10 15 2 上的默认 Python 版本 我已经完成的步骤 看看它安装在哪里 ls l usr local bin python 我得到的输出是这样的
  • NLTK:查找单词大小为 2k 的上下文

    我有一个语料库 我有一个词 对于语料库中该单词的每次出现 我想获取一个包含该单词之前的 k 个单词和该单词之后的 k 个单词的列表 我在算法上做得很好 见下文 但我想知道 NLTK 是否提供了一些我错过的功能来满足我的需求 def size

随机推荐

  • 如何将 geopandas 更新到最新版本?

    我通过 anaconda 安装了 geopandas 包conda install c conda forge geopandas 但由于某种原因安装了 0 6 3 版本 我需要使用missing kwds函数 但该函数仅在最新版本的geo
  • Rails 模型中 around_create 回调的目的是什么?

    around create回调代码什么时候执行 什么情况下我们应该使用它 我也有这个问题 现在找到答案了 around create基本上可以让你同时做before create and an after create以一种方法 你必须使用
  • R:如何删除 X 轴上未绘制的名称(保留已绘制的名称)?

    我有这段代码可以获取前 10 个频率并绘制图表 top n data 3 n 10 Frequency gt barplot Frequency ICD10Code data cex name 5 出现的问题 当时我没有想到 是 它确实绘制
  • 如何将姓名电话键盘键盘类型的号码侧设置为默认(键盘打开时)

    现在 当键盘在我的应用程序上启动时 它默认在字母侧显示字母键盘 问题将在下面的图片中列出 参考下图 This is good 单击 123 将显示数字面 问题 但是 我希望默认显示数字侧 并且稍后在键盘打开时仍然能够切换回字母侧 我该怎么做
  • 如何正确关闭流?

    我被分配了一项任务来编写一个程序 该程序将 打开一个文件 阅读内容 将特定单词替换为另一个单词 保存对文件的更改 我确信我的代码可以打开 读取和替换单词 当我添加 保存对文件的更改 部分时 出现问题 这是代码 open System IO
  • 如何设置每秒重复次数?

    我使用 while 循环在程序中重复我的代码 我想每秒重复一个代码 1000 次 我怎样才能做到这一点 For the 固定延迟执行对于某些代码 使用 a 可能是更好的方法定时器对象 例如java util Timer https docs
  • FOSUserBundle ,法语翻译被忽略

    我是 symfony 的新用户 我目前正在学习课程 全职 我的问题 app config config yml framework translator fallback locale app config parameters ini 我
  • 如果 iMacros 页面中存在文本,请单击按钮

    我正在尝试将 iMacros 与 Firefox 结合使用 仅当页面上存在此代码时单击 取消关注 按钮
  • XAML中UI设计的优点

    在WPF中 我可以使用 NET 2 0风格 如designer cs 制作我的UI 我的问题是使用XAML而不是代码进行UI设计有什么优势 主要优点是 如果您将标记和代码保持干净的分离 例如 通过应用MVVM模式 http msdn mic
  • 分发可执行文件时缺少 MSVCP140D.dll

    我已经做了加密应用程序 https github com Cewein Crypto h releases在 Visual Studio 2017 中 它在我的电脑上工作正常 但是当我在没有 Visual Studio 的情况下将可执行文件
  • 如何在.net core 2应用程序中从控制器设置OpenIdConnect选项提示“login”?

    我正在使用 net core 2 应用程序 并已将 OpenIDConnect 选项提示参数设置为在 Startup cs 的 ConfigureServices 方法中同意 AddOpenIdConnect options gt opti
  • 为什么新视图控制器中的表视图不显示?迅速

    这是以下问题的后续 如何调用进行 API 调用的类的实例以及该类中发出请求的函数 并将其分配给变量 迅速 https stackoverflow com questions 72400226 how to call an instance
  • Struts2 当index是变量时访问列表的特定索引

    当索引是变量时 我在访问列表的特定元素时遇到一些问题 当索引只是一个数字时 我在显示我要查找的内容时完全没有问题
  • HXT:在Haskell中使用HXT按位置选择节点?

    我正在尝试使用 Haskell 解析一些 XML 文件 对于这项工作我正在使用HXT http www haskell org haskellwiki HXT获得有关现实世界应用中箭头的一些知识 所以我对箭头主题很陌生 在 XPath 中
  • FFmpeg - 连接具有不同时基的视频[重复]

    这个问题在这里已经有答案了 我正在尝试使用 concat demuxer 连接视频 但在使用一个视频 下面的 video2 mp4 时它不起作用 所谓不起作用 我的意思是在播放器上播放串联视频将起作用 直到第二个视频部分开始 它只是无法再读
  • 流程调度

    假设我有 10 个脚本想要作为 cron 作业定期运行 但是 我不希望它们全部同时运行 我只希望其中两个同时运行 我想到的一种解决方案是创建两个脚本 在每个脚本上放置 5 个语句 并将它们作为 crontab 中的单独条目 然而 该解决方案
  • RadioGroup checkButton 属性

    我正在尝试在 Android 中构建 RadioGroup 并默认选中一个 RadioButton 我想知道是否可以通过 XML 而不是以编程方式来完成此操作 以下代码片段似乎不起作用 因为我收到错误 error Error No reso
  • Apache/Django:导入错误:没有名为“my_project”的模块

    尝试使用 apache2 和 mod wsgi 托管我的 django 项目 我尝试了各种配置 但在浏览器中访问该网站时不断出现导入错误 例如 Traceback most recent call last File home user p
  • 不使用 sqrt 函数求平方根?

    我正在寻找不使用 sqrt 函数来求平方根的算法 然后尝试进行编程 我最终得到了 C 中的工作代码 include
  • SQLAlchemy 错误:“TypeError:附加参数应命名为 <方言名称>_<参数>,得到‘可为空’”

    Problem 在遵循 Flash 使用教程时 我在使用 Flask 时遇到错误 因为我是一名基础的 Python 程序员 所以我不明白它为什么或者有什么问题 因此 如果您不介意解释它或添加解释链接 控制台打印错误 不知道什么是重要的 抱歉