當前位置:
首頁 > 知識 > Python Flask,資料庫,SQLAlchemy,模型類的定義,資料庫添加

Python Flask,資料庫,SQLAlchemy,模型類的定義,資料庫添加

SQLAlchemy是一個ORM框架。flask-sqlalchemy是一個簡化了SQLAlchemy操作的flask擴展。

安裝flask-sqlalchemy: pip install flask-sqlalchemy

安裝Mysql驅動: pip install MySQL-python # Python2中安裝MySQL-python,Python3中安裝 PyMySQL

demo.py(模型類的定義,資料庫的添加):

# coding:utf-8

from flask import Flask

from flask_sqlalchemy import SQLAlchemy # 導入

app = Flask(__name__)

# 通過類對象載入配置。 (配置資料庫)

class Config(object):

"""配置參數"""

# sqlalchemy的配置參數

SQLALCHEMY_DATABASE_URI = "mysql://root:密碼@127.0.0.1:3306/資料庫名"

# 設置sqlalchemy自動跟蹤資料庫中數據的修改 (修改資料庫數據後,對應的模型類對象會自動修改)(添加對象時,自動返回id給對象)

SQLALCHEMY_TRACK_MODIFICATIONS = True

app.config.from_object(Config) # 通過類對象載入配置參數

# 創建資料庫sqlalchemy工具對象

db = SQLAlchemy(app)

# 模型類 (繼承db.Model)

class Role(db.Model):

"""用戶角色表"""

__tablename__ = "tbl_roles"

id = db.Column(db.Integer, primary_key=True)

name = db.Column(db.String(32), unique=True)

users = db.relationship("User", backref="role") # 關聯屬性。關聯的所有用戶 (一對多)

# backref="role" 表示會在User模型類中自動創建關聯屬性role。

def __repr__(self):

"""定義之後,可以讓顯示對象的時候更直觀"""

return "Role object: name=%s" % self.name

# 表名的常見規範

# ihome -> ih_user 資料庫名縮寫_表名

# tbl_user tbl_表名

# 資料庫模型類

class User(db.Model):

"""用戶表"""

__tablename__ = "tbl_users" # 指明對應的資料庫表名

id = db.Column(db.Integer, primary_key=True) # 整型的主鍵,會默認設置為自增主鍵

name = db.Column(db.String(64), unique=True)

email = db.Column(db.String(128), unique=True)

password = db.Column(db.String(128))

role_id = db.Column(db.Integer, db.ForeignKey("tbl_roles.id")) # 外鍵 (一對多)

def __repr__(self):

return "User object: name=%s" % self.name

if __name__ == "__main__":

# 清除資料庫里的所有表 (不推薦使用)

db.drop_all()

# 創建所有的表 (根據模型類創建)

db.create_all()

# 創建對象

role1 = Role(name="admin")

# 通過會話將對象添加到資料庫中 (session是與資料庫的鏈接會話)

db.session.add(role1)

# 提交任務到資料庫中

db.session.commit() # SQLALCHEMY_TRACK_MODIFICATIONS設置為True後,會自動將id傳給對象role1

# db.session.rollback() # 回滾

role2 = Role(name="stuff")

db.session.add(role2)

db.session.commit()

us1 = User(name="wang", email="wang@163.com", password="123456", role_id=role1.id)

us2 = User(name="zhang", email="zhang@189.com", password="201512", role_id=role2.id)

us3 = User(name="chen", email="chen@126.com", password="987654", role_id=role2.id)

us4 = User(name="zhou", email="zhou@163.com", password="456789", role_id=role1.id)

# 一次添加多條數據

db.session.add_all([us1, us2, us3, us4])

db.session.commit()

Python Flask,資料庫,SQLAlchemy,模型類的定義,資料庫添加

打開今日頭條,查看更多圖片

Python Flask,資料庫,SQLAlchemy,模型類的定義,資料庫添加

Python Flask,資料庫,SQLAlchemy,模型類的定義,資料庫添加

---------------------

作者:houyanhua1

原文:https://blog.csdn.net/houyanhua1/article/details/85489479

版權聲明:本文為博主原創文章,轉載請附上博文鏈接!

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 程序員小新人學習 的精彩文章:

kibana 創建index pattern 索引模式慢無法創建成功 以及解決方案
C++ 將序列前半部分為負整數,後半部分為正整數(數據分類)

TAG:程序員小新人學習 |