Làm cách nào để chuyển tham số trong url trong python?

Khi bạn khai báo các tham số chức năng khác không phải là một phần của tham số đường dẫn, chúng sẽ tự động được hiểu là tham số "truy vấn"

from fastapi import FastAPI

app = FastAPI[]

fake_items_db = [{"item_name": "Foo"}, {"item_name": "Bar"}, {"item_name": "Baz"}]


@app.get["/items/"]
async def read_item[skip: int = 0, limit: int = 10]:
    return fake_items_db[skip : skip + limit]

Truy vấn là tập hợp các cặp khóa-giá trị theo sau

//127.0.0.1:8000/items/
3 trong URL, được phân tách bằng ký tự
//127.0.0.1:8000/items/
4

Ví dụ, trong URL

//127.0.0.1:8000/items/?skip=0&limit=10

các tham số truy vấn là

  • //127.0.0.1:8000/items/
    
    5. với giá trị là
    //127.0.0.1:8000/items/
    
    6
  • //127.0.0.1:8000/items/
    
    7. với giá trị là
    //127.0.0.1:8000/items/
    
    8

Vì chúng là một phần của URL nên chúng là các chuỗi "tự nhiên"

Nhưng khi bạn khai báo chúng với các kiểu Python [trong ví dụ trên, là

//127.0.0.1:8000/items/
9], chúng sẽ được chuyển đổi thành kiểu đó và được xác thực theo kiểu đó

Tất cả quy trình tương tự áp dụng cho tham số đường dẫn cũng áp dụng cho tham số truy vấn

  • Hỗ trợ biên tập viên [rõ ràng]
  • Dữ liệu "phân tích cú pháp"
  • Xác nhận dữ liệu
  • tài liệu tự động

Mặc định¶

Vì tham số truy vấn không phải là phần cố định của đường dẫn nên chúng có thể là tùy chọn và có thể có giá trị mặc định

Trong ví dụ trên, chúng có giá trị mặc định là

//127.0.0.1:8000/items/?skip=0&limit=10
0 và
//127.0.0.1:8000/items/?skip=0&limit=10
1

Vì vậy, đi đến URL

//127.0.0.1:8000/items/

sẽ giống như đi đến

//127.0.0.1:8000/items/?skip=0&limit=10

Nhưng nếu bạn đi đến, ví dụ

//127.0.0.1:8000/items/
3

Các giá trị tham số trong hàm của bạn sẽ là

  • //127.0.0.1:8000/items/?skip=0&limit=10
    
    2. bởi vì bạn đã đặt nó trong URL
  • //127.0.0.1:8000/items/?skip=0&limit=10
    
    1. bởi vì đó là giá trị mặc định

Thông số tùy chọn¶

Theo cách tương tự, bạn có thể khai báo các tham số truy vấn tùy chọn, bằng cách đặt mặc định của chúng thành

//127.0.0.1:8000/items/?skip=0&limit=10
4

Trăn 3. 6 trở lênPython 3. 10 trở lên

//127.0.0.1:8000/items/
7

//127.0.0.1:8000/items/
8

Trong trường hợp này, tham số chức năng

//127.0.0.1:8000/items/?skip=0&limit=10
5 sẽ là tùy chọn và sẽ là
//127.0.0.1:8000/items/?skip=0&limit=10
4 theo mặc định

Kiểm tra

Cũng lưu ý rằng FastAPI đủ thông minh để nhận thấy rằng tham số đường dẫn

//127.0.0.1:8000/items/?skip=0&limit=10
7 là tham số đường dẫn và
//127.0.0.1:8000/items/?skip=0&limit=10
5 thì không, vì vậy, đây là tham số truy vấn

Chuyển đổi loại tham số truy vấn¶

Bạn cũng có thể khai báo các loại

//127.0.0.1:8000/items/?skip=0&limit=10
9 và chúng sẽ được chuyển đổi

Trăn 3. 6 trở lênPython 3. 10 trở lên

//127.0.0.1:8000/items/
4

//127.0.0.1:8000/items/
5

Trong trường hợp này, nếu bạn đi đến

//127.0.0.1:8000/items/
6

hoặc

//127.0.0.1:8000/items/?skip=0&limit=10
0

hoặc

//127.0.0.1:8000/items/?skip=0&limit=10
1

hoặc

//127.0.0.1:8000/items/?skip=0&limit=10
2

hoặc

//127.0.0.1:8000/items/?skip=0&limit=10
3

hoặc bất kỳ biến thể kiểu chữ nào khác [chữ hoa, chữ cái đầu tiên viết hoa, v.v.], hàm của bạn sẽ thấy tham số

//127.0.0.1:8000/items/
30 với giá trị
//127.0.0.1:8000/items/?skip=0&limit=10
9 là
//127.0.0.1:8000/items/
32. Nếu không thì là
//127.0.0.1:8000/items/
33

Nhiều đường dẫn và tham số truy vấn¶

Bạn có thể khai báo nhiều tham số đường dẫn và tham số truy vấn cùng lúc, FastAPI biết cái nào là cái nào

Và bạn không cần phải khai báo chúng theo bất kỳ thứ tự cụ thể nào

Họ sẽ được phát hiện theo tên

Trăn 3. 6 trở lênPython 3. 10 trở lên

//127.0.0.1:8000/items/?skip=0&limit=10
4

//127.0.0.1:8000/items/?skip=0&limit=10
5

Các tham số truy vấn bắt buộc¶

Khi bạn khai báo một giá trị mặc định cho các tham số không phải đường dẫn [hiện tại chúng ta mới chỉ thấy các tham số truy vấn] thì không cần thiết

Nếu bạn không muốn thêm một giá trị cụ thể mà chỉ muốn thêm một giá trị tùy chọn, hãy đặt giá trị mặc định là

//127.0.0.1:8000/items/?skip=0&limit=10
4

Nhưng khi bạn muốn thực hiện một tham số truy vấn bắt buộc, bạn có thể không khai báo bất kỳ giá trị mặc định nào

//127.0.0.1:8000/items/?skip=0&limit=10
6

Ở đây tham số truy vấn

//127.0.0.1:8000/items/
35 là tham số truy vấn bắt buộc thuộc loại
//127.0.0.1:8000/items/
36

Nếu bạn mở trong trình duyệt của mình một URL như

//127.0.0.1:8000/items/?skip=0&limit=10
7

mà không thêm tham số bắt buộc

//127.0.0.1:8000/items/
35, bạn sẽ thấy lỗi như

//127.0.0.1:8000/items/?skip=0&limit=10
8

//127.0.0.1:8000/items/
35 là tham số bắt buộc nên bạn cần đặt tham số này trong URL

//127.0.0.1:8000/items/?skip=0&limit=10
9

cái này sẽ hiệu quả

//127.0.0.1:8000/items/
0

Và tất nhiên, bạn có thể xác định một số tham số theo yêu cầu, một số có giá trị mặc định và một số hoàn toàn tùy chọn.

Chúng tôi có thể chuyển tham số URL trong yêu cầu GET không?

Tham số GET [còn gọi là tham số URL hoặc chuỗi truy vấn] được sử dụng khi ứng dụng khách, chẳng hạn như trình duyệt, yêu cầu một tài nguyên cụ thể từ máy chủ web bằng giao thức HTTP . Các tham số này thường là các cặp tên-giá trị, được phân tách bằng dấu bằng =. Chúng có thể được sử dụng cho nhiều thứ, như được giải thích bên dưới.

Phương pháp nào sẽ chuyển giá trị qua URL?

Gửi giá trị biểu mẫu thông qua phương thức GET . Vì vậy, chúng tôi có thể sử dụng một biểu mẫu để tạo URL có biến và dữ liệu bằng cách lấy thông tin đầu vào từ người dùng.

Chủ Đề