اذهب إلى المحتوى

السؤال

نشر

أريد أن أكون قادرًا على إرسال البيانات إلى تطبيق Flask الخاص بي. لقد حاولت الوصول إلى request.data لكن على ما يبدو أنها نص فارغ.

import flask
app = flask.Flask(__name__)

@app.route('/', methods=['GET'])
def parse_request():
    data = flask.request.data  # نص فارغ b''
    print(data)
    return data

app.run()

عندما أقوم بطلب عنوان URL التالي:

http://127.0.0.1:5000/?page=1

أحصل على نص فارغ، كيف يمكنني أن أصل إلى البيانات الموجودة في عنوان الصفحة؟

Recommended Posts

  • 1
نشر

الخاصية request.data تحتوي على البيانات الممررة من خلال الطلب على شكل نص string، وللحصول على البيانات من الطلب في شكل قائمة من البيانات أو قاموس يمكنك أنت تستعمل الخاصية request.args والتي تقوم بتحويل البيانات الممررة من خلال عنوان الصفحة URL Query إلى قائمة من المفاتيح والقيم key/value:

# URL : http://127.0.0.1:5000/?name=sameh

@app.route('/', methods=['GET'])
def parse_request():
    data = flask.request.args
    print(data) # [('name', 'sameh')]
    return data

كما سيتم تحويل البيانات المرجعة returned إلى كود JSON مباشرة وبشكل تلقائي (في Flask الإصدار 1.1.0 أو أحدث).

تستطيع أيضًا أن تقوم بإستخدام الخاصية request.values والتي تحتوي على البيانات الموجودة في عنوان الصفحة URL Query وعلى أي بيانات ممررة من خلال نموذج Form في صفحة HTML:

@app.route('/', methods=['GET'])
def parse_request():
    data = flask.request.values

    for i in data:
        print(i, data[i])   # name sameh

    return data

لاحظ أنه عليك أن تستعمل حلقة for لكي تصل إلى البيانات بشكل سهل، ويمكنك أن تستعمل التابع get للحصول على قيمة معينة، على النحو التالي:

@app.route('/', methods=['GET'])
def parse_request():
    data = flask.request.values
    print(data.get('name')) # sameh

    return data

يمكنك الإطلاع على هذه المقالة للحصول على مزيد من المعلومات عن تمرير البيانات إلى تطبيق Flask:

 

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...