flask-sqlalchemy筆記

flask_sqlalchemy筆記

安裝

可通過 pip安裝:

pip install flask-sqlalchemy

數據庫連接

  1. 跟 sqlalchemy 一樣,定義好數據庫連接字符串 DB_URI。

  2. 將這個數據庫連接字符串 DB_URI,通過SQLALCHEMY_DATABASE_URI鍵 添加到 app.config中。示例如下:

app.config['SQLALCHEMY_DATABASE_URI'] = DB_URI
  1. 使用flask_sqlalchemy.SQLAlchemy這個類,傳入 app 創(chuàng)建 數據庫對象,示例如下:
db = SQLAlchemy(app)

創(chuàng)建 ORM 模型

大致步驟和 sqlalchemy 中創(chuàng)建orm模型一致,只不過 基類 變?yōu)榱?db.Model,數據類型都可以從db下直接獲得,不用再去導入了,示例如下:

# 定義 orm 模型
class User(db.Model):
    __tablename__ = 'user'  # 表名
    # 字段
    id = db.Column(db.Integer, primary_key=True, autoincrement=True)
    name = db.Column(db.String(50), nullable=False)


class Article(db.Model):
    __tablename__ = 'article'
    id = db.Column(db.Integer, primary_key=True, autoincrement=True)
    title = db.Column(db.String(50), nullable=False)
    content = db.Column(db.Text, nullable=False)
    uid = db.Column(db.Integer, db.ForeignKey('user.id'))  # 外鍵

    author = db.relationship('User', backref='articles')
  • 在定義模型的時候,如果不指定類屬性__tablename__,那么在映射的時候會講模型名字的小寫形式作為表的名字,如果在定義名字的時候采用駝峰的形式那么表名用連字符_連接,比如模型名為AllUser,那么表名就為:all_user,如果指定了該屬性,那么表的名字就為指定的值。

將 ORM 模型映射到數據庫

  • 使用db.drop_all()可以刪除數據庫中定義的orm模型有關的表
  • 使用db.create_all()可以創(chuàng)建定義orm模型有關的表

使用 session

通過 db.session來使用session對象,操作和在sqlalchemy中一樣。

查詢數據:

如果只查詢一個模型上的數據,可以使用模型.query的方式查詢,也可以使用db.session.query()來查詢。查詢方式和sqlalchemy中的query使用方式一樣。
例如查詢上面創(chuàng)建對象的數據可以通過下面的例子:

# 查詢數據
users = User.query.all()  # 等同于 db.session.query(User).all()
# users = db.session.query(User).all() 
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

  • MySQL 命令大全 DDL(數據定義語句) CREATE TABLE/DATABASE ALTER TABLE/...
    子非初心閱讀 3,707評論 0 2
  • 轉載,覺得這篇寫 SQLAlchemy Core,寫得非常不錯。不過后續(xù)他沒寫SQLAlchemy ORM... ...
    非夢nj閱讀 5,602評論 1 14
  • flask 環(huán)境 使用virtualenv創(chuàng)建 安裝:pip install virtualenv 創(chuàng)建虛擬環(huán)境:...
    woming閱讀 605評論 0 0
  • Flask-SQLAlchemy的使用: ORM的好處:可以讓我們操作數據庫跟操作對象是一樣的,非常方便,因為一個...
    Dozing閱讀 23,489評論 3 22
  • 幸福五大原則:心中無恨、腦中無憂、生活簡單、多些付出、少些期待??
    王女_8d7d閱讀 176評論 0 0

友情鏈接更多精彩內容