This page demonstrates all advanced code block features available in Material for MkDocs, showcasing syntax highlighting, line numbers, annotations, and interactive elements.
importasyncioimportaiohttpfromtypingimportList,Dict,Optionalasyncdeffetch_data(session:aiohttp.ClientSession,url:str)->Optional[Dict]:"""Fetch data from a URL asynchronously."""try:asyncwithsession.get(url)asresponse:ifresponse.status==200:returnawaitresponse.json()else:print(f"Error {response.status} for {url}")returnNoneexceptExceptionase:print(f"Exception fetching {url}: {e}")returnNoneasyncdeffetch_multiple(urls:List[str])->List[Dict]:"""Fetch data from multiple URLs concurrently."""asyncwithaiohttp.ClientSession()assession:tasks=[fetch_data(session,url)forurlinurls]results=awaitasyncio.gather(*tasks,return_exceptions=True)return[rforrinresultsifisinstance(r,dict)]
defprocess_user_data(users:List[Dict])->Dict[str,int]:"""Process user data and return statistics."""# Data validation - highlighted sectionifnotusers:raiseValueError("No users provided")# Initialize countersstats={"active":0,"inactive":0,"total":0}# highlighted line# Process each userforuserinusers:# Update statistics - highlighted sectionstats["total"]+=1ifuser.get("is_active",False):stats["active"]+=1else:stats["inactive"]+=1returnstats
fromfastapiimportFastAPI,HTTPException,Dependsfromsqlalchemy.ormimportSessionfromtypingimportListapp=FastAPI(title="User API")# (1)!defget_db():# (2)!db=SessionLocal()try:yielddbfinally:db.close()@app.get("/users/",response_model=List[UserResponse])# (3)!asyncdefget_users(skip:int=0,# (4)!limit:int=100,# (5)!db:Session=Depends(get_db)# (6)!):"""Retrieve a list of users with pagination."""users=db.query(User).offset(skip).limit(limit).all()# (7)!returnusers@app.post("/users/",response_model=UserResponse,status_code=201)asyncdefcreate_user(user:UserCreate,# (8)!db:Session=Depends(get_db)):"""Create a new user."""db_user=User(**user.dict())# (9)!db.add(db_user)db.commit()# (10)!db.refresh(db_user)returndb_user
FastAPI application instance with custom title
Database session dependency for connection management
GET endpoint with automatic response model validation
fromfastapiimportFastAPI,Query,PathfrompydanticimportBaseModelfromtypingimportOptional,Listimportuuidapp=FastAPI()classUser(BaseModel):id:str=Nonename:stremail:strage:Optional[int]=None@app.get("/users/{user_id}")asyncdefget_user(user_id:str=Path(...,description="The ID of the user to retrieve")):"""Get a specific user by ID."""# Implementation herepass@app.get("/users/")asyncdeflist_users(limit:int=Query(10,ge=1,le=100),offset:int=Query(0,ge=0)):"""List users with pagination."""# Implementation herepass
-- Create users table with all necessary fieldsCREATETABLEusers(idUUIDPRIMARYKEYDEFAULTgen_random_uuid(),emailVARCHAR(255)UNIQUENOTNULL,nameVARCHAR(100)NOTNULL,password_hashVARCHAR(255)NOTNULL,is_activeBOOLEANDEFAULTtrue,is_verifiedBOOLEANDEFAULTfalse,created_atTIMESTAMPWITHTIMEZONEDEFAULTNOW(),updated_atTIMESTAMPWITHTIMEZONEDEFAULTNOW());-- Create index for email lookupsCREATEINDEXidx_users_emailONusers(email);-- Create index for active usersCREATEINDEXidx_users_activeONusers(is_active)WHEREis_active=true;-- Add trigger for updated_atCREATEORREPLACEFUNCTIONupdate_updated_at_column()RETURNSTRIGGERAS$$BEGINNEW.updated_at=NOW();RETURNNEW;END;$$language'plpgsql';CREATETRIGGERupdate_users_updated_atBEFOREUPDATEONusersFOREACHROWEXECUTEFUNCTIONupdate_updated_at_column();
packagemainimport("encoding/json""fmt""log""net/http""github.com/gorilla/mux")typeUserstruct{IDstring`json:"id"`Namestring`json:"name"`Emailstring`json:"email"`}typeUserHandlerstruct{usersmap[string]User}func(h*UserHandler)GetUser(whttp.ResponseWriter,r*http.Request){vars:=mux.Vars(r)userID:=vars["id"]user,exists:=h.users[userID]if!exists{http.Error(w,"User not found",http.StatusNotFound)return}w.Header().Set("Content-Type","application/json")json.NewEncoder(w).Encode(user)}funcmain(){handler:=&UserHandler{users:make(map[string]User),}r:=mux.NewRouter()r.HandleFunc("/users/{id}",handler.GetUser).Methods("GET")fmt.Println("Server starting on :8080")log.Fatal(http.ListenAndServe(":8080",r))}
#include<iostream>#include<vector>#include<unordered_map>#include<string>#include<memory>#include<algorithm>classUser{public:User(conststd::string&id,conststd::string&name,conststd::string&email):id_(id),name_(name),email_(email),active_(true){}conststd::string&getId()const{returnid_;}conststd::string&getName()const{returnname_;}conststd::string&getEmail()const{returnemail_;}boolisActive()const{returnactive_;}voidsetActive(boolactive){active_=active;}private:std::stringid_;std::stringname_;std::stringemail_;boolactive_;};classUserManager{public:voidaddUser(std::unique_ptr<User>user){users_[user->getId()]=std::move(user);}User*getUser(conststd::string&id){autoit=users_.find(id);return(it!=users_.end())?it->second.get():nullptr;}std::vector<User*>getActiveUsers(){std::vector<User*>activeUsers;for(constauto&pair:users_){if(pair.second->isActive()){activeUsers.push_back(pair.second.get());}}returnactiveUsers;}size_tgetUserCount()const{returnusers_.size();}private:std::unordered_map<std::string,std::unique_ptr<User>>users_;};intmain(){UserManagermanager;// Add some usersmanager.addUser(std::make_unique<User>("1","Alice","alice@example.com"));manager.addUser(std::make_unique<User>("2","Bob","bob@example.com"));// Get active usersautoactiveUsers=manager.getActiveUsers();std::cout<<"Active users: "<<activeUsers.size()<<std::endl;for(constauto&user:activeUsers){std::cout<<"- "<<user->getName()<<" ("<<user->getEmail()<<")"<<std::endl;}return0;}
importrequestsfromtypingimportDict,List,OptionalimportjsonclassAPIClient:def__init__(self,base_url:str,api_key:str):self.base_url=base_url.rstrip('/')self.session=requests.Session()self.session.headers.update({'Authorization':f'Bearer {api_key}','Content-Type':'application/json'})defget_users(self,limit:int=10,offset:int=0)->List[Dict]:"""Fetch users with pagination."""response=self.session.get(f'{self.base_url}/users',params={'limit':limit,'offset':offset})response.raise_for_status()returnresponse.json()defcreate_user(self,user_data:Dict)->Dict:"""Create a new user."""response=self.session.post(f'{self.base_url}/users',json=user_data)response.raise_for_status()returnresponse.json()def__enter__(self):returnselfdef__exit__(self,exc_type,exc_val,exc_tb):self.session.close()# Usage examplewithAPIClient('https://api.example.com','your-api-key')asclient:users=client.get_users(limit=5)print(f"Found {len(users)} users")
#!/bin/bash# ConfigurationAPI_BASE="https://api.example.com"API_KEY="your-api-key"# Common headersAUTH_HEADER="Authorization: Bearer $API_KEY"CONTENT_TYPE="Content-Type: application/json"# Get users with paginationecho"Fetching users..."curl-s\-H"$AUTH_HEADER"\-H"$CONTENT_TYPE"\"$API_BASE/users?limit=5&offset=0"\|jq'.'# Create a new userecho"Creating new user..."curl-s\-XPOST\-H"$AUTH_HEADER"\-H"$CONTENT_TYPE"\-d'{ "name": "John Doe", "email": "john.doe@example.com", "role": "user" }'\"$API_BASE/users"\|jq'.'# Get specific userecho"Fetching specific user..."USER_ID="123"curl-s\-H"$AUTH_HEADER"\-H"$CONTENT_TYPE"\"$API_BASE/users/$USER_ID"\|jq'.'# Update userecho"Updating user..."curl-s\-XPUT\-H"$AUTH_HEADER"\-H"$CONTENT_TYPE"\-d'{ "name": "John Smith", "email": "john.smith@example.com" }'\"$API_BASE/users/$USER_ID"\|jq'.'