English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
بروتوكول HTTP هو أساس اتصالات بيانات الويب. يحدد البروتوكول طرق استرجاع البيانات المختلفة من عنوان URL معين.
الجدول أدناه يلخص مختلف طرق HTTP -
الرقم | الطريقة | الوصف |
1 | GET | يُرسل البيانات إلى الخادم دون تشفير، وهي الطريقة الأكثر شيوعًا. |
2 | HEAD | مثل GET، لكن بدون جسم استجابة |
3 | POST | لإرسال بيانات نموذج HTML إلى الخادم. لا يتم تخزين البيانات الملمة بطريقة POST من قبل الخادم. |
4 | PUT | استبدال جميع التمثيلات الحالية للموارد المستهدفة بالمحتوى المرسل |
5 | DELETE | حذف جميع التمثيلات للموارد المستهدفة المحددة من قبل URL |
بالتجريد، ترد مسارات Flask على طلبات GET. ولكن يمكن تغيير هذا الخيار بتقديم معاملات للدكتورات route().
لإظهار كيفية استخدام طريقة POST في مسارات URL، قم أولاً بإنشاء نموذج HTML باستخدام طريقة POST وأرسل بيانات النموذج إلى URL.
قم بتحميل النص التالي إلى ملف:login.html
# اسم الملف: example.py # حقوق الطبع والنشر: 2020 بواسطة w3codebox # مؤلف: ar.oldtoolbag.com # تاريخ: 2020-08-08 <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> <title>معالجة طلبات HTTP Flask</title> </head> <body> <form action = "http://localhost:5000/login" method = "post"> <p>ادخل الاسم:</p> <p><input type = "text" name = "name" value=""/></p> <p><input type = "submit" value = "提交" /></p> </form> </body> </html>
الآن في بيئة Python shell، اكتب النص التالي.
# اسم الملف: example.py # حقوق الطبع والنشر: 2020 بواسطة w3codebox # مؤلف: ar.oldtoolbag.com # تاريخ: 2020-08-08 from flask import Flask, redirect, url_for, request app = Flask(__name__) @app.route('/success/<name>') def success(name): return 'welcome %s' % name @app.route('/login', methods = ['POST', 'GET']) def login(): if request.method == 'POST': user = request.form['name'] return redirect(url_for('success', name = user)) else: user = request.args.get('name') return redirect(url_for('success', name = user)) if __name__ == '__main__': app.run(debug = True)
بعد بدء تشغيل الخادم في المتصفح، افتح login.html، أدخل الاسم (مثل: maxsu ) وضغط إرسال.
تُعرض بيانات النموذج في URL المحدد في خاصية action من علامة <form>.
http://localhost:5000/login يتم تمريرها إلى دالة login() بناءً على أن الخادم استقبل البيانات عبر طريقة POST، يتم الحصول على قيمة 'name' من بيانات النموذج كما يلي -
# اسم الملف: example.py # حقوق الطبع والنشر: 2020 بواسطة w3codebox # مؤلف: ar.oldtoolbag.com # تاريخ: 2020-08-08 user = request.form['name']
يتم إرسالها كجزء متغير إلى URL:/success. يتم عرض رسالة ترحيب في نافذة المتصفح.
غيّر متغيرات طريقة login.html إلى GET وأعيد فتحها في المتصفح. يتم استقبال البيانات عبر طريقة GET على الخادم. يتم الحصول على قيمة 'name' كما يلي -
# اسم الملف: example.py # حقوق الطبع والنشر: 2020 بواسطة w3codebox # مؤلف: ar.oldtoolbag.com # تاريخ: 2020-08-08 User = request.args.get('name')
هنا، args هو كائن قائمة بالكلمات، يحتوي على سلسلة من معاملات النموذج وأنواعها. مثلما كان من قبل، سيتم نقل القيمة المخصصة لـ 'name' إلى URL:/success.