首页 > 解决方案 > 嘿,我正在制作一个社交媒体应用程序,并想将帖子保存到我的数据库。但我不断收到错误

问题描述

sqlalchemy.exc.OperationalError sqlalchemy.exc.OperationalError: (sqlite3.OperationalError) no such table: blogpost [SQL: 'INSERT INTO blogpost (title, author, date_posted, content) VALUES (?, ?, ?, ?)'] [参数:('qedqdq','qwdqdwd','2018-12-31 22:51:35.669388','qwdqwdqwdqwdqwdqwdqwdqwdw')](此错误的背景:http ://sqlalche.me/e/e3q8 )

在我发送帖子以在我的数据库中发布后,我得到 ^^ 错误

这是我正在使用的一些代码。

任何帮助都会非常感谢!!!

应用程序.py

import os  
from flask import Flask, render_template, request, redirect, url_for  
from flask_sqlalchemy import SQLAlchemy
from datetime import datetime

app = Flask(__name__)  

app.config['SQLALCHEMY_DATABASE_URL'] = 'sqlite:///Users/------/Desktop/face0/face/blog.db'

db = SQLAlchemy(app)

class Blogpost(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    title = db.Column(db.String(50))
    author = db.Column(db.String(20))
    date_posted = db.Column(db.DateTime)
    content = db.Column(db.Text)

@app.route('/addpost', methods=['POST'])
def addpost():
    title = request.form['title']
    author = request.form['author']
    content = request.form['content']

    post = Blogpost(title=title, author=author, content=content, date_posted=datetime.now())

    db.session.add(post)
    db.session.commit()

    return redirect(url_for('index'))

标签: pythondatabaseflasksqlalchemy

解决方案


flask-sqlalchemy 文档中所述,您需要首先通过调用该create_all函数来创建数据库。

要创建初始数据库,只需从交互式 Python shell 导入 db 对象并运行 SQLAlchemy.create_all() 方法来创建表和数据库:

>>> from yourapplication import db
>>> db.create_all()

在您的情况下,这可能类似于以下内容:

$ python
>>> from app import db
>>> db.create_all()
>>> exit()

推荐阅读