
本文共 5269 字,大约阅读时间需要 17 分钟。
Flask-SQLAlchemy ������������
1. ������������
Flask-SQLAlchemy ��� Flask ������������������������������������������������������������������������ ORM��������������������������������������������������� ORM ������������ Python ��������������������������������� Query ��������������������� SQL���������������������������������������
2. ���������������������
������������������ SQLAlchemy ������������������������������������������������������������������������������������������������ Flask ��������������������� db.session
������������������������
- ���������������������������������������������������������������
- ���������������������
db.session.add()
������������������������������ - ���������������������
db.session.commit()
���������������������������������������
���������������������
# ������������ Role ������������������������ro1 = Role(name='admin')db.session.add(ro1)# ���������������������������������������db.session.commit()# ������������������ Role ������ro2 = Role(name='user')db.session.add(ro2)db.session.commit()
���������������������������
������������������������������������������������������������������
# ������������ User ������us1, us2, ..., us10 = [...] # ��������������������������������� name ��� email ���������# ���������������������������db.session.add_all([us1, us2, ..., us10])db.session.commit()
3. ������������
SQLAlchemy ������������������������������������������ Query ������������������������������������������������������
-
���������������������������
all()
���������������������������������������������users = User.query.all() # ������������ User ������
-
���������������������������
first()
���������������������������������������������user = User.query.first() # ��������������� User ������������������������������ None
-
���������������������
filter_by()
������������������������������������������������# ������������ "wang" ���������user_filter = User.query.filter_by(name="wang").all()
���������������
-
������������������������������������ "g" ������������������������
endswith()
���������user_list = User.query.filter(User.name.endswith("g")).all()
-
���������������������������������������������������������������������������
# ������������ "wang" ������������������ email ��� "163.com" ������user_list = User.query.filter( User.name != "wang", User.email.endswith("163.com")).all()
SQL ���������
��������������������� ` casinos() ��������� SQLAlchemy ��������������� SQL ���������
sql = User.query.with_only_queries([User.name == "wang"])._sqlalchemy_objprint(sql) # ������������ "SELECT user.name, user.email FROM user;"
4. ������������������CRUD ������
������������
������������������������������������������������������������������������������������������������������
# ���������������������user = User.query.first()# ������������������ "dong"user.name = "dong"# ������������db.session.commit()
������������
��������������������������������������������������������������������� delete()
���������������������
user = User.query.first()db.session.delete(user)db.session.commit()
5. ��������� ������
������������������������������������������������������������������������������������
# ��������������� registersregistrations = db.Table( 'registrations', db.Column('student_id', db.Integer, db.ForeignKey('students.id')), db.Column('course_id', db.Integer, db.ForeignKey('courses.id')))# ������ Course ������class Course(db.Model): __tablename__ = 'courses' ... # ��������������� courses = db.relationship('Student', backref='courses', lazy='dynamic')# ������ Student ������class Student(db.Model): __tablename__ = 'students' ... # ��������������� classes = db.relationship('Course', secondary=registrations, backref='student', lazy='dynamic')
������������������ us.courses
������������������������������������������ course.student
���������������������������������������
6. ���������������������
SQLAlchemy ������������������������������������������������������������
- all()������������������������������������
- first()��������������������������������� None������������������������������
- first_or_404()��������������������������������������� 404 ���������
- get()������������������������������������������ None���
- get_or_404()������������������������������������������ 404���
- paginate()������������������������������ Paginate ���������
���������������������
# TreeMap ������������������������������������������ paginate() ������page = User.query.paginate(per_page=10, page=1)# ������������������users = page.items
7. ���������������
-
������������������
create_all()
���������������������������������db.create_all()
-
������������������
drop_all()
������������������������db.drop_all()
8. ������������������������
������������������������ lazy='dynamic'
������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������ lazy='joined'
��� lazy='eager'
���
9. ������������
��������������������������������������� Flask-SQLAlchemy ��������������������������������������������� CRUD ������������������������������������������������������������������������������������������������������������������
发表评论
最新留言
关于作者
