Flask框架错误

问题描述 投票:0回答:2

大家好,我收到一个错误,看了一会儿后我不确定它意味着什么......

这是错误:

vagrant@vagrant-ubuntu-trusty-32:/vagrant/PayUp$ python setup_database.py
Traceback (most recent call last):
  File "setup_database.py", line 58, in <module>
    Base.metadata.create_all(engine)
  File "/usr/lib/python2.7/dist-packages/sqlalchemy/schema.py", line 2848, in create_all
    tables=tables)
  File "/usr/lib/python2.7/dist-packages/sqlalchemy/engine/base.py", line 1479, in _run_visitor
    conn._run_visitor(visitorcallable, element, **kwargs)
  File "/usr/lib/python2.7/dist-packages/sqlalchemy/engine/base.py", line 1122, in _run_visitor
    **kwargs).traverse_single(element)
  File "/usr/lib/python2.7/dist-packages/sqlalchemy/sql/visitors.py", line 122, in traverse_single
    return meth(obj, **kw)
  File "/usr/lib/python2.7/dist-packages/sqlalchemy/engine/ddl.py", line 57, in visit_metadata
    if self._can_create_table(t)]
  File "/usr/lib/python2.7/dist-packages/sqlalchemy/engine/ddl.py", line 35, in _can_create_table
    table.name, schema=table.schema)
  File "/usr/lib/python2.7/dist-packages/sqlalchemy/dialects/sqlite/base.py", line 722, in has_table
    cursor = _pragma_cursor(connection.execute(statement))
  File "/usr/lib/python2.7/dist-packages/sqlalchemy/engine/base.py", line 662, in execute
    params)
  File "/usr/lib/python2.7/dist-packages/sqlalchemy/engine/base.py", line 805, in _execute_text
    statement, parameters
  File "/usr/lib/python2.7/dist-packages/sqlalchemy/engine/base.py", line 874, in _execute_context
    context)
  File "/usr/lib/python2.7/dist-packages/sqlalchemy/engine/base.py", line 1024, in _handle_dbapi_exception
    exc_info
  File "/usr/lib/python2.7/dist-packages/sqlalchemy/util/compat.py", line 196, in raise_from_cause
    reraise(type(exception), exception, tb=exc_tb)
  File "/usr/lib/python2.7/dist-packages/sqlalchemy/engine/base.py", line 867, in _execute_context
    context)
  File "/usr/lib/python2.7/dist-packages/sqlalchemy/engine/default.py", line 324, in do_execute
    cursor.execute(statement, parameters)
sqlalchemy.exc.DatabaseError: (DatabaseError) database disk image is malformed 'PRAGMA table_info("users")' ()

我看着它,我真的不明白错误在说什么

这是我用于创建数据库的代码,该数据库没有出现错误,以及服务器设置文件,这是我的服务器保存的位置。

from flask import Flaskfrom sqlalchemy import create_engine
from sqlalchemy.orm import sessionmaker
from setup_database import Base, Users, User_Auth, User_info, User_Location

# The following line is what initiates the flask app for this project
app = Flask(__name__)

engine = create_engine('sqlite:///payup.db')
Base.metadata.bind = engine

DBSession = sessionmaker(bind=engine)
session = DBSession()

@app.route('/')
def HomePage():
    output = "<h1>hello</h1>"

@app.route('/users')
def UsersList(users.id):
    output = "<h1>This page will list all of the current users</h1>"

@app.route('/adduser')
def CreateNewUser(users):
    output = "<h1>This page will be able to create new users</h1>"

@app.route('/manageUsers')
def ManageUsers(users.id):
    output = "<h1>This page will be able to manage all of the users</h1>"

@app.route('/userProfile')
def UsersProfile(all of the tables):
    output = "<h1>This page will display all of the users informaiton </h1>"

if __name__ == '__main__':
    app.debug = True
    app.run(host = '0.0.0.0', port = 5555)
python flask sqlalchemy flask-sqlalchemy
2个回答
1
投票

因为您使用的是 SQLite,错误消息

sqlalchemy.exc.DatabaseError: (DatabaseError) database disk image is malformed 'PRAGMA table_info("users")' ()
会导致您假设名为
payup.db
的数据库文件有问题。

移动或删除可能损坏的 SQLite 数据库文件应该可以帮助您让脚本正常运行。成功执行(和服务器启动)后,SQLAlchemy 应该自动创建一个新的 SQLite 数据库文件。


0
投票

我解决了

首次访问数据库并生成文件转储。

sqlite3 airflow.db

    .mode insert

    .output dump_all.sql

    .dump

    .exit

复制文件源

mv airflow.db airflow_back.db

使用转储重新创建数据库

sqlite3 airflow.db ".read dump_all.sql"

这样,数据库将重新启动并分配新密码。密码将位于“独立管理员密码.txt”中

© www.soinside.com 2019 - 2024. All rights reserved.