Thủ tục lưu trữ cuộc gọi django mysql

Trong hướng dẫn trước, chúng ta đã học cách kết nối cơ sở dữ liệu MySQL với Python. Trong hướng dẫn đó, chúng ta sẽ đi qua kết nối DB, truy vấn DDL và DML, v.v. Trong hướng dẫn này, chúng ta sẽ tìm hiểu cách tạo thủ tục lưu sẵn và gọi chúng trong chương trình Python

Đây sẽ là một hướng dẫn chi tiết nhưng đơn giản và chúng ta sẽ tìm hiểu mọi thứ từng bước một, bắt đầu từ việc tạo bảng và các thủ tục trong MySQL. Sau đó, chúng tôi sẽ gọi các thủ tục này trong chương trình Python. chúng ta đi đây

Trong hướng dẫn này, chúng tôi sẽ không giải thích thủ tục lưu sẵn là gì vì coi như bạn đã có kiến ​​thức về thủ tục lưu trữ trong MySQL

điều kiện tiên quyết

Trước khi viết chương trình bằng Python, hãy đảm bảo rằng bạn đã khởi động máy chủ MySQL và nó đang hoạt động tốt. Sau đó, chúng ta phải tạo thủ tục lưu trữ trong MySQL thông qua dòng lệnh. Tuy nhiên, bạn có thể muốn viết các câu lệnh MySQL bằng MySQL workbench

Đảm bảo rằng bạn sử dụng tốt kết nối Python-MySQL. Chúng tôi đã tạo hướng dẫn đầy đủ;

Đó là tất cả những gì chúng ta cần. Hãy đi sâu vào hướng dẫn

Trước khi chúng ta bắt đầu

Trước khi bắt đầu hướng dẫn thực tế, hãy hiểu những điều chúng ta sẽ đạt được

Ta sẽ tạo một bảng để chứa thông tin chi tiết của các laptop. Sau đó, chúng tôi sẽ tạo hai thủ tục được lưu trữ; . Sau đó, chúng tôi sẽ viết một chương trình Python và gọi từng thủ tục được lưu trữ đó

Cú pháp gọi thủ tục lưu trữ MySQL trong Python

Gọi một thủ tục lưu sẵn trong Python cũng dễ như viết một truy vấn đơn giản. Cú pháp đơn giản và không yêu cầu câu lệnh bổ sung hoặc nhiều dòng mã

Đây là cú pháp để gọi thủ tục lưu sẵn trong Python

result_args = cursor.callproc[proc_name, args=[]]

Code language: SQL [Structured Query Language] [sql]

Thí dụ-

cursor.callproc[laptop_by_name,["lenovo"];

Code language: SQL [Structured Query Language] [sql]

Ở đâu,

  • con trỏ là một đối tượng Python để thực thi các câu lệnh và giao tiếp với MySQL DB
  • callproc là một chức năng để gọi thủ tục được lưu trữ
  • proc_name là tên thủ tục được lưu trữ
  • args là các đối số thủ tục được lưu trữ

Phiên bản sửa đổi của chuỗi đầu vào được trả về bởi callproc[]. Cách tiếp cận này không thay đổi các tham số được cung cấp. Tuy nhiên, nó có thể thay thế các tham số đầu ra và đầu vào/đầu ra bằng các giá trị mới tùy thuộc vào kết quả thực hiện

Tập hợp kết quả của câu lệnh trên được tự động tìm nạp và lưu trữ dưới dạng phiên bản MySQLCursorBuffered và bạn có thể sử dụng phương thức stored_result[] để lấy giá trị tập hợp kết quả

Ví dụ gọi thủ tục trong Python

Hãy chứng minh điều này bằng cách tạo một bảng, tạo một thủ tục được lưu trữ và sau đó gọi nó trong chương trình Python của chúng ta

Tạo bảng và chèn dữ liệu vào bảng

Hãy bắt đầu bằng cách tạo một bảng có tên là máy tính xách tay và sau đó chèn dữ liệu vào đó

CREATE TABLE laptops[ id INT PRIMARY KEY AUTO_INCREMENT, model_no INT, model_name VARCHAR[100], price FLOAT, insurance FLOAT, quantity INT ];

Code language: SQL [Structured Query Language] [sql]

INSERT INTO laptops[model_no,model_name,price,insurance,quantity] VALUES[12314,"Lenovo Ideapad",41490,180,5], [57823,"Dell Vostro 3000",40990,130,9], [17827,"Asus Vivobook",35000,130,8], [12879,"HP Ryzen 3",39990,120,9], [23098,"Asus Pentium Q",28990,180,4], [18778,"Dell Inspiron 3",45990,130,5];

Code language: SQL [Structured Query Language] [sql]

Hãy kiểm tra xem dữ liệu đã được chèn thành công vào bảng hay chưa

SELECT * FROM laptops;

Code language: SQL [Structured Query Language] [sql]

Máy tính xách tay Bảng dữ liệu

Tạo thủ tục lưu trữ

Hoàn hảo. Đã chèn dữ liệu thành công. Sử dụng MySQL CLI, hãy tạo một quy trình để tìm nạp tất cả các chi tiết của máy tính xách tay với giá kết hợp [giá + bảo hiểm]

DELIMITER // mysql> CREATE PROCEDURE lap_details[] BEGIN SELECT id, model_no,model_name,price as base_price, [price+insurance] AS total_price, quantity FROM laptops; END //

Code language: SQL [Structured Query Language] [sql]

lap_details Thủ tục lưu trữ

Chúng tôi đã tạo thủ tục lưu sẵn lap_details[] bao gồm câu lệnh SELECT với việc bổ sung đơn giản hai cột - giá và bảo hiểm và cột mới sẽ được tạo với tên “total_price”

Lưu ý rằng không có tham số nào được xác định cho thủ tục. Nếu bạn cố truyền tham số trong khi gọi nó, bạn sẽ gặp lỗi

Gọi thủ tục lap_details để xem kết quả

CALL lap_details[];

Code language: SQL [Structured Query Language] [sql]

lap_details Thủ tục lưu trữ Kết quả

Bây giờ, chúng ta sẽ tạo một thủ tục khác với một tham số IN và một câu lệnh SELECT

CREATE PROCEDURE lap_by_names[IN name VARCHAR[100]] BEGIN SELECT id, model_no,model_name,price as base_price, insurance,[price+insurance] AS total_price, quantity FROM laptops WHERE model_name LIKE CONCAT['%',name,'%']; END //

Code language: SQL [Structured Query Language] [sql]

lap_by_names Thủ tục lưu trữ

Quy trình này sẽ tìm kiếm một máy tính xách tay cụ thể theo tên đã nhập và trả về tất cả các kết quả phù hợp

Chúng tôi đã chuyển một tham số "tên" sẽ bao gồm tên máy tính xách tay. Thủ tục sẽ tìm kiếm từ khóa đã cho trong bảng bằng cách sử dụng mệnh đề WHERE và toán tử LIKE và trả về kết quả

Gọi thủ tục lap_by_names và kiểm tra kết quả

________số 8

lap_by_names Thủ tục lưu trữ Kết quả

Chúng tôi đã có đầu ra mong muốn bằng thủ tục. Hãy gọi các thủ tục được lưu trữ này bằng chương trình Python

Gọi các thủ tục được lưu trữ từ một chương trình Python

Thực hiện theo các bước dưới đây để gọi các thủ tục được lưu trữ trong chương trình Python

  • Tạo kết nối cơ sở dữ liệu bằng trình kết nối mysql và thông tin xác thực phù hợp
  • Tạo một đối tượng con trỏ
  • Gọi phương thức call_proc[] để gọi thủ tục
  • Lặp lại qua obj. stored_results[] và tìm nạp kết quả bằng phương thức fetchall[]
  • In kết quả
  • Đóng con trỏ và kết nối DB

Hãy tập hợp tất cả các hướng dẫn trong một chương trình duy nhất được viết dưới đây và thực hiện nó

import mysql.connector as myconn mydb = myconn.connect[ host="localhost", user="", password="", database="journaldev" ] obj = mydb.cursor[] obj.callproc["lap_details"] for result in obj.stored_results[]: details = result.fetchall[] for det in details: print[det] obj.close[] mydb.close[]

Code language: Python [python]

Trong chương trình trên, chúng ta đã gán tập kết quả của kết quả. câu lệnh fetchall[] cho biến chi tiết. Ở đây, chi tiết là một danh sách và lưu trữ tất cả các kết quả dưới dạng một tập hợp các phần tử danh sách. Chúng tôi có thể lặp qua nó và nhận các hàng riêng lẻ bằng cách sử dụng vòng lặp FOR

Lưu ý- bạn có thể in trực tiếp “kết quả. câu lệnh fetchall[]” của vòng lặp FOR đầu tiên. Vòng lặp FOR thứ hai được sử dụng để lấy các hàng trong dòng mới. Bạn cũng có thể bỏ qua vòng lặp FOR thứ hai

Dưới đây là kết quả sau khi thực hiện đoạn chương trình trên

lap_details Thủ tục lưu trữ Đầu ra chương trình Python

Đây là một chương trình khác để gọi thủ tục được lưu trữ thứ hai “lap_by_names”

cursor.callproc[laptop_by_name,["lenovo"];

Code language: SQL [Structured Query Language] [sql]
0

Ở đây, chúng tôi đã chuyển đối số thứ hai cho obj. phương thức callproc[], không là gì ngoài tham số thủ tục được lưu trữ. Chúng tôi sẽ vượt qua “Lenovo” và sau đó là “hp” để lấy đầu ra. Thực hiện chương trình trên ta được kết quả như hình bên dưới

lap_by_names Thủ tục lưu trữ Đầu ra chương trình Python

Như bạn có thể thấy, chúng tôi đã nhận được kết quả bao gồm model_name “Lenovo” và “hp”

Sự kết luận

Đây là một hướng dẫn đơn giản nhưng mạnh mẽ để tìm hiểu các thủ tục được lưu trữ trong Python sẽ giúp bạn trong suốt hành trình Python của mình. Nếu bạn thấy hướng dẫn này hữu ích, đừng quên chia sẻ nó với bạn bè của bạn và để họ cùng học. Hẹn gặp lại các bạn trong phần hướng dẫn thú vị sau

Làm cách nào để gọi thủ tục lưu trữ MySQL trong Django?

Gọi thủ tục lưu sẵn từ Python .
Kết nối với cơ sở dữ liệu bằng cách tạo một đối tượng MySQLConnection mới
Khởi tạo một đối tượng MySQLCursor mới từ đối tượng MySQLConnection bằng cách gọi phương thức cursor[]
Gọi phương thức callproc[] của đối tượng MySQLCursor. .
Đóng con trỏ và kết nối cơ sở dữ liệu như mọi khi

Làm cách nào để gọi một thủ tục được lưu trữ trong Django?

Django-mssql cung cấp hỗ trợ để thực thi các thủ tục được lưu trữ, có và không có tham số. Chức năng chính nên được sử dụng để thực thi thủ tục lưu sẵn là callproc . callproc sẽ cho phép thực thi thủ tục lưu sẵn với cả tham số đầu vào và đầu ra, giá trị trả về số nguyên và tập kết quả.

Làm cách nào để sử dụng thủ tục lưu trữ MySQL trong Python?

Các bước để thực thi Quy trình lưu trữ MySQL trong Python .
Kết nối với MySQL từ Python. .
Nhận đối tượng con trỏ từ kết nối. .
Thực hiện thủ tục được lưu trữ. .
Tìm nạp kết quả. .
Đóng đối tượng con trỏ và đối tượng kết nối cơ sở dữ liệu

Làm cách nào để kết nối MySQL với Django?

Các bước kết nối MySQL với Django .
Bước 1. Tạo một dự án mới django-admin startproject MyDB
Bước 2. Di chuyển đến thư mục MyDB. cd MyDB
Bước 4. Cập nhật cài đặt. py. Mở cài đặt. py ở đây bên trong biến DATABASES định cấu hình các giá trị cơ sở dữ liệu MySQL và thêm các giá trị của cơ sở dữ liệu của bạn. Python3. .
Bước 5. Chạy máy chủ

Chủ Đề