我有像这样定义的SQLAlchemy类。
from flask import Flask
from flask.ext.sqlalchemy import SQLAlchemy
app = Flask(__name__)
db = SQLAlchemy(app)
connections_table = db.Table('connections', db.metadata,
db.Column('book_id', db.Integer, db.ForeignKey('book.id')),
db.Column('author_id', db.Integer, db.ForeignKey('author.id')))
class Author(db.Model):
__tablename__ = 'authors'
__searchable__ = ['a_name']
__table_args__ = {'sqlite_autoincrement': True,}
id = db.Column(db.Integer, primary_key=True)
a_name = db.Column(db.String(80), unique=True)
def __repr__(self):
return unicode(self.name)
class Book(db.Model):
__tablename__ = 'books'
__searchable__ = ['b_name']
__table_args__ = {'sqlite_autoincrement': True,}
id = db.Column(db.Integer, primary_key=True)
b_name = db.Column(db.String(80))
authors = db.relationship('Author', secondary=lambda: connections_table,
backref=db.backref('books'))
def __repr__(self):
return unicode(self.b_name)
如何在硬盘上保存sqlite数据库并在将来使用它?哪些命令会有用?
答案 0 :(得分:1)
创建config.py
以及您的app.py
(您在上面编写代码的主文件..)及其内容如下
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')
然后在你的应用中;添加一行:
app = Flask(__name__)
app.config.from_object('config')## add this line... .
db = SQLAlchemy(app)
现在你可以随身携带app.sqlite
..
您还可以:create" db_create.py"将文件放在同一位置,并将其内容设为:
from migrate.versioning import api
from config import SQLALCHEMY_DATABASE_URI
from config import SQLALCHEMY_MIGRATE_REPO
from app import db
import os.path
db.create_all()
if not os.path.exists(SQLALCHEMY_MIGRATE_REPO):
api.create(SQLALCHEMY_MIGRATE_REPO, 'database repository')
api.version_control(SQLALCHEMY_DATABASE_URI, SQLALCHEMY_MIGRATE_REPO)
else:
api.version_control(SQLALCHEMY_DATABASE_URI, SQLALCHEMY_MIGRATE_REPO, api.version(SQLALCHEMY_MIGRATE_REPO))
现在;运行这个' db_create.py'设置数据库..
如需更多信息,请单击here