
本文共 4263 字,大约阅读时间需要 14 分钟。
Flask-SQLAlchemy������������
Flask-SQLAlchemy ��������������������������������������������������������� ORM������������������������������������������������������������������ SQL ������������������ Flask ������������������������������������������������������������������������������������������������������ Flask-SQLAlchemy ���������������������������������������������������
������������
������������������������������ Flask ��� Flask-SQLAlchemy��������� pip ���������������������
pip install flask-sqlalchemy
������������ MySQL ������������������������������ mysqlelib���
pip install flask-mysqldb
��������������������������������������������������� PostgreSQL���Oracle ������������������������������������������������������������������������ SQLAlchemy ������������������
���������������������������
������������������������������ Flask ��������������������������������������������������������� Flask ���������������������������������
app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql://root:root@localhost:3306/mydb'
SQLALCHEMY_DATABASE_URI������������������������������������������������
���������������://���������:������@IP:������/������������
������������MySQL ������������������������
app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql://root:root@localhost:3306/mydb'
���������������������
���������������
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = True
���������������
app.config['SQLALCHEMY_ECHO'] = True
������������ Flask-SQLAlchemy ������������������������������������������
mysql -u root -p
������MySQL������������������������������������������������������
CREATE DATABASE IF NOT EXISTS mydb charset utf8;
������������������������������������������������������ root
���������
������������������������
Flask-SQLAlchemy ������������������������������������������������������ schemas ������ ORM ������������������������ schemas ��� ORM ���������������������������������������
1. ������������������
������������������SQLALCHEMY_POOL_SIZE ������ 5������������������������������������������ 10 ������������������������������������������ pool_size ��������� pool_recycle ���������������������������
������������������������
app.config['SQLALCHEMY_POOL_SIZE'] = 20app.config['SQLALCHEMY_POOL_TIMEOUT'] = 30app.config['SQLALCHEMY_POOL_RECYCLE'] = 1800
���������pool_size
������������������������������������pool_timeout
���������������������������pool_recycle
���������������������������MySQL ������������
2. ���������������������
������ SQLAlchemy ��� relation ������������������������������������������������������������ ���backref������������������ back_populates
��� backref
���
���������������������������������������
orm.Integer( 'category_id', nullable=False, primary_key=False, index=True)orm.Column('category_name', orm.String(100), nullable=False)
3. ������������������������
������ ORM ������������������
data = session.query(User.query).filter(User.username == 'admin').first()
���������������
from flask_sqlalchemy import dbfrom app.init_db import *@db������def update_user(username, new_data): user = User.query.filter(User.username == username).first() if user: if 'first_name' in new_data: user.first_name = new_data['first_name'] db.session.commit()
4. ������������
������ inspect
���������������������������������
if __name__ == '__main__': models = inspect(db.get_app()).get_models() for model in models: print(model.orm_class.__name__) print(model.orm_version) print(model.meta_data)
��������������� flask-sqlalchemy
��������������������� Flask ���������
������������������������
��������������������������������������� URI ��������������������������������������� IP ���������������
��������������������� ETOF
���������������������������������������
try: query = User.query.from_sql('SELECT username, email FROM users') result = query.execute_and_fetch_one()except ETLEOF: logger.error('(sql query failed)') raise
- ������������������������ Flask-Migrate ������������������������������ schema Version under control���
���������Flask-SQLAlchemy ��������������������������������������������������������������������������������������������������������������������������������������������������������� Flask ������������������ database session ������������������������������
发表评论
最新留言
关于作者
