无法在 Flask 中将数据写入数据库

用户2830135

我正在 Flask 中开发一个小型阅读跟踪应用程序。我似乎无法从我的路线之一写入数据,如下所示:

@app.route('/add_book', methods=['GET', 'POST'])
@login_required
def add_book():
    form=BookForm()
    if request.method=='POST':
        if form.validate_on_submit():
            book=Book(
                title=form.title.data,
                author=form.author.data,
                # category=form.category.data,
                # added_on=form.added_on.data,
                # done=form.done.data,
                user_id=current_user
                )

            db.session.add(book)
            db.session.commit()
            flash('Book added')
            return redirect(url_for('books'))
        else:
            flash('ERROR. The book not added.')

    return render_template('add_book.html', form=form)

这是相应的 HTML:

{% extends "layout.html" %}

{% block content %}

{% if form %}

    <form action="{{ url_for('add_book') }}" method="post">
      {{ form.hidden_tag() }}

        {{ form.title.label }}<br>
        {{ form.title() }}<br>

        {{ form.author.label }}<br>
        {{ form.author(cols=32, rows=4) }}<br>

       <!-- {{ form.category.label }}<br>
        {{ form.category() }}<br> -->

        {{ form.submit() }}

    </form>

    {% endif %}

{% endblock %}

当页面呈现时,会出现书籍和作者的标签和表单,但是在单击提交时,数据不会被保存。

代码部分类似于用于注册用户的部分,我被困在该怎么做,因为我看不到任何错误。我使用 SQLite 作为数据库。

这是书籍模型:

class Book(db.Model):

    __tablename__='books'

    id=db.Column(db.Integer, primary_key=True)
    title=db.Column(db.String(100))
    author=db.Column(db.String(50))
    # category=db.Column(db.String(50))
    added_on=db.Column(db.DateTime, index=True, default=datetime.utcnow)
    done=db.Column(db.Boolean, default=False)
    user_id=db.Column(db.Integer, db.ForeignKey('users.id'))

    def __init__(self, title, author, added_on, done, user_id):
        self.title=title
        self.author=author
        self.added_on=added_on
        self.done=done
        self.user_id=user_id

    def __repr__(self):
        # return '<Book: Title - {0}, Author - {1}, Category - {2}>'.format(self.title, self.author, self.category)
        return '<Book: Title - {0}, Author - {1}>'.format(self.title, self.author)
格子

current_user 是一个用户代理,可以访问所有用户属性或使用类似的内容如何在flask-login 中跟踪当前用户?

一个快速的解决方案是改变这条线

user_id = current_user

进入这个

user_id = current_user.id

更新:好的,我让它工作了。您需要以下修复,它们中的每一个都会导致表单验证和/或提交到数据库的问题: - 正如我之前所说,在您的书对象中使用 current_user.id。- 删除了书籍模型中的 init 方法。我现在不确定增加的价值是什么,我收到有关添加和完成的字段的错误消息,这些字段不在表单上。我没有花时间进一步研究它。- 就去 if request.method=='POST' 因为你不需要两者。无论如何都会检查表单以进行验证。

提示:不要忘记创建一个需求文件(pip freeze --> requirements.txt),这使得在新的虚拟环境中重新安装变得更加容易。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

无法将数据写入数据库

来自分类Dev

Alembic / Flask迁移无法识别数据库结构

来自分类Dev

无法写入mysql数据库

来自分类Dev

无法从python写入mysql数据库

来自分类Dev

无法将数据写入数据库Firebase Firestore

来自分类Dev

无法在 ruby on rails 中将数据插入数据库

来自分类Dev

无法在python Flask应用程序中向SQL数据库添加注释

来自分类Dev

sqlite3无法打开数据库文件,运行Centos,flask uwsgi nginx

来自分类Dev

在flask和sqlalchemy中无法多次导入数据库对象

来自分类Dev

Flask应用程序:Heroku Postgres无法从数据库加载记住的用户

来自分类Dev

如何修复Flask应用中的“错误:无法打开数据库文件”?

来自分类Dev

sqlite3无法打开数据库文件,运行Centos,flask uwsgi nginx

来自分类Dev

Python Flask:在插入数据库时无法调用“ OperationalError”对象

来自分类Dev

Flask Python:MySQLdb,%s无法访问数据库(以防止SQL注入)

来自分类Dev

无法使数据库在Powershell中写入CSV

来自分类Dev

迁移后Wordpress无法写入数据库

来自分类Dev

无法写入实时Firebase数据库,但运行正常

来自分类Dev

无法使用规则写入 Firebase 数据库

来自分类Dev

无法使用 Azure 函数将值写入数据库

来自分类Dev

AWS RDS 数据库无法读取刚刚写入数据库的记录

来自分类Dev

无法在 Java 中将 ' 插入我的 MySQL 数据库

来自分类Dev

Flask无法从HTTP POST接收数据

来自分类Dev

无法使用Flask框架pymysql查询数据

来自分类Dev

无法使用 Beanshell 脚本对数据库进行 HTTPS 调用以写入数据

来自分类Dev

Android 应用程序无法将数据写入 Firebase 数据库

来自分类Dev

无法选择数据库

来自分类Dev

无法插入数据库

来自分类Dev

无法还原数据库

来自分类Dev

无法更新数据库

Related 相关文章

  1. 1

    无法将数据写入数据库

  2. 2

    Alembic / Flask迁移无法识别数据库结构

  3. 3

    无法写入mysql数据库

  4. 4

    无法从python写入mysql数据库

  5. 5

    无法将数据写入数据库Firebase Firestore

  6. 6

    无法在 ruby on rails 中将数据插入数据库

  7. 7

    无法在python Flask应用程序中向SQL数据库添加注释

  8. 8

    sqlite3无法打开数据库文件,运行Centos,flask uwsgi nginx

  9. 9

    在flask和sqlalchemy中无法多次导入数据库对象

  10. 10

    Flask应用程序:Heroku Postgres无法从数据库加载记住的用户

  11. 11

    如何修复Flask应用中的“错误:无法打开数据库文件”?

  12. 12

    sqlite3无法打开数据库文件,运行Centos,flask uwsgi nginx

  13. 13

    Python Flask:在插入数据库时无法调用“ OperationalError”对象

  14. 14

    Flask Python:MySQLdb,%s无法访问数据库(以防止SQL注入)

  15. 15

    无法使数据库在Powershell中写入CSV

  16. 16

    迁移后Wordpress无法写入数据库

  17. 17

    无法写入实时Firebase数据库,但运行正常

  18. 18

    无法使用规则写入 Firebase 数据库

  19. 19

    无法使用 Azure 函数将值写入数据库

  20. 20

    AWS RDS 数据库无法读取刚刚写入数据库的记录

  21. 21

    无法在 Java 中将 ' 插入我的 MySQL 数据库

  22. 22

    Flask无法从HTTP POST接收数据

  23. 23

    无法使用Flask框架pymysql查询数据

  24. 24

    无法使用 Beanshell 脚本对数据库进行 HTTPS 调用以写入数据

  25. 25

    Android 应用程序无法将数据写入 Firebase 数据库

  26. 26

    无法选择数据库

  27. 27

    无法插入数据库

  28. 28

    无法还原数据库

  29. 29

    无法更新数据库

热门标签

归档