Django
Sql injection
Django raw query sql injection
Nên sử dụng cách 1, cách 2 và 3 sẽ bị sql injection
Transaction
Autocommit (default): Mỗi truy vấn được cam kết ngay lập tức với cơ sở dữ liệu, trừ khi một giao dịch đang hoạt động
atomic
--> Đoạn code save thành công book1 và book3 trong database.
on_commit: Thực hiện một hành động liên quan đến giao dịch cơ sở dữ liệu hiện tại, nhưng chỉ khi giao dịch được thực hiện thành công
Lazy queryset
Tạo 1 QuerySet không đồng nghĩa với việc truy vấn CSDL
Câu query trên chỉ thực hiện truy vấn 1 lần
Khi nào query được thực thi
Vòng lặp
Slicing
repr()
len()
list
bool( Nếu bạn chỉ muốn check 1 QuerySet có tồn tại hay không, sẽ cho tốc độ truy vấn nhanh và hiệu quả hơn nếu bạn dùng exists() )
prefetch_related và select_related
Đoạn code trên thực hiện N + 1 câu query Nên sử dụng như sau:
bulk_create và bulk_update
Use foreign key values directly
Last updated