【问题标题】:Where is app.sqlite located?app.sqlite 位于哪里?
【发布时间】:2016-11-02 09:03:08
【问题描述】:

大家好,我一直在关注这个旧教程。谁能告诉我 app.sqlite 的位置。 app.sqlite 也是我创建的数据库,我不确定,因为我想找到它并检查表是否已创建。还有一种方法可以将位置更改为我想要的位置:D

这是配置文件。

import os
basedir = os.path.abspath(os.path.dirname(__file__))
SQLALCHEMY_DATABASE_URI = 'sqlite:///' + os.path.join(basedir, 'app.sqlite')
SQLALCHEMY_MIGRATE_REPO = os.path.join(basedir, 'db_repository')

这是我尝试制作 RESTful API 的文件,但由于我迷路了,我还没有放入任何东西。

 from flask import Flask, jsonify
 from flask_sqlalchemy import SQLAlchemy

 app = Flask(__name__)
 app.config.from_pyfile('Config.py')
 db = SQLAlchemy(app)

class User(db.Model):
   User_ID = db.Column(db.Integer, primary_key = True)
   firstName = db.Column(db.String(20))
   lastName = db.Column(db.String(20))

def __init__(self,firstName, lastName):
    self.firstName = firstName
    self.lastName = lastName
    db.createAll()

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

【问题讨论】:

  • 打印basedir 你就会看到。
  • 哦,谢谢,我看不到文件有什么原因吗?它显示了我的位置,但是当我去那里时它不在那里
  • 也许它还没有创建它。或者你有其他问题 - 所以在调试模式下运行 Flask 以在浏览器中查看每个错误。
  • 如果不是,它不应该给我一个错误
  • 没有调试模式它只能显示给你,即。 “错误 500”,没有关于问题的所有信息。

标签: python database sqlite flask


【解决方案1】:

您可以将app.sqlite 放在与您的主要python 文件相同的目录中。要创建所有表,您可以在代码中添加以下方法:

@app.before_first_request
def startup():
    db.create_all()

这将在您启动服务器时运行并创建所有表。如果您重新启动服务器,该方法仍将运行,但不会重新制作表,因为它们已经存在。

【讨论】:

  • 它告诉我必须将 self 放入方法中。
  • 您不必这样做,因为您的 db 不是对象的一部分。你能把错误贴在这里吗?
  • 它说方法必须有一个第一个参数,通常称为“self”
  • 哦,我在方法的底部添加了它,现在在顶部它可以工作了。
  • 您在使用 Eclipse 吗?如果是这样,it might be an error with Eclipse。如果没有,您将方法粘贴在哪里?它应该添加到if __name__ == '__main__': 的正上方。此外,您应该从您的用户 __init__ 方法中删除 db.createAll(),因为此代码存根替换了它。
猜你喜欢
  • 2013-09-08
  • 2021-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-10-25
相关资源
最近更新 更多