Database 在Flask web服务器上显示Python数据库

Database 在Flask web服务器上显示Python数据库,database,sqlite,flask,sqlalchemy,flask-sqlalchemy,Database,Sqlite,Flask,Sqlalchemy,Flask Sqlalchemy,我正在从事一个项目,该项目要求我创建一个数据库,将数据导入其中,并将其显示在本地服务器上。我已经创建了数据库,但是对于在服务器上显示它的表需要做什么,我感到困惑。我已经将它设置为通过render_模板通过HTML显示信息,并且相信我已经通过config.py建立了连接,但我不确定从这里可以走到哪里。我读过以下指南,但不太懂。如果有人能帮忙,我将不胜感激 下面是项目根目录中的相关文件 /project config.py database_insert.py serve

我正在从事一个项目,该项目要求我创建一个数据库,将数据导入其中,并将其显示在本地服务器上。我已经创建了数据库,但是对于在服务器上显示它的表需要做什么,我感到困惑。我已经将它设置为通过render_模板通过HTML显示信息,并且相信我已经通过config.py建立了连接,但我不确定从这里可以走到哪里。我读过以下指南,但不太懂。如果有人能帮忙,我将不胜感激

下面是项目根目录中的相关文件

/project
    config.py
    database_insert.py
    server.py
    /app
        /templates
            index.html
        __init__.py
        models.py
        routes.py
config.py

import os
basedir = os.path.abspath(os.path.dirname(__file__))

class Config(object):
    SECRET_KEY = 'you-will-never-guess'
    app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:////project/app.db'
    SQLALCHEMY_TRACK_MODIFICATIONS = False
init.py

from flask import Flask, request, render_template
from config import Config
from flask_sqlalchemy import SQLAlchemy
from flask_migrate import Migrate

app = Flask(__name__)
app.config.from_object(Config)
db = SQLAlchemy(app)
migrate = Migrate(app, db)

from app import routes, models
models.py

from app import db

class Lot(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    title = db.Column(db.String(64), index=True)
    spots = db.relationship('Spot', backref='author', lazy='dynamic')

    def __repr__(self):
        return '<Lot {}>'.format(self.username)  

class Spot(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    availability = db.Column(db.String(140))
    spot_num = db.Column(db.String(140))
    lot_id = db.Column(db.Integer, db.ForeignKey('lot.id'))

    def __repr__(self):
        return '<Spot {}>'.format(self.body)
index.html

<!DOCTYPE html>
<html>
    <head>
        <title>test</title>
    </head>
    <body>
        <p>Hello, World!</p>
        <p>{{lot.id}}</p>
        <p>{{lot.title}}</p>
    </body>

测试
你好,世界

{{lot.id}

{{lot.title}


首先,在
Spot
model类中定义helper方法

class Spot(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    availability = db.Column(db.String(140))
    spot_num = db.Column(db.String(140))
    lot_id = db.Column(db.Integer, db.ForeignKey('lot.id'))

    def __repr__(self):
        return '<Spot {}>'.format(self.body)

    def dump(self):
        return dict(id=self.id, title=self.title)

另外,请查看您的
\uuuu repr\uuu
方法。用于格式化返回值的字段似乎不正确。这将返回一个错误,因为路线中未定义批次。当我尝试定义它时,它会返回另一个错误,即数据库不可访问。您是这样导入的:
来自模型导入批次
?我使用了app.models导入批次中的
,这样做会返回
sqlite3。操作错误:无法打开数据库文件
。当我使用models import Lot
中的
时,它找不到模块型号。请继续使用第一个,并替换
sqlite:////project/app.db
SQLALCHEMY\u数据库\u URI中使用
sqlite:///project/app.db
class Spot(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    availability = db.Column(db.String(140))
    spot_num = db.Column(db.String(140))
    lot_id = db.Column(db.Integer, db.ForeignKey('lot.id'))

    def __repr__(self):
        return '<Spot {}>'.format(self.body)

    def dump(self):
        return dict(id=self.id, title=self.title)
@app.route('/')
@app.route('/index')
def index():
    lot_details = Lot.query.first().dump() # query first item
    return render_template('index.html', lot=lot_details)