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

السؤال

نشر

في مشروع فلاسك Flask لدي، يعمل أكثر من مسار على نفس الدالة، بالشكل التالي:

 

@app.route("/users/")
@app.route("/show-users/")
def show_users():
    ....

كيف يمكنني الحصول على المسار الحالي الذي إستخدمه العميل للوصول إلى هذه الدالة؟ أي كيفية الحصول علىأحد المسارين  /show-users/ أو /users/ داخل الدالة؟

Recommended Posts

  • 1
نشر

يوفر فلاسك Flask إمكانية الوصول إلى المسار الحالي من خلال إستخدام الكائن request، حيث يحتوي على الخاصية path التي تحمل المسار الحالي:

from flask import Flask, request

@app.route("/users/")
@app.route("/show-users/")
def show_users():
    return request.path

في الكود السابق سوف يتم عرض المسار المستخدم للوصول إلى الدالة show_users 

أيضًا يمكنك أن تستعمل url_rule بطريقة مشابهة، على النحو التالي:

from flask import Flask, request

@app.route("/users/")
@app.route("/show-users/")
def show_users():
    return str(request.url_rule)

وسوف يؤدي هذا الكود نفس الغرض.

  • 0
نشر

يمكنك استخدام خيار آخر هو استخدام متغير نقطة النهاية كما في الطريقة التالية

@app.route("/api/v1/generate_data", methods=['POST'], endpoint='v1')
@app.route("/api/v2/generate_data", methods=['POST'], endpoint='v2')
def generate_data():
    version = request.endpoint
    return version

إذا كنت تريد سلوكا مختلفا لكل مسار ، فيمكنك القيام بإنشاء دالتين مختلفتين لفعل ذلك كما هو واضح في المثال التالي

@app.route("/show-users/")
@requires_auth
def top():
    ...

@app.route("/users/")
@requires_auth
def anti_top():
    ...

 

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

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

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

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   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.

  • إعلانات

  • تابعنا على



×
×
  • أضف...