English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

طرق HTTP Flask

بروتوكول HTTP هو أساس اتصالات بيانات الويب. يحدد البروتوكول طرق استرجاع البيانات المختلفة من عنوان URL معين.

الجدول أدناه يلخص مختلف طرق HTTP -

الرقمالطريقةالوصف
1GETيُرسل البيانات إلى الخادم دون تشفير، وهي الطريقة الأكثر شيوعًا.
2HEADمثل GET، لكن بدون جسم استجابة
3POSTلإرسال بيانات نموذج HTML إلى الخادم. لا يتم تخزين البيانات الملمة بطريقة POST من قبل الخادم.
4PUTاستبدال جميع التمثيلات الحالية للموارد المستهدفة بالمحتوى المرسل
5DELETEحذف جميع التمثيلات للموارد المستهدفة المحددة من قبل 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.