簡體   English   中英

創建一個sqlite數據庫,並通過python和flask保存

[英]Create an sqlite db and save it by means of python and flask

我有這樣定義的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數據庫保存在硬盤上並在將來使用? 哪些命令會有所幫助?

app.py (上面編寫代碼的主文件)一起創建config.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

您還可以做:在同一位置創建“ 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”以設置您的數據庫。
欲了解更多信息,請點擊這里

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM