flask:
Models: 1.數(shù)據(jù)交互的封裝
????????????????? 2.flask并沒有提供默認(rèn)ORM,對象關(guān)系映射
flask-sqlalchemy
pip install flask-sqlalchemy
初始化:
App.config ? ?? SQLALCHEMY_DATDABASE_URI
???????????????????????? 消除警告???????? SQLALCHEMY_TRACK_MODIFICATIONS = Flase
db =SQLAlchemy()
db.init_app(app)
使用:
????????? 定義模型?????? 繼承SQLAlchemy中的Model
????????? 定義字段?????? db.Column(db.類型)
創(chuàng)建:
表單創(chuàng)建:
?????????????????????? db.create_all()
刪除表單
???????????????????? db.drop_all()
數(shù)據(jù)操作:
?????????????????? 添加:db.session.add(數(shù)據(jù)模型對象)、db.session.commit()
??????????????? 查詢:獲取結(jié)果集:db.query.filter()/db.session.all()/
????????????????????????????? 獲取單個(gè)數(shù)據(jù):db.session.get(主鍵)蹋订、db.session.first()
???????????????????????????? 數(shù)據(jù)篩選:order_by者填、limit、offset和limit部分順序喘漏,因?yàn)閛ffset優(yōu)先操作护蝶。
???????????????? 更新:先查詢到再更新? db.session.add()? db.session.commit()
??????????????? 刪除:db.session.delete()?? db.session.commit()
數(shù)據(jù)定義:
字段類型:Integer String Text Date Boolean
約束:主鍵約束 primary_key??
??????? 自增長??????????? autoincrement
??????????????????????????????? unique
???????????????????????????????? default
????????????????????????????????? index
???????????????????????????????? nullable
???????????????????????????????? ForeignKey
項(xiàng)目拆分:
程序入口:manage.py(falsk-script)可以接收命令行參數(shù)
App:__init__.py?? 初始化:創(chuàng)建flask對象??? 系統(tǒng)的配置內(nèi)容。初始化翩迈。
views.py? 藍(lán)圖????? 路由/視圖函數(shù)
models.py???? 模型?????
settings.py?????? flask對象的一些環(huán)境配置持灰。
ext.py???????????? db?
?????????????????????? migrate
???????????????????????? session