फ़ॉर्म डेटा और फ़ाइल अपलोड
पारंपरिक HTML फ़ॉर्म डेटा संभालें और FastAPI की अंतर्निहित क्षमताओं का उपयोग करके फ़ाइल अपलोड लागू करें।
फ़ॉर्म डेटा और फ़ाइल अपलोड, CoddyKit पर FastAPI बैकएंड डेवलपमेंट बूटकैंप का एक निःशुल्क पाठ है। यह 4 में से 3वाँ पाठ है। इस अध्ययन पथ के 3 तक कोई भी पाठ पूरा पढ़ना निःशुल्क है — इसके बाद CoddyKit PRO हर पाठ अनलॉक करता है, साथ ही अंतर्निर्मित कोड संपादक और चौबीसों घंटे एआई शिक्षक के साथ व्यावहारिक अभ्यास भी उपलब्ध कराता है। यह FastAPI बैकएंड डेवलपमेंट बूटकैंप सीखने के मार्ग का हिस्सा है और आपकी प्रगति वेब तथा CoddyKit ऐप पर सिंक होती रहती है। FastAPI बैकएंड डेवलपमेंट बूटकैंप पाठ्यक्रम में कुल 4 पाठ शामिल हैं।
फ़ॉर्म डेटा की मूल बातें
जब आप किसी वेब फ़ॉर्म (जैसे लॉगिन या पंजीकरण पृष्ठ) को भरकर "submit" पर क्लिक करते हैं, तो आपके द्वारा दर्ज किया गया डेटा अक्सर फ़ॉर्म डेटा के रूप में भेजा जाता है।
यह ब्राउज़र द्वारा सर्वर को जानकारी भेजने का पारंपरिक तरीका है, जो अनुरोध के मुख्य भाग में JSON भेजने से अलग है।
फ़ॉर्म डेटा दो मुख्य तरीकों से भेजा जा सकता है:
application/x-www-form-urlencoded: सरल कुंजी-मान युग्मों के लिए।multipart/form-data: फ़ाइलें शामिल होने पर या बड़े, अधिक जटिल डेटा के लिए।
FastAPI की Form निर्भरता
FastAPI, fastapi से Form निर्भरता का उपयोग करके फ़ॉर्म डेटा को आसानी से संभालता है।
यह Query या Path पैरामीटर की तरह काम करती है, लेकिन FastAPI को बताती है कि वह डेटा अनुरोध के मुख्य भाग में फ़ॉर्म फ़ील्ड के रूप में अपेक्षित है।
आप इसे इस तरह आयात करते हैं: from fastapi import FastAPI, Form।
मूल फ़ॉर्म एंडपॉइंट का उदाहरण
आइए एक ऐसा एंडपॉइंट बनाएँ जो उपयोगकर्ता नाम और पासवर्ड को फ़ॉर्म डेटा के रूप में स्वीकार करे। ध्यान दें कि username और password को स्पष्ट रूप से Form(...) से चिह्नित किया गया है।
इससे FastAPI उन्हें JSON या क्वेरी पैरामीटर के रूप में नहीं, बल्कि फ़ॉर्म के मुख्य भाग से पार्स करता है।
from fastapi import FastAPI, Form
import uvicorn
app = FastAPI()
@app.post("/login/")
async def login(username: str = Form(...), password: str = Form(...)):
return {"username": username, "message": "Login successful!"}
if __name__ == "__main__":
uvicorn.run(app, host="0.0.0.0", port=8000)फ़ॉर्म डेटा के साथ काम करना
आप इस एंडपॉइंट का परीक्षण curl जैसे टूल से या एक सरल HTML फ़ॉर्म बनाकर कर सकते हैं। curl में -d फ़्लैग फ़ॉर्म डेटा भेजता है।
सुनिश्चित करें कि पिछले दृश्य वाला आपका FastAPI अनुप्रयोग चल रहा हो!
curl -X POST "http://127.0.0.1:8000/login/" \
-H "Content-Type: application/x-www-form-urlencoded" \
-d "username=coddy&password=secret"फ़ाइल अपलोड को समझना
फ़ाइलें (जैसे चित्र, दस्तावेज़ या वीडियो) अपलोड करना वेब पर किया जाने वाला सामान्य कार्य है। इस प्रकार का डेटा multipart/form-data एन्कोडिंग का उपयोग करके भेजा जाता है।
FastAPI इन अपलोड को कुशलतापूर्वक संभालने के लिए विशेष टूल उपलब्ध कराता है, जिससे आप फ़ाइल की सामग्री और मेटाडेटा तक पहुँच सकते हैं।
FastAPI का UploadFile
फ़ाइल अपलोड के लिए FastAPI UploadFile क्लास ( fastapi से) के साथ File निर्भरता का उपयोग करता है।
जब आप किसी पैरामीटर को File(...) के साथ घोषित करके उसका प्रकार UploadFile बताते हैं, तो FastAPI फ़ाइल स्ट्रीम को संभालता है।
filename: अपलोड की गई फ़ाइल का नाम।content_type: फ़ाइल का MIME प्रकार (जैसे,image/jpeg)।file: एक SpooledTemporaryFile ऑब्जेक्ट, जिससे आप उसकी सामग्री पढ़ सकते हैं।
from fastapi import FastAPI, File, UploadFile
import uvicorn
app = FastAPI()
@app.post("/uploadfile/")
async def create_upload_file(file: UploadFile = File(...)):
return {"filename": file.filename, "content_type": file.content_type}
if __name__ == "__main__":
uvicorn.run(app, host="0.0.0.0", port=8000)एक अपलोड की गई फ़ाइल सहेजना
UploadFile प्राप्त करने के बाद, आप उसकी सामग्री पढ़कर उसे स्थानीय डिस्क या क्लाउड स्टोरेज में सहेज सकते हैं। इसे स्थानीय रूप से सहेजने का तरीका यहाँ बताया गया है।
फ़ाइल संचालन के दौरान संभावित त्रुटियों को संभालना याद रखें।
from fastapi import FastAPI, File, UploadFile
import uvicorn
import shutil
import os
app = FastAPI()
# Ensure the 'files' directory exists
os.makedirs("files", exist_ok=True)
@app.post("/uploadandsave/")
async def upload_and_save_file(file: UploadFile = File(...)):
file_location = f"files/{file.filename}"
with open(file_location, "wb+") as file_object:
shutil.copyfileobj(file.file, file_object)
return {"message": f"File '{file.filename}' saved at '{file_location}'"}
if __name__ == "__main__":
uvicorn.run(app, host="0.0.0.0", port=8000)कई फ़ाइलें अपलोड करना
यदि आपको एक साथ कई फ़ाइलें अपलोड करनी हों तो? FastAPI आपको किसी पैरामीटर को UploadFile की सूची के रूप में परिभाषित करने की सुविधा देकर इसका समर्थन करता है।
सूची की प्रत्येक फ़ाइल एक UploadFile ऑब्जेक्ट होगी, जिसे आप अलग-अलग संसाधित कर सकते हैं।
from fastapi import FastAPI, File, UploadFile
from typing import List
import uvicorn
app = FastAPI()
@app.post("/uploadmultiple/")
async def create_upload_files(files: List[UploadFile] = File(...)):
uploaded_filenames = [file.filename for file in files]
return {"filenames": uploaded_filenames, "message": "Files received!"}
if __name__ == "__main__":
uvicorn.run(app, host="0.0.0.0", port=8000)कई अपलोड सहेजना
एकल फ़ाइलों की तरह ही, आप UploadFile ऑब्जेक्ट की सूची पर पुनरावृत्ति करके प्रत्येक फ़ाइल सहेज सकते हैं। यह फ़ोटो गैलरी या दस्तावेज़ अपलोड के लिए उपयोगी है।
वास्तविक अनुप्रयोग में हमेशा उचित त्रुटि प्रबंधन और सुरक्षित फ़ाइल स्टोरेज प्रक्रियाएँ सुनिश्चित करें।
from fastapi import FastAPI, File, UploadFile
from typing import List
import uvicorn
import shutil
import os
app = FastAPI()
# Ensure the 'files' directory exists
os.makedirs("files", exist_ok=True)
@app.post("/uploadandsavemultiple/")
async def upload_and_save_multiple_files(files: List[UploadFile] = File(...)):
saved_files = []
for file in files:
file_location = f"files/{file.filename}"
with open(file_location, "wb+") as file_object:
shutil.copyfileobj(file.file, file_object)
saved_files.append(file.filename)
return {"message": f"Successfully uploaded: {', '.join(saved_files)}"}
if __name__ == "__main__":
uvicorn.run(app, host="0.0.0.0", port=8000)फ़ॉर्म और फ़ाइल जाँच
आपने फ़ॉर्म डेटा और फ़ाइल अपलोड संभालने के बारे में सीखा है। आइए अपनी समझ का परीक्षण करें!
पाठ का सारांश
बहुत अच्छा! इस पाठ में आपने FastAPI में पारंपरिक फ़ॉर्म डेटा और मजबूत फ़ाइल अपलोड संभालने की विधि अच्छी तरह सीख ली है।
- हमने सरल कुंजी-मान फ़ॉर्म फ़ील्ड के लिए
Form(...)का उपयोग किया। - हमने एकल और कई फ़ाइल अपलोड के लिए
UploadFileऔरFile(...)का उपयोग देखा। - आपने अपलोड की गई फ़ाइलों को अपने सर्वर पर सहेजना सीखा।
इंटरैक्टिव वेब अनुप्रयोग बनाने के लिए ये तकनीकें बहुत महत्वपूर्ण हैं। अभ्यास करते रहें!
एआई शिक्षक के साथ FastAPI बैकएंड डेवलपमेंट बूटकैंप सीखें — निःशुल्क
अपने ब्राउज़र में वास्तविक कोड लिखें और चलाएँ, चौबीसों घंटे एआई शिक्षक से तुरंत सहायता पाएँ, और वेब या ऐप पर वहीं से शुरू करें जहाँ आपने छोड़ा था।
- पाठ्यक्रम
- 21
- पाठ
- 84
अक्सर पूछे जाने वाले प्रश्न
क्या “फ़ॉर्म डेटा और फ़ाइल अपलोड” पाठ निःशुल्क है?
हाँ — FastAPI बैकएंड डेवलपमेंट बूटकैंप अध्ययन पथ के 3 तक कोई भी पाठ, जिसमें “फ़ॉर्म डेटा और फ़ाइल अपलोड” भी शामिल है, यहाँ वेब पर पूरा पढ़ना निःशुल्क है। इसके बाद CoddyKit PRO हर पाठ अनलॉक करता है, साथ ही अंतर्निर्मित कोड संपादक और चौबीसों घंटे एआई शिक्षक के साथ इंटरैक्टिव अभ्यास भी उपलब्ध कराता है। FastAPI बैकएंड डेवलपमेंट बूटकैंप पाठ्यक्रम में कुल 4 पाठ शामिल हैं।
“फ़ॉर्म डेटा और फ़ाइल अपलोड” में मैं क्या सीखूँगा?
पारंपरिक HTML फ़ॉर्म डेटा संभालें और FastAPI की अंतर्निहित क्षमताओं का उपयोग करके फ़ाइल अपलोड लागू करें। आप ब्राउज़र में सीधे चलाए जाने वाले व्यावहारिक कोड के साथ FastAPI बैकएंड डेवलपमेंट बूटकैंप का अभ्यास करते हैं, और पाठ पूरा करते समय 24/7 एआई ट्यूटर आपके प्रश्नों के उत्तर देता है।
क्या FastAPI बैकएंड डेवलपमेंट बूटकैंप शुरू करने के लिए मुझे किसी अनुभव की आवश्यकता है?
पहले के अनुभव की आवश्यकता नहीं है। CoddyKit पर FastAPI बैकएंड डेवलपमेंट बूटकैंप शुरुआती से लेकर उन्नत शिक्षार्थियों तक सभी के लिए व्यवस्थित किया गया है, इसलिए आप यहीं से या शुरुआत से सीखना शुरू कर सकते हैं और अपनी गति से आगे बढ़ सकते हैं। यह 4 में से 3वाँ पाठ है।
“फ़ॉर्म डेटा और फ़ाइल अपलोड” पाठ पूरा करने में कितना समय लगता है?
CoddyKit का अधिकांश पाठ लगभग 5–10 मिनट में पूरा हो जाता है। हर पाठ छोटा और संवादात्मक है, इसलिए आप लगातार प्रगति करते हैं और वेब या ऐप पर वहीं से सीखना जारी रख सकते हैं जहाँ आपने छोड़ा था।
क्या मैं इस FastAPI बैकएंड डेवलपमेंट बूटकैंप पाठ में कोड लिख और चला सकता हूँ?
हाँ। हर FastAPI बैकएंड डेवलपमेंट बूटकैंप पाठ में एक अंतर्निर्मित कोड संपादक शामिल है, जिससे आप सीधे अपने ब्राउज़र में वास्तविक कोड लिख और चला सकते हैं और तुरंत एआई प्रतिक्रिया पा सकते हैं—स्थानीय सेटअप की आवश्यकता नहीं है।
इस पाठ्यक्रम के सभी पाठ
- रिक्वेस्ट बॉडी के लिए Pydantic मॉडल
- रिस्पॉन्स मॉडल और स्थिति कोड
- फ़ॉर्म डेटा और फ़ाइल अपलोड
- हेडर, कुकी और कस्टम प्रतिक्रियाएँ