فصل ۷.
پردازش فرمها (Processing Forms)
در این فصل، ما در مورد پردازش فرمها (Form Processing) صحبت خواهیم کرد - نحوه دریافت و کار با دادههای فرم (Form Data) که از طریق درخواستهای HTTP (HTTP Requests) به برنامه ما ارسال میشوند.
در این بخش از کتاب، ما بر روی اضافه کردن یک فرم HTML برای ایجاد اسنیپتهای جدید تمرکز خواهیم کرد. فرم شبیه به این خواهد بود:

جریان کلی برای پردازش این فرم از الگوی استاندارد Post-Redirect-Get پیروی میکند و به این صورت کار خواهد کرد:
- زمانی که کاربر یک درخواست
GETبه/snippet/createمیفرستد، فرم خالی به او نمایش داده میشود. - کاربر فرم را تکمیل میکند و از طریق یک درخواست
POSTبه/snippet/createارسال میشود. - دادههای فرم توسط هندلر
snippetCreatePostما اعتبارسنجی میشود. اگر خطایی در اعتبارسنجی وجود داشته باشد، فرم با فیلدهای مربوطه برجسته شده مجدداً نمایش داده میشود. اگر از بررسیهای اعتبارسنجی ما عبور کند، دادههای اسنیپت جدید به پایگاه داده اضافه شده و سپس کاربر بهGET /snippet/view/{id}هدایت میشود.
شما یاد خواهید گرفت:
- چگونه یک فرم HTML (HTML Form) ایجاد کنید که به کاربران اجازه میدهد قطعههای کد (Code Snippets) جدید را ارسال کنند.
- چگونه تجزیه و دسترسی (Parsing and Accessing) به دادههای فرم ارسال شده در درخواست POST (POST Request) را انجام دهید.
- برخی تکنیکها برای انجام بررسیهای اعتبارسنجی (Validation Checks) رایج روی دادههای فرم.
- یک الگوی کاربرپسند (User-Friendly Pattern) برای اطلاعرسانی خطاهای اعتبارسنجی (Validation Errors) به کاربر و پر کردن مجدد فیلدهای فرم با دادههای قبلاً ارسال شده.
- چگونه با استفاده از توابع کمکی (Helper Functions) برای پردازش و اعتبارسنجی فرم، هندلرهای خود را تمیز نگه دارید.
واژهنامه اصطلاحات فنی
| اصطلاح فارسی | معادل انگلیسی | توضیح |
|---|---|---|
| پردازش فرمها | Form Processing | دریافت و پردازش دادههای ارسالی از فرمهای وب |
| دادههای فرم | Form Data | اطلاعات وارد شده توسط کاربر در فرم |
| درخواستهای HTTP | HTTP Requests | درخواستهای ارسالی از مرورگر به سرور |
| فرم HTML | HTML Form | ساختار HTML برای جمعآوری داده از کاربر |
| قطعههای کد | Code Snippets | بخشهای کوچک و مستقل کد |
| تجزیه و دسترسی | Parsing and Accessing | خواندن و استخراج دادههای فرم |
| درخواست POST | POST Request | درخواست HTTP برای ارسال داده به سرور |
| بررسیهای اعتبارسنجی | Validation Checks | بررسی صحت و اعتبار دادههای ورودی |
| الگوی کاربرپسند | User-Friendly Pattern | روشی که برای کاربر راحت و قابل درک است |
| خطاهای اعتبارسنجی | Validation Errors | پیامهای خطا در مورد دادههای نامعتبر |
| توابع کمکی | Helper Functions | توابعی که عملیات رایج را ساده میکنند |