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