Flask框架(flask中的数据库SQLAlchemy(python3),配置、模型类、创建表)
1.? SQLAlchemy是一個關系型數據庫框架,
? ? ?它提供了高層的ORM和底層的原生數據庫的操作。
? ? ? flask-sqlalchemy是一個簡化了SQLAlchemy操作的flask擴展。
2. 安裝? ?
? ?環境? ?python3.6? +? window10? ?+? pycharm??
? ?pip? install?flask-sqlalchemy
? ?pip install mysql-connector? ? ?#? 安裝驅動? ? ? ?(不安裝的話會報出警告)
? 如果用的虛擬環境,記得安裝在虛擬環境當中
?3.?sqlalchemy的常用配置
? ??(1)? ? app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql+mysqlconnector://root:mysql@127.0.0.1:3306/test'
? ? ? ? ? ?# 后面字符串的解釋??mysql+mysqlconnector://用戶名:密碼@127.0.0.1:3306/數據庫名
? ? ? ? ? ? 一般IP和端口都是? 127.0.0.1:5000
?( 2) app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = True
? ? ?#??True 讓數據庫里面的數據和模型數據庫里面的數據保持一致
?(3)??#查詢時會顯示原始SQL語句
? ? ? ?app.config['SQLALCHEMY_ECHO'] = True
4. 創建模型類:?
? 模型類;?? ?創建數據庫模型類(繼承 sqlalchemy 工具對象中的Model類),
? ? ? ? ? ? ? ? 一個模型類對應一張模型表
? ? ? ? ? ? ? ? 數據庫表名的常見規范:
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?(1) 數據庫名縮寫_表名? ? ? ? ? ? ? ? ? ? ? ?(2) tbl_表名
創建模型類時常用的SQLAlchemy字段類型 :
?創建模型類時常用的SQLAlchemy列選項 :
?創建模型類時常用的SQLAlchemy關系選項:
5. 創建所有的表:? ?db.create_all()
? ? 刪除所有的表:?db.drop_all()??
? 注意: db是? ? ???db = SQLAlchemy(app)? ?#?創建數據庫 sqlalchemy 工具對象
?6. 創建一個用戶表和用戶身份表,并做好設置,運行程序,沒有報錯 即創建成功,或者自己也可以在程序完成之后
? ? ?print("創建成功"),,看下面的程序
from flask import Flask from flask_sqlalchemy import SQLAlchemyapp = Flask(__name__)class Config(object):"""配置參數"""'''sqlalchemy的配置參數'''SQLALCHEMY_DATABASE_URI = "mysql+mysqlconnector://root:123456@127.0.0.1:3306/db_python"'''設置sqlalchemy自動跟蹤數據庫'''SQLALCHEMY_TRACK_MODIFICATIONS = True# 設置參數 app.config.from_object(Config)'''創建數據庫 sqlalchemy 工具對象''' db = SQLAlchemy(app)"""創建數據庫模型類(繼承 sqlalchemy 工具對象中的Model類),一個模型類對應一張模型表數據庫表名的常見規范:(1) 數據庫名縮寫_表名 (2) tbl_表名 """class Role(db.Model):"""用戶身份表"""__tablename__ = "tbl_roles"id = db.Column(db.Integer, primary_key=True)name = db.Column(db.String(32), unique=True)'''relationship()把兩個表關聯在一起,不添加也是可以的,根據自己的需求backref : 在關系的另一模型中添加反向引用相當于給要關聯的表添加一個role屬性不添加也是可以的,根據自己的需求 '''user = db.relationship("User", backref="role") # 從模型類中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")) # 從底層中if __name__ == '__main__':'''清除數據庫中的所有數據'''db.drop_all()'''創建所有表'''db.create_all()?然后在數據庫中,就可以看見,創建好的表,如下圖:
這個就直接把模型類即模型表就創建好了
與50位技術專家面對面20年技術見證,附贈技術全景圖總結
以上是生活随笔為你收集整理的Flask框架(flask中的数据库SQLAlchemy(python3),配置、模型类、创建表)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Flask框架(flask中的请求上下文
- 下一篇: Flask框架(SQLAlchemy(p