Backend Development
Python Tutorial
How to handle comma-separated list query parameters in FastAPI?
How to handle comma-separated list query parameters in FastAPI?

Detailed explanation of the comma-separated processing method of FastAPI list parameters
When building APIs using FastAPI, it is often necessary to process list-type query parameters. FastAPI parses query parameters with the same name into a list by default. For example, ?source=manual&source=vdna will be parsed as source=['manual', 'vdna'] . But sometimes we need to pass list parameters with comma separated strings, such as ?source=manual,vdna . This article introduces two solutions.
The root of the problem: In the original code, source parameter was defined as list[source] type, causing FastAPI to parse duplicate parameters into lists instead of comma-separated strings.
Method 1: String parameters and manual parsing
The most direct way is to change the source parameter type to Optional[str] and manually parse comma-separated strings inside the function. This method is simple and easy to understand without additional dependencies.
Code example:
@review.get('/list', summary='get list to be reviewed')
def list_await_review(
# ... other parameters ...
source: Optional[str] = Query(None, description="Please use `,` to split multiple parameters, such as `Manual,vDNA, text-match`",
# ... other parameters ...
):
parsed_source = source.split(",") if source else []
# ...The subsequent code uses parsed_source... This method parses source into a string and then splits it into a list using split(",") method. If source is empty, parsed_source is an empty list.
Method 2: Custom parsing process (advanced method)
A more flexible approach is to customize the parsing process, such as creating custom dependencies to handle comma-separated strings. This approach can handle more complex parsing logic, but requires more code writing and a deeper understanding of FastAPI's dependency injection mechanism. The official document recommends using Annotated enhanced parameter checksum type prompts, which is more advantageous when dealing with complex parameters, but the implementation details are beyond the scope of this article.
Which method to choose depends on your needs and FastAPI proficiency. For simple comma-separated list parameters, Method 1 is efficient and concise enough; for more complex scenarios, Method 2 provides greater flexibility.
The above is the detailed content of How to handle comma-separated list query parameters in FastAPI?. For more information, please follow other related articles on the PHP Chinese website!
Hot AI Tools
Undresser.AI Undress
AI-powered app for creating realistic nude photos
AI Clothes Remover
Online AI tool for removing clothes from photos.
Undress AI Tool
Undress images for free
Clothoff.io
AI clothes remover
AI Hentai Generator
Generate AI Hentai for free.
Hot Article
Hot Tools
Notepad++7.3.1
Easy-to-use and free code editor
SublimeText3 Chinese version
Chinese version, very easy to use
Zend Studio 13.0.1
Powerful PHP integrated development environment
Dreamweaver CS6
Visual web development tools
SublimeText3 Mac version
God-level code editing software (SublimeText3)
Hot Topics
1378
52
Debian mail server firewall configuration tips
Apr 13, 2025 am 11:42 AM
Configuring a Debian mail server's firewall is an important step in ensuring server security. The following are several commonly used firewall configuration methods, including the use of iptables and firewalld. Use iptables to configure firewall to install iptables (if not already installed): sudoapt-getupdatesudoapt-getinstalliptablesView current iptables rules: sudoiptables-L configuration
Debian mail server SSL certificate installation method
Apr 13, 2025 am 11:39 AM
The steps to install an SSL certificate on the Debian mail server are as follows: 1. Install the OpenSSL toolkit First, make sure that the OpenSSL toolkit is already installed on your system. If not installed, you can use the following command to install: sudoapt-getupdatesudoapt-getinstallopenssl2. Generate private key and certificate request Next, use OpenSSL to generate a 2048-bit RSA private key and a certificate request (CSR): openss
How to do Debian Hadoop log management
Apr 13, 2025 am 10:45 AM
Managing Hadoop logs on Debian, you can follow the following steps and best practices: Log Aggregation Enable log aggregation: Set yarn.log-aggregation-enable to true in the yarn-site.xml file to enable log aggregation. Configure log retention policy: Set yarn.log-aggregation.retain-seconds to define the retention time of the log, such as 172800 seconds (2 days). Specify log storage path: via yarn.n
How to learn Debian syslog
Apr 13, 2025 am 11:51 AM
This guide will guide you to learn how to use Syslog in Debian systems. Syslog is a key service in Linux systems for logging system and application log messages. It helps administrators monitor and analyze system activity to quickly identify and resolve problems. 1. Basic knowledge of Syslog The core functions of Syslog include: centrally collecting and managing log messages; supporting multiple log output formats and target locations (such as files or networks); providing real-time log viewing and filtering functions. 2. Install and configure Syslog (using Rsyslog) The Debian system uses Rsyslog by default. You can install it with the following command: sudoaptupdatesud
Debian mail server virtual host configuration method
Apr 13, 2025 am 11:36 AM
Configuring a virtual host for mail servers on a Debian system usually involves installing and configuring mail server software (such as Postfix, Exim, etc.) rather than Apache HTTPServer, because Apache is mainly used for web server functions. The following are the basic steps for configuring a mail server virtual host: Install Postfix Mail Server Update System Package: sudoaptupdatesudoaptupgrade Install Postfix: sudoapt
Sony confirms the possibility of using special GPUs on PS5 Pro to develop AI with AMD
Apr 13, 2025 pm 11:45 PM
Mark Cerny, chief architect of SonyInteractiveEntertainment (SIE, Sony Interactive Entertainment), has released more hardware details of next-generation host PlayStation5Pro (PS5Pro), including a performance upgraded AMDRDNA2.x architecture GPU, and a machine learning/artificial intelligence program code-named "Amethylst" with AMD. The focus of PS5Pro performance improvement is still on three pillars, including a more powerful GPU, advanced ray tracing and AI-powered PSSR super-resolution function. GPU adopts a customized AMDRDNA2 architecture, which Sony named RDNA2.x, and it has some RDNA3 architecture.
How to configure HTTPS server in Debian OpenSSL
Apr 13, 2025 am 11:03 AM
Configuring an HTTPS server on a Debian system involves several steps, including installing the necessary software, generating an SSL certificate, and configuring a web server (such as Apache or Nginx) to use an SSL certificate. Here is a basic guide, assuming you are using an ApacheWeb server. 1. Install the necessary software First, make sure your system is up to date and install Apache and OpenSSL: sudoaptupdatesudoaptupgradesudoaptinsta
How to perform digital signature verification with Debian OpenSSL
Apr 13, 2025 am 11:09 AM
Using OpenSSL for digital signature verification on Debian systems, you can follow these steps: Preparation to install OpenSSL: Make sure your Debian system has OpenSSL installed. If not installed, you can use the following command to install it: sudoaptupdatesudoaptininstallopenssl to obtain the public key: digital signature verification requires the signer's public key. Typically, the public key will be provided in the form of a file, such as public_key.pe


